diff --git a/Lib_CSharp b/Lib_CSharp index 6b7ed8c0..e53d6712 160000 --- a/Lib_CSharp +++ b/Lib_CSharp @@ -1 +1 @@ -Subproject commit 6b7ed8c04f1728570c2f7575bc1ceab2b713f04b +Subproject commit e53d671278c21d349835af31394d7bc42be49e7b diff --git a/PoliNetwork.Graduatorie.Common/Objects/EnrollType.cs b/PoliNetwork.Graduatorie.Common/Objects/EnrollType.cs index 2fb946ec..09d44d99 100644 --- a/PoliNetwork.Graduatorie.Common/Objects/EnrollType.cs +++ b/PoliNetwork.Graduatorie.Common/Objects/EnrollType.cs @@ -23,7 +23,7 @@ public int GetHashWithoutLastUpdate() return i; } - + public static EnrollType From(string? rowCanEnrollInto, bool rowCanEnroll) { if (rowCanEnroll == false) diff --git a/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/IndexJsonBase.cs b/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/IndexJsonBase.cs index a21bbaea..f685e341 100644 --- a/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/IndexJsonBase.cs +++ b/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/IndexJsonBase.cs @@ -3,7 +3,6 @@ using Newtonsoft.Json; using Newtonsoft.Json.Serialization; using PoliNetwork.Graduatorie.Common.Data; -using PoliNetwork.Graduatorie.Common.Objects; using PoliNetwork.Graduatorie.Parser.Objects.Json.Indexes.Specific; using PoliNetwork.Graduatorie.Parser.Objects.RankingNS; @@ -23,8 +22,8 @@ public void Write(string outFolder, string pathFile) var mainJsonString = JsonConvert.SerializeObject(this, Culture.JsonSerializerSettings); File.WriteAllText(mainJsonPath, mainJsonString); } - - public static void WriteAllIndexes(RankingsSet rankingsSet, string outFolder, ArgsConfig argsConfig) + + public static void WriteAllIndexes(RankingsSet rankingsSet, string outFolder) { //now let's write each single different index BySchoolYearJson.From(rankingsSet).Write(outFolder, BySchoolYearJson.CustomPath); diff --git a/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/Specific/BySchoolYearCourseJson.cs b/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/Specific/BySchoolYearCourseJson.cs index 51613387..d41629b2 100644 --- a/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/Specific/BySchoolYearCourseJson.cs +++ b/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/Specific/BySchoolYearCourseJson.cs @@ -1,9 +1,11 @@ #region + using System.Diagnostics; using Newtonsoft.Json; using Newtonsoft.Json.Serialization; using PoliNetwork.Graduatorie.Common.Enums; using PoliNetwork.Graduatorie.Parser.Objects.RankingNS; + #endregion namespace PoliNetwork.Graduatorie.Parser.Objects.Json.Indexes.Specific; @@ -20,20 +22,20 @@ namespace PoliNetwork.Graduatorie.Parser.Objects.Json.Indexes.Specific; public class BySchoolYearCourseJson : IndexJsonBase { internal const string CustomPath = "bySchoolYearCourse.json"; + public List All = new(); // decide whether to include it in the json serialization //keys: school, year, course, location public SchoolsDict Schools = new(); - public List All = new(); // decide whether to include it in the json serialization public static BySchoolYearCourseJson From(RankingsSet set) { var mainJson = new BySchoolYearCourseJson { LastUpdate = set.LastUpdate }; - + var list = set.Rankings .SelectMany(r => r.ToSingleCourseJson()) .DistinctBy(r => new { r.Id, r.Location }) .ToList(); - + list.Sort(); mainJson.All = list; @@ -67,7 +69,7 @@ private static YearsDict GetYearsDict(IEnumerable> byYea return yearsDict; } - private static CoursesDict GetCoursesDict(IGrouping yearGroup) + private static CoursesDict GetCoursesDict(IEnumerable yearGroup) { var coursesDict = new CoursesDict(); diff --git a/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/Specific/BySchoolYearJson.cs b/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/Specific/BySchoolYearJson.cs index 2798b366..fd5a1c5f 100644 --- a/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/Specific/BySchoolYearJson.cs +++ b/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/Specific/BySchoolYearJson.cs @@ -18,9 +18,9 @@ namespace PoliNetwork.Graduatorie.Parser.Objects.Json.Indexes.Specific; public class BySchoolYearJson : IndexJsonBase { internal const string CustomPath = "bySchoolYear.json"; + public List All = new(); // decide whether to include it in the json serialization public SchoolsDict Schools = new(); - public List All = new(); // decide whether to include it in the json serialization public static BySchoolYearJson From(RankingsSet set) { @@ -30,7 +30,7 @@ public static BySchoolYearJson From(RankingsSet set) .SelectMany(r => r.ToSingleCourseJson()) .DistinctBy(r => new { r.Id }) .ToList(); - + list.Sort(); mainJson.All = list; @@ -90,15 +90,7 @@ public static RankingsSet GetAndParse(string dataFolder) public List GetRankings(string outFolder) { - List rankings = new(); - - foreach (var singleCourseJson in All) - { - var fullPath = singleCourseJson.GetFullPath(outFolder); - var ranking = Ranking.FromJson(fullPath); - if (ranking != null) rankings.Add(ranking); - } - - return rankings; + return All.Select(singleCourseJson => singleCourseJson.GetFullPath(outFolder)).Select(Ranking.FromJson) + .OfType().ToList(); } } \ No newline at end of file diff --git a/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/Specific/ByYearSchoolJson.cs b/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/Specific/ByYearSchoolJson.cs index a5b153ef..d1e973b9 100644 --- a/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/Specific/ByYearSchoolJson.cs +++ b/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/Specific/ByYearSchoolJson.cs @@ -17,22 +17,22 @@ namespace PoliNetwork.Graduatorie.Parser.Objects.Json.Indexes.Specific; public class ByYearSchoolJson : IndexJsonBase { internal const string CustomPath = "byYearSchool.json"; + public List All = new(); // decide whether to include it in the json serialization public YearsDict Years = new(); - public List All = new(); // decide whether to include it in the json serialization public static ByYearSchoolJson From(RankingsSet set) { var mainJson = new ByYearSchoolJson { LastUpdate = set.LastUpdate }; - + var list = set.Rankings .SelectMany(r => r.ToSingleCourseJson()).ToList() .DistinctBy(r => new { r.Id }) .ToList(); - + list.Sort(); mainJson.All = list; - + // group rankings by year var byYear = set.Rankings.Where(r => r.Year != null).GroupBy(r => r.Year!.Value); foreach (var yearGroup in byYear) @@ -57,7 +57,7 @@ private static SchoolsDict GetSchoolsDict(IEnumerable x.Link) .OrderBy(r => r.Id) .ToList(); - + schoolsDict.Add(schoolGroup.Key, filenames); } diff --git a/PoliNetwork.Graduatorie.Parser/Objects/Json/SingleCourseJson.cs b/PoliNetwork.Graduatorie.Parser/Objects/Json/SingleCourseJson.cs index 99938652..ad6842e4 100644 --- a/PoliNetwork.Graduatorie.Parser/Objects/Json/SingleCourseJson.cs +++ b/PoliNetwork.Graduatorie.Parser/Objects/Json/SingleCourseJson.cs @@ -22,25 +22,10 @@ public class SingleCourseJson : IComparable public SchoolEnum? School; public int? Year; - public static SingleCourseJson From(Ranking ranking, CourseTable? course) - { - var basePath = $"{ranking.School}/{ranking.Year}/"; // "Ingegneria/2023" - return new SingleCourseJson - { - Link = ranking.GetFilename(), - Id = ranking.GetId(), - BasePath = basePath, - Year = ranking.Year, - School = ranking.School, - Location = course?.Location, - RankingOrder = ranking.RankingOrder - }; - } - public int CompareTo(SingleCourseJson? singleCourseJson) { if (singleCourseJson == null) return 1; - + if (Year != singleCourseJson.Year) return (Year ?? -1) < (singleCourseJson.Year ?? -1) ? -1 : 1; @@ -60,7 +45,22 @@ public int CompareTo(SingleCourseJson? singleCourseJson) return 0; } - + + public static SingleCourseJson From(Ranking ranking, CourseTable? course) + { + var basePath = $"{ranking.School}/{ranking.Year}/"; // "Ingegneria/2023" + return new SingleCourseJson + { + Link = ranking.GetFilename(), + Id = ranking.GetId(), + BasePath = basePath, + Year = ranking.Year, + School = ranking.School, + Location = course?.Location, + RankingOrder = ranking.RankingOrder + }; + } + public int GetHashWithoutLastUpdate() { var hashWithoutLastUpdate = Link?.GetHashCode() ?? "Link".GetHashCode(); diff --git a/PoliNetwork.Graduatorie.Parser/Objects/Json/Stats/StatsJson.cs b/PoliNetwork.Graduatorie.Parser/Objects/Json/Stats/StatsJson.cs index ca80c939..1befb2b1 100644 --- a/PoliNetwork.Graduatorie.Parser/Objects/Json/Stats/StatsJson.cs +++ b/PoliNetwork.Graduatorie.Parser/Objects/Json/Stats/StatsJson.cs @@ -5,6 +5,7 @@ using Newtonsoft.Json.Serialization; using PoliNetwork.Graduatorie.Common.Objects; using PoliNetwork.Graduatorie.Parser.Objects.RankingNS; + // ReSharper disable CanSimplifyDictionaryLookupWithTryAdd #endregion @@ -41,10 +42,7 @@ public void Write(string outFolder, ArgsConfig argsConfig) var statsFolderPath = Path.Join(outFolder, StatsFolderName); if (!Directory.Exists(statsFolderPath)) Directory.CreateDirectory(statsFolderPath); - foreach (var yearStats in Stats.Values) - { - yearStats.Write(statsFolderPath, argsConfig); - } + foreach (var yearStats in Stats.Values) yearStats.Write(statsFolderPath, argsConfig); } public int GetHashWithoutLastUpdate() diff --git a/PoliNetwork.Graduatorie.Parser/Objects/Json/Stats/StatsSchool.cs b/PoliNetwork.Graduatorie.Parser/Objects/Json/Stats/StatsSchool.cs index 428a772f..0a80f736 100644 --- a/PoliNetwork.Graduatorie.Parser/Objects/Json/Stats/StatsSchool.cs +++ b/PoliNetwork.Graduatorie.Parser/Objects/Json/Stats/StatsSchool.cs @@ -17,10 +17,10 @@ public class StatsSchool public List List = new(); public int NumStudents; - public static StatsSchool From(List pRankings) + public static StatsSchool From(IEnumerable pRankings) { var statsSchool = new StatsSchool(); - var rankings = pRankings.Where(r => r.Year != null && r.School != null).ToList(); + var rankings = pRankings.Where(r => r is { Year: not null, School: not null }).ToList(); statsSchool.NumStudents = rankings.Select(x => (x.RankingSummary ?? x.CreateSummary()).HowManyStudents ?? 0).Sum(); diff --git a/PoliNetwork.Graduatorie.Parser/Objects/Json/Stats/StatsYear.cs b/PoliNetwork.Graduatorie.Parser/Objects/Json/Stats/StatsYear.cs index c3a80552..53d4805a 100644 --- a/PoliNetwork.Graduatorie.Parser/Objects/Json/Stats/StatsYear.cs +++ b/PoliNetwork.Graduatorie.Parser/Objects/Json/Stats/StatsYear.cs @@ -7,6 +7,7 @@ using PoliNetwork.Graduatorie.Common.Enums; using PoliNetwork.Graduatorie.Common.Objects; using PoliNetwork.Graduatorie.Parser.Objects.RankingNS; + // ReSharper disable CanSimplifyDictionaryLookupWithTryAdd #endregion @@ -19,27 +20,29 @@ namespace PoliNetwork.Graduatorie.Parser.Objects.Json.Stats; [JsonObject(MemberSerialization.Fields, NamingStrategyType = typeof(CamelCaseNamingStrategy))] public class StatsYear { - public SchoolsDict Schools = new(); public int NumStudents; + public SchoolsDict Schools = new(); public int Year; public static StatsYear From(List rankings) { - var statsYear = new StatsYear(); - - statsYear.Year = rankings.First(r => r.Year != null).Year!.Value; // just hilarious - statsYear.NumStudents = - rankings.Select(r => (r.RankingSummary ?? r.CreateSummary()).HowManyStudents ?? 0).Sum(); // this ?? is crazy + var statsYear = new StatsYear + { + Year = rankings.First(r => r.Year != null).Year!.Value, // just hilarious + NumStudents = rankings.Select(r => (r.RankingSummary ?? r.CreateSummary()).HowManyStudents ?? 0) + .Sum() // this ?? is crazy + }; var bySchool = rankings.Where(r => r.School != null).GroupBy(r => r.School!.Value); foreach (var schoolGroup in bySchool) { var statsSchool = StatsSchool.From(schoolGroup.ToList()); - if (statsYear.Schools.ContainsKey(schoolGroup.Key)) throw new UnreachableException(); // should be impossible, right? + if (statsYear.Schools.ContainsKey(schoolGroup.Key)) + throw new UnreachableException(); // should be impossible, right? statsYear.Schools.Add(schoolGroup.Key, statsSchool); } - + return statsYear; } @@ -62,7 +65,7 @@ private bool ExitIfThereIsntAnUpdate(string fullJsonPath) var savedStats = JsonConvert.DeserializeObject(saved, Culture.JsonSerializerSettings); if (string.IsNullOrEmpty(saved) || savedStats == null) return false; - + var savedHash = savedStats.GetHashWithoutLastUpdate(); var hash = GetHashWithoutLastUpdate(); return savedHash == hash; diff --git a/PoliNetwork.Graduatorie.Parser/Objects/RankingNS/Ranking.cs b/PoliNetwork.Graduatorie.Parser/Objects/RankingNS/Ranking.cs index 56fbc52b..2eac3d2f 100644 --- a/PoliNetwork.Graduatorie.Parser/Objects/RankingNS/Ranking.cs +++ b/PoliNetwork.Graduatorie.Parser/Objects/RankingNS/Ranking.cs @@ -30,23 +30,6 @@ public class Ranking : IComparable, IEquatable public RankingUrl? Url; public int? Year; - public RankingSummaryStudent GetRankingSummaryStudent() - { - return new RankingSummaryStudent(RankingOrder?.Phase, School, Year, Url); - } - - public static Ranking? FromJson(string fullPath) - { - // if (!File.Exists(fullPath)) return null; - // - // var str = File.ReadAllText(fullPath); - // var ranking = JsonConvert.DeserializeObject(str, Culture.JsonSerializerSettings); - // return ranking; - - // consider merging the two functions at some point - return Utils.Transformer.ParserNS.Parser.ParseJsonRanking(fullPath); - } - public int CompareTo(Ranking? other) { if (ReferenceEquals(this, other)) return 0; @@ -62,6 +45,23 @@ public bool Equals(Ranking? other) return GetHashWithoutLastUpdate() == other.GetHashWithoutLastUpdate(); } + public RankingSummaryStudent GetRankingSummaryStudent() + { + return new RankingSummaryStudent(RankingOrder?.Phase, School, Year, Url); + } + + public static Ranking? FromJson(string fullPath) + { + // if (!File.Exists(fullPath)) return null; + // + // var str = File.ReadAllText(fullPath); + // var ranking = JsonConvert.DeserializeObject(str, Culture.JsonSerializerSettings); + // return ranking; + + // consider merging the two functions at some point + return Utils.Transformer.ParserNS.Parser.ParseJsonRanking(fullPath); + } + public bool IsSimilarTo(Ranking ranking) { @@ -142,19 +142,18 @@ public void WriteAsJson(string outFolder, bool forceReparse = false) { var folderPath = GetBasePath(outFolder); Directory.CreateDirectory(folderPath); - + var fullPath = GetFullPath(outFolder); var savedRanking = FromJson(fullPath); var equalsSaved = savedRanking != null && Equals(savedRanking); - if (forceReparse || equalsSaved || savedRanking == null) - { - var rankingJsonString = JsonConvert.SerializeObject(this, Culture.JsonSerializerSettings); - File.WriteAllText(fullPath, rankingJsonString); - } + if (!forceReparse && equalsSaved) return; + + var rankingJsonString = JsonConvert.SerializeObject(this, Culture.JsonSerializerSettings); + File.WriteAllText(fullPath, rankingJsonString); } - + /*** * Ottieni l'hash senza considerare il valore di LastUpdate */ @@ -177,10 +176,19 @@ public int GetHashWithoutLastUpdate() i = ByCourse.Aggregate(i, (current, variable) => { var hashWithoutLastUpdate = variable.GetHashWithoutLastUpdate(); - var iList = hashWithoutLastUpdate; - return current ^ iList; + return current ^ hashWithoutLastUpdate; }); return i; } + + public override bool Equals(object? obj) + { + return Equals(obj as Ranking); + } + + public override int GetHashCode() + { + return GetHashWithoutLastUpdate(); + } } \ No newline at end of file diff --git a/PoliNetwork.Graduatorie.Parser/Objects/RankingNS/RankingsSet.cs b/PoliNetwork.Graduatorie.Parser/Objects/RankingNS/RankingsSet.cs index 908d396a..d129cfa4 100644 --- a/PoliNetwork.Graduatorie.Parser/Objects/RankingNS/RankingsSet.cs +++ b/PoliNetwork.Graduatorie.Parser/Objects/RankingNS/RankingsSet.cs @@ -11,27 +11,19 @@ namespace PoliNetwork.Graduatorie.Parser.Objects.RankingNS; [JsonObject(MemberSerialization.Fields, NamingStrategyType = typeof(CamelCaseNamingStrategy))] public class RankingsSet { - public DateTime? LastUpdate; - public List Rankings; - - public RankingsSet() - { - Rankings = new List(); - LastUpdate = DateTime.UtcNow; - } + public DateTime? LastUpdate = DateTime.UtcNow; + public List Rankings = new(); public void Merge(RankingsSet newSet) { foreach (var ranking in newSet.Rankings) { var alreadyPresent = Rankings.Any(v => v.IsSimilarTo(ranking)); - if (!alreadyPresent) - { - Rankings.Add(ranking); - - if (LastUpdate == null || ranking.LastUpdate.Date > LastUpdate?.Date) - LastUpdate = ranking.LastUpdate; - } + if (alreadyPresent) continue; + Rankings.Add(ranking); + + if (LastUpdate == null || ranking.LastUpdate.Date > LastUpdate?.Date) + LastUpdate = ranking.LastUpdate; } } diff --git a/PoliNetwork.Graduatorie.Parser/Objects/Tables/Course/CourseTable.cs b/PoliNetwork.Graduatorie.Parser/Objects/Tables/Course/CourseTable.cs index 17aac09b..4e6360fa 100644 --- a/PoliNetwork.Graduatorie.Parser/Objects/Tables/Course/CourseTable.cs +++ b/PoliNetwork.Graduatorie.Parser/Objects/Tables/Course/CourseTable.cs @@ -31,8 +31,8 @@ public RankingSummaryStudent GetRankingSummaryStudent(Ranking ranking) } /// - /// Get the course location if present, otherwise get the placeholder (constant). - /// Useful for index purposes. + /// Get the course location if present, otherwise get the placeholder (constant). + /// Useful for index purposes. /// /// A string with the location or the placeholder public string GetFixedLocation() @@ -41,7 +41,6 @@ public string GetFixedLocation() // esempio: Urbanistica 2022 ha un solo corso senza location, ma anche quello // deve comparire nella lista // fix: se un corso non ha location, si inserisce un valore 0 - if (string.IsNullOrEmpty(Location)) return Constants.LocationPlaceholder; - return Location; + return string.IsNullOrEmpty(Location) ? Constants.LocationPlaceholder : Location; } } \ No newline at end of file diff --git a/PoliNetwork.Graduatorie.Parser/Utils/Output/HashMatricoleWrite.cs b/PoliNetwork.Graduatorie.Parser/Utils/Output/HashMatricoleWrite.cs index 86d4ae06..80396565 100644 --- a/PoliNetwork.Graduatorie.Parser/Utils/Output/HashMatricoleWrite.cs +++ b/PoliNetwork.Graduatorie.Parser/Utils/Output/HashMatricoleWrite.cs @@ -12,21 +12,21 @@ namespace PoliNetwork.Graduatorie.Parser.Utils.Output; public class HashMatricoleWrite { - internal const string FolderName = "hashMatricole"; - public IdsDict IdsDict = new(); + private const string FolderName = "hashMatricole"; + private IdsDict _idsDict = new(); public static HashMatricoleWrite From(RankingsSet rankingsSet) { return new HashMatricoleWrite { - IdsDict = GetIdsDict(rankingsSet) + _idsDict = GetIdsDict(rankingsSet) }; } - + public void Write(string outFolder) { - Console.WriteLine($"[INFO] Students with id are {IdsDict.Keys.Count}"); + Console.WriteLine($"[INFO] Students with id are {_idsDict.Keys.Count}"); var groupsDict = GetGroupsDict(); var hashMatricoleFolder = Path.Join(outFolder, FolderName); @@ -43,7 +43,7 @@ public void Write(string outFolder) private static IdsDict GetIdsDict(RankingsSet rankingsSet) { - var dictionary = new SortedDictionary(); + var dictionary = new IdsDict(); foreach (var ranking in rankingsSet.Rankings) { var byMeritRows = ranking.ByMerit?.Rows; @@ -63,17 +63,14 @@ private static IdsDict GetIdsDict(RankingsSet rankingsSet) foreach (var student in row.Where(studentResult => !string.IsNullOrEmpty(studentResult.Id))) { var id = student.Id!; - + if (!dictionary.ContainsKey(id)) dictionary.Add(id, new StudentHashSummary()); dictionary[id].Merge(student, ranking, courseTable); } } } - foreach (var item in dictionary.Values) - { - item.Sort(); - } + foreach (var item in dictionary.Values) item.Sort(); return dictionary; } @@ -81,7 +78,7 @@ private static IdsDict GetIdsDict(RankingsSet rankingsSet) private SortedDictionary GetGroupsDict() { var groupsDict = new SortedDictionary(); - var groups = IdsDict.GroupBy(pair => pair.Key[..2]); + var groups = _idsDict.GroupBy(pair => pair.Key[..2]); foreach (var group in groups) { @@ -89,11 +86,8 @@ private SortedDictionary GetGroupsDict() var groupVal = group.ToList(); var groupIdsDict = new IdsDict(); - foreach (var (id, studentHashSummary) in groupVal) - { - groupIdsDict.Add(id, studentHashSummary); - } - + foreach (var (id, studentHashSummary) in groupVal) groupIdsDict.Add(id, studentHashSummary); + groupsDict.Add(groupId, groupIdsDict); } diff --git a/PoliNetwork.Graduatorie.Parser/Utils/Output/OutputWriteUtil.cs b/PoliNetwork.Graduatorie.Parser/Utils/Output/OutputWriteUtil.cs index 1f422b5e..3e294db8 100644 --- a/PoliNetwork.Graduatorie.Parser/Utils/Output/OutputWriteUtil.cs +++ b/PoliNetwork.Graduatorie.Parser/Utils/Output/OutputWriteUtil.cs @@ -23,9 +23,9 @@ public OutputWriteUtil(ArgsConfig argsConfig) public void SaveOutputs(RankingsSet rankingsSet, DateFound dateFound) { var outFolder = Path.Join(_config.DataFolder, Constants.OutputFolder); - + rankingsSet.WriteAllRankings(outFolder, _config.ForceReparsing); - IndexJsonBase.WriteAllIndexes(rankingsSet, outFolder, _config); + IndexJsonBase.WriteAllIndexes(rankingsSet, outFolder); StatsJson.From(rankingsSet).Write(outFolder, _config); HashMatricoleWrite.From(rankingsSet).Write(outFolder); diff --git a/PoliNetwork.Graduatorie.Parser/Utils/Output/RankingSummaryStudent.cs b/PoliNetwork.Graduatorie.Parser/Utils/Output/RankingSummaryStudent.cs index 2a0299f8..52e783ef 100644 --- a/PoliNetwork.Graduatorie.Parser/Utils/Output/RankingSummaryStudent.cs +++ b/PoliNetwork.Graduatorie.Parser/Utils/Output/RankingSummaryStudent.cs @@ -40,6 +40,14 @@ public RankingSummaryStudent(string? phase, SchoolEnum? school, int? year, Ranki Url = url; } + public bool Equals(RankingSummaryStudent? other) + { + if (ReferenceEquals(null, other)) return false; + if (ReferenceEquals(this, other)) return true; + return Course == other.Course && Phase == other.Phase && School == other.School && Equals(Url, other.Url) && + Year == other.Year; + } + public int Compare(RankingSummaryStudent o) { var i = (Year ?? 0) - (o.Year ?? 0); @@ -70,13 +78,6 @@ public override bool Equals(object? obj) Year == rankingSummaryStudent.Year && equals && Course == rankingSummaryStudent.Course; } - public bool Equals(RankingSummaryStudent? other) - { - if (ReferenceEquals(null, other)) return false; - if (ReferenceEquals(this, other)) return true; - return Course == other.Course && Phase == other.Phase && School == other.School && Equals(Url, other.Url) && Year == other.Year; - } - public override int GetHashCode() { return HashCode.Combine(Course, Phase, School, Url, Year); diff --git a/PoliNetwork.Graduatorie.Parser/Utils/Transformer/ParserNS/Converter.cs b/PoliNetwork.Graduatorie.Parser/Utils/Transformer/ParserNS/Converter.cs deleted file mode 100644 index fc32e7a4..00000000 --- a/PoliNetwork.Graduatorie.Parser/Utils/Transformer/ParserNS/Converter.cs +++ /dev/null @@ -1,49 +0,0 @@ -#region - -using PoliNetwork.Graduatorie.Common.Objects; -using PoliNetwork.Graduatorie.Parser.Objects; -using PoliNetwork.Graduatorie.Parser.Objects.Tables.Course; -using PoliNetwork.Graduatorie.Parser.Objects.Tables.Merit; - -#endregion - -namespace PoliNetwork.Graduatorie.Parser.Utils.Transformer.ParserNS; - -public static class Converter -{ - public static StudentResult FromMeritTableToStudentResult(MeritTableRow row) - { - var rowCanEnroll = row.CanEnroll ?? false; - var rowCanEnrollInto = rowCanEnroll ? row.CanEnrollInto : null; - return new StudentResult - { - Id = row.Id, - Ofa = row.Ofa, - Result = row.Result, - BirthDate = null, - PositionAbsolute = row.Position, - PositionCourse = null, - SectionsResults = null, - EnglishCorrectAnswers = null, - EnrollType = EnrollType.From(rowCanEnrollInto, rowCanEnroll) - }; - } - - - public static StudentResult FromCourseTableRowToStudentResult(CourseTableRow row, Table course) - { - var rowCanEnroll = row.CanEnroll ?? false; - return new StudentResult - { - Id = row.Id, - Ofa = row.Ofa, - Result = row.Result, - BirthDate = row.BirthDate, - EnrollType = EnrollType.From(course.CourseTitle, rowCanEnroll), - PositionAbsolute = null, - PositionCourse = row.Position, - SectionsResults = row.SectionsResults, - EnglishCorrectAnswers = row.EnglishCorrectAnswers - }; - } -} \ No newline at end of file diff --git a/PoliNetwork.Graduatorie.Scraper/Utils/Web/ScraperOutput.cs b/PoliNetwork.Graduatorie.Scraper/Utils/Web/ScraperOutput.cs index 0313a170..24ca314e 100644 --- a/PoliNetwork.Graduatorie.Scraper/Utils/Web/ScraperOutput.cs +++ b/PoliNetwork.Graduatorie.Scraper/Utils/Web/ScraperOutput.cs @@ -9,7 +9,6 @@ namespace PoliNetwork.Graduatorie.Scraper.Utils.Web; public static class ScraperOutput { - public static List GetWithUrlsFromLocalFileLinks(IEnumerable urls, string dataFolder) { var links = GetSaved(dataFolder); @@ -32,11 +31,11 @@ private static List GetSaved(string dataFolder) { // consider to handle them Console.WriteLine($"[ERROR] Can't validate the ScraperOutput file ({filePath})"); - return new(); + return new List(); } } - private static List GetLines(string filePath) + private static IEnumerable GetLines(string filePath) { try { @@ -46,7 +45,7 @@ private static List GetLines(string filePath) { Console.WriteLine(exception); Console.WriteLine($"[ERROR] Can't read the ScraperOutput file ({filePath})"); - return new(); + return new List(); } } @@ -84,7 +83,7 @@ private static string SelectorUrlWithEndLine(string url) { return url + "\n"; } - + private static string GetFilePath(string dataFolder) { return Path.Join(dataFolder, Constants.OutputLinksFilename);