From 8dc1217b72ac41897916679084ea9b55fefb9201 Mon Sep 17 00:00:00 2001 From: angeousta Date: Sat, 28 Oct 2023 12:10:02 +0200 Subject: [PATCH 1/8] Update Lib_CSharp --- Lib_CSharp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Lib_CSharp b/Lib_CSharp index ce4a59cf..25566522 160000 --- a/Lib_CSharp +++ b/Lib_CSharp @@ -1 +1 @@ -Subproject commit ce4a59cf4a90cf74a3a9116ccbaf6d2e588dc8ad +Subproject commit 255665225ec8cef648957c340508de095ec9d532 From f4b3ea54ab9cb42c3d92c76fc8986deb1cf9d668 Mon Sep 17 00:00:00 2001 From: angeousta Date: Sat, 28 Oct 2023 12:11:10 +0200 Subject: [PATCH 2/8] Update BySchoolYearCourseJson.cs and Scraper.cs --- .../Indexes/Specific/BySchoolYearCourseJson.cs | 18 ++++++++++++------ .../Utils/Web/Scraper.cs | 2 +- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/Specific/BySchoolYearCourseJson.cs b/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/Specific/BySchoolYearCourseJson.cs index d13ff51d..0f6a5b53 100644 --- a/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/Specific/BySchoolYearCourseJson.cs +++ b/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/Specific/BySchoolYearCourseJson.cs @@ -268,8 +268,8 @@ private static void AddToRankings(ICollection rankings, Ranking ranking && x.Year == ranking.Year && Similar(x.ByCourse, ranking.ByCourse) ); - - if (!any) + + if (!any) rankings.Add(ranking); } @@ -281,9 +281,15 @@ private static bool Similar( if (a == null || b == null) return false; return a.Count == b.Count && a.Select(Selector).All(Predicate); - - bool Selector(CourseTable variable) => b.Any(x => x.Title == variable.Title); - bool Predicate(bool boolB) => boolB; - + + bool Selector(CourseTable variable) + { + return b.Any(x => x.Title == variable.Title); + } + + bool Predicate(bool boolB) + { + return boolB; + } } } \ No newline at end of file diff --git a/PoliNetwork.Graduatorie.Scraper/Utils/Web/Scraper.cs b/PoliNetwork.Graduatorie.Scraper/Utils/Web/Scraper.cs index 7aea2f6f..81c0228d 100644 --- a/PoliNetwork.Graduatorie.Scraper/Utils/Web/Scraper.cs +++ b/PoliNetwork.Graduatorie.Scraper/Utils/Web/Scraper.cs @@ -190,4 +190,4 @@ private bool IsValidText(string text) return null; } } -} +} \ No newline at end of file From c8e95a9c845739eb6dadabdd61ceb460aa379e05 Mon Sep 17 00:00:00 2001 From: angeousta Date: Sat, 28 Oct 2023 12:22:17 +0200 Subject: [PATCH 3/8] Update EnrollUtil.cs, Hashing.cs, and CheckUrlUtil.cs --- PoliNetwork.Graduatorie.Common/Utils/EnrollUtil.cs | 2 +- PoliNetwork.Graduatorie.Parser/Utils/Hashing.cs | 2 +- PoliNetwork.Graduatorie.Scraper/Utils/Web/CheckUrlUtil.cs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/PoliNetwork.Graduatorie.Common/Utils/EnrollUtil.cs b/PoliNetwork.Graduatorie.Common/Utils/EnrollUtil.cs index 0966f075..a9bf26a7 100644 --- a/PoliNetwork.Graduatorie.Common/Utils/EnrollUtil.cs +++ b/PoliNetwork.Graduatorie.Common/Utils/EnrollUtil.cs @@ -6,7 +6,7 @@ namespace PoliNetwork.Graduatorie.Common.Utils; -public class EnrollUtil +public static class EnrollUtil { public static EnrollType GetEnrollType(string? rowCanEnrollInto, bool rowCanEnroll) { diff --git a/PoliNetwork.Graduatorie.Parser/Utils/Hashing.cs b/PoliNetwork.Graduatorie.Parser/Utils/Hashing.cs index 5940ac04..e71a7ceb 100644 --- a/PoliNetwork.Graduatorie.Parser/Utils/Hashing.cs +++ b/PoliNetwork.Graduatorie.Parser/Utils/Hashing.cs @@ -1,6 +1,6 @@ namespace PoliNetwork.Graduatorie.Parser.Utils; -public class Hashing +public static class Hashing { public static int? GetHashFromListHash(IReadOnlyCollection? iMerit) { diff --git a/PoliNetwork.Graduatorie.Scraper/Utils/Web/CheckUrlUtil.cs b/PoliNetwork.Graduatorie.Scraper/Utils/Web/CheckUrlUtil.cs index d1ab1264..ab375a6c 100644 --- a/PoliNetwork.Graduatorie.Scraper/Utils/Web/CheckUrlUtil.cs +++ b/PoliNetwork.Graduatorie.Scraper/Utils/Web/CheckUrlUtil.cs @@ -7,7 +7,7 @@ namespace PoliNetwork.Graduatorie.Scraper.Utils.Web; -public class CheckUrlUtil +public static class CheckUrlUtil { private static void CheckUrl(RankingUrl variable, HashSet final) { From a2956e72cb1c2b33e308a6e4c1970b114640971a Mon Sep 17 00:00:00 2001 From: angeousta Date: Thu, 14 Dec 2023 01:14:53 +0100 Subject: [PATCH 4/8] Update HashMatricoleWrite.cs, RankingSummaryStudent.cs, and StudentHashSummary.cs --- .../Utils/Output/HashMatricoleWrite.cs | 11 ++++++ .../Utils/Output/RankingSummaryStudent.cs | 37 +++++++++++++++++++ .../Utils/Output/StudentHashSummary.cs | 11 ++++++ 3 files changed, 59 insertions(+) diff --git a/PoliNetwork.Graduatorie.Parser/Utils/Output/HashMatricoleWrite.cs b/PoliNetwork.Graduatorie.Parser/Utils/Output/HashMatricoleWrite.cs index 38e00e90..5a95c23e 100644 --- a/PoliNetwork.Graduatorie.Parser/Utils/Output/HashMatricoleWrite.cs +++ b/PoliNetwork.Graduatorie.Parser/Utils/Output/HashMatricoleWrite.cs @@ -18,8 +18,19 @@ public static void Write(RankingsSet? rankingsSet, string outFolder) return; var dictionary = GetDictToWrite(rankingsSet); + Sort2(dictionary); WriteToFile(dictionary, outFolder); } + + private static void Sort2(SortedDictionary dict) + { + var keys = dict.Keys; + foreach (var key in keys) + { + var item = dict[key]; + item.Sort2(); + } + } private static SortedDictionary GetDictToWrite(RankingsSet rankingsSet) { diff --git a/PoliNetwork.Graduatorie.Parser/Utils/Output/RankingSummaryStudent.cs b/PoliNetwork.Graduatorie.Parser/Utils/Output/RankingSummaryStudent.cs index 1bb43ca8..7061bfc4 100644 --- a/PoliNetwork.Graduatorie.Parser/Utils/Output/RankingSummaryStudent.cs +++ b/PoliNetwork.Graduatorie.Parser/Utils/Output/RankingSummaryStudent.cs @@ -1,5 +1,6 @@ #region +using Microsoft.VisualBasic.CompilerServices; using Newtonsoft.Json; using Newtonsoft.Json.Serialization; using PoliNetwork.Graduatorie.Common.Enums; @@ -19,6 +20,42 @@ public class RankingSummaryStudent public readonly RankingUrl? Url; public readonly int? Year; + public int Compare(RankingSummaryStudent o) + { + var i = (this.Year ?? 0) - (o.Year ?? 0); + if (i != 0) + { + return i < 0 ? -1 : 1; + } + + i = string.CompareOrdinal(this.Course ?? "", o.Course ?? ""); + if (i != 0) + { + return i < 0 ? -1 : 1; + } + + i = string.CompareOrdinal(this.Phase ?? "", o.Phase ?? ""); + if (i != 0) + { + return i < 0 ? -1 : 1; + } + + i = ((int)(this.School ?? SchoolEnum.Unknown)) - ((int)(o.School ?? SchoolEnum.Unknown)); + if (i != 0) + { + return i < 0 ? -1 : 1; + } + + i = this.Url?.CompareTo(o.Url) ?? 0; + if (i != 0) + { + return i < 0 ? -1 : 1; + } + + + return i; + } + public RankingSummaryStudent() { } diff --git a/PoliNetwork.Graduatorie.Parser/Utils/Output/StudentHashSummary.cs b/PoliNetwork.Graduatorie.Parser/Utils/Output/StudentHashSummary.cs index 7e490321..ac806638 100644 --- a/PoliNetwork.Graduatorie.Parser/Utils/Output/StudentHashSummary.cs +++ b/PoliNetwork.Graduatorie.Parser/Utils/Output/StudentHashSummary.cs @@ -41,4 +41,15 @@ public void Merge(StudentResult student, Ranking ranking, CourseTable? courseTab if (!present2) RankingSummaries.Add(r); } + + public void Sort2() + { + this.RankingSummaries.Sort(Compare); + this.SingleCourseJsons.Sort(Compare); + } + + private int Compare(RankingSummaryStudent a, RankingSummaryStudent b) + { + return a.Compare(b); + } } \ No newline at end of file From 356c2b7062cabc2728dac827b22b8c5dd914931c Mon Sep 17 00:00:00 2001 From: angeousta Date: Thu, 14 Dec 2023 01:15:58 +0100 Subject: [PATCH 5/8] Update DateFound.cs and Scraper.cs --- .../Objects/Json/DateFound.cs | 12 ++++++++---- PoliNetwork.Graduatorie.Scraper/Utils/Web/Scraper.cs | 3 +-- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/PoliNetwork.Graduatorie.Parser/Objects/Json/DateFound.cs b/PoliNetwork.Graduatorie.Parser/Objects/Json/DateFound.cs index c3d1aea8..962fa1c1 100644 --- a/PoliNetwork.Graduatorie.Parser/Objects/Json/DateFound.cs +++ b/PoliNetwork.Graduatorie.Parser/Objects/Json/DateFound.cs @@ -25,10 +25,14 @@ public void WriteToFile(string dataFolder) public static DateTime? MinDateTime(DateTime? date1, DateTime? date2) { - if (date1 == null && date2 == null) - return null; - if (date1 == null) - return date2; + switch (date1) + { + case null when date2 == null: + return null; + case null: + return date2; + } + if (date2 == null) return date1; diff --git a/PoliNetwork.Graduatorie.Scraper/Utils/Web/Scraper.cs b/PoliNetwork.Graduatorie.Scraper/Utils/Web/Scraper.cs index 81c0228d..2b688648 100644 --- a/PoliNetwork.Graduatorie.Scraper/Utils/Web/Scraper.cs +++ b/PoliNetwork.Graduatorie.Scraper/Utils/Web/Scraper.cs @@ -138,8 +138,7 @@ private IEnumerable UseHref(string? href) private IEnumerable ParseNewsPage(string url) { HashSet links = new(); - if (_alreadyVisited.Contains(url)) return links; - _alreadyVisited.Add(url); + if (!_alreadyVisited.Add(url)) return links; var page = _web.Load(url).DocumentNode; From 3089b4495e73f6c3102eab78d8c462df22b0f377 Mon Sep 17 00:00:00 2001 From: angeousta Date: Thu, 14 Dec 2023 01:16:00 +0100 Subject: [PATCH 6/8] Update RankingSummaryStudent.cs --- .../Utils/Output/RankingSummaryStudent.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/PoliNetwork.Graduatorie.Parser/Utils/Output/RankingSummaryStudent.cs b/PoliNetwork.Graduatorie.Parser/Utils/Output/RankingSummaryStudent.cs index 7061bfc4..97339728 100644 --- a/PoliNetwork.Graduatorie.Parser/Utils/Output/RankingSummaryStudent.cs +++ b/PoliNetwork.Graduatorie.Parser/Utils/Output/RankingSummaryStudent.cs @@ -1,6 +1,5 @@ #region -using Microsoft.VisualBasic.CompilerServices; using Newtonsoft.Json; using Newtonsoft.Json.Serialization; using PoliNetwork.Graduatorie.Common.Enums; From 79de854aff589283657ebec3242d684a26004eea Mon Sep 17 00:00:00 2001 From: angeousta Date: Thu, 14 Dec 2023 01:16:22 +0100 Subject: [PATCH 7/8] Update SingleCourseJson.cs, Ranking.cs, HashMatricoleWrite.cs, and 2 more files --- .../Objects/Json/SingleCourseJson.cs | 4 +- .../Objects/RankingNS/Ranking.cs | 4 +- .../Utils/Output/HashMatricoleWrite.cs | 2 +- .../Utils/Output/RankingSummaryStudent.cs | 57 +++++++------------ .../Utils/Output/StudentHashSummary.cs | 4 +- 5 files changed, 28 insertions(+), 43 deletions(-) diff --git a/PoliNetwork.Graduatorie.Parser/Objects/Json/SingleCourseJson.cs b/PoliNetwork.Graduatorie.Parser/Objects/Json/SingleCourseJson.cs index e46d2b86..dc487970 100644 --- a/PoliNetwork.Graduatorie.Parser/Objects/Json/SingleCourseJson.cs +++ b/PoliNetwork.Graduatorie.Parser/Objects/Json/SingleCourseJson.cs @@ -18,9 +18,9 @@ public class SingleCourseJson public string? Link; public string? Location; public string? Name; + public RankingOrder? RankingOrder; public SchoolEnum? School; public int? Year; - public RankingOrder? RankingOrder; public int GetHashWithoutLastUpdate() { @@ -59,4 +59,4 @@ public bool Is(CourseTable courseTable) { return Name == courseTable.Title; } -} +} \ No newline at end of file diff --git a/PoliNetwork.Graduatorie.Parser/Objects/RankingNS/Ranking.cs b/PoliNetwork.Graduatorie.Parser/Objects/RankingNS/Ranking.cs index d8371585..7778b72f 100644 --- a/PoliNetwork.Graduatorie.Parser/Objects/RankingNS/Ranking.cs +++ b/PoliNetwork.Graduatorie.Parser/Objects/RankingNS/Ranking.cs @@ -117,7 +117,7 @@ public List ToSingleCourseJson() Year = Year, School = School, Location = variable.Location, - RankingOrder = RankingOrder, + RankingOrder = RankingOrder })); return result; @@ -137,4 +137,4 @@ public string GetPath() { return School + "/" + Year + "/" + RankingOrder?.Phase; } -} +} \ 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 5a95c23e..76a10f20 100644 --- a/PoliNetwork.Graduatorie.Parser/Utils/Output/HashMatricoleWrite.cs +++ b/PoliNetwork.Graduatorie.Parser/Utils/Output/HashMatricoleWrite.cs @@ -21,7 +21,7 @@ public static void Write(RankingsSet? rankingsSet, string outFolder) Sort2(dictionary); WriteToFile(dictionary, outFolder); } - + private static void Sort2(SortedDictionary dict) { var keys = dict.Keys; diff --git a/PoliNetwork.Graduatorie.Parser/Utils/Output/RankingSummaryStudent.cs b/PoliNetwork.Graduatorie.Parser/Utils/Output/RankingSummaryStudent.cs index 97339728..77f088cd 100644 --- a/PoliNetwork.Graduatorie.Parser/Utils/Output/RankingSummaryStudent.cs +++ b/PoliNetwork.Graduatorie.Parser/Utils/Output/RankingSummaryStudent.cs @@ -19,42 +19,6 @@ public class RankingSummaryStudent public readonly RankingUrl? Url; public readonly int? Year; - public int Compare(RankingSummaryStudent o) - { - var i = (this.Year ?? 0) - (o.Year ?? 0); - if (i != 0) - { - return i < 0 ? -1 : 1; - } - - i = string.CompareOrdinal(this.Course ?? "", o.Course ?? ""); - if (i != 0) - { - return i < 0 ? -1 : 1; - } - - i = string.CompareOrdinal(this.Phase ?? "", o.Phase ?? ""); - if (i != 0) - { - return i < 0 ? -1 : 1; - } - - i = ((int)(this.School ?? SchoolEnum.Unknown)) - ((int)(o.School ?? SchoolEnum.Unknown)); - if (i != 0) - { - return i < 0 ? -1 : 1; - } - - i = this.Url?.CompareTo(o.Url) ?? 0; - if (i != 0) - { - return i < 0 ? -1 : 1; - } - - - return i; - } - public RankingSummaryStudent() { } @@ -76,6 +40,27 @@ public RankingSummaryStudent(string? phase, SchoolEnum? school, int? year, Ranki Url = url; } + public int Compare(RankingSummaryStudent o) + { + var i = (Year ?? 0) - (o.Year ?? 0); + if (i != 0) return i < 0 ? -1 : 1; + + i = string.CompareOrdinal(Course ?? "", o.Course ?? ""); + if (i != 0) return i < 0 ? -1 : 1; + + i = string.CompareOrdinal(Phase ?? "", o.Phase ?? ""); + if (i != 0) return i < 0 ? -1 : 1; + + i = (int)(School ?? SchoolEnum.Unknown) - (int)(o.School ?? SchoolEnum.Unknown); + if (i != 0) return i < 0 ? -1 : 1; + + i = Url?.CompareTo(o.Url) ?? 0; + if (i != 0) return i < 0 ? -1 : 1; + + + return i; + } + public override bool Equals(object? obj) { if (obj is not RankingSummaryStudent rankingSummaryStudent) return false; diff --git a/PoliNetwork.Graduatorie.Parser/Utils/Output/StudentHashSummary.cs b/PoliNetwork.Graduatorie.Parser/Utils/Output/StudentHashSummary.cs index ac806638..c16c963a 100644 --- a/PoliNetwork.Graduatorie.Parser/Utils/Output/StudentHashSummary.cs +++ b/PoliNetwork.Graduatorie.Parser/Utils/Output/StudentHashSummary.cs @@ -44,8 +44,8 @@ public void Merge(StudentResult student, Ranking ranking, CourseTable? courseTab public void Sort2() { - this.RankingSummaries.Sort(Compare); - this.SingleCourseJsons.Sort(Compare); + RankingSummaries.Sort(Compare); + SingleCourseJsons.Sort(Compare); } private int Compare(RankingSummaryStudent a, RankingSummaryStudent b) From 0dc64a85552d2fcfe9fefd67cbe6c95dd680e0d7 Mon Sep 17 00:00:00 2001 From: angeousta Date: Thu, 14 Dec 2023 01:17:36 +0100 Subject: [PATCH 8/8] Update Lib_CSharp --- Lib_CSharp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Lib_CSharp b/Lib_CSharp index 25566522..fa260546 160000 --- a/Lib_CSharp +++ b/Lib_CSharp @@ -1 +1 @@ -Subproject commit 255665225ec8cef648957c340508de095ec9d532 +Subproject commit fa26054678e1c938b1120f7eaab8b26476700245