From 59450561cc5e0c9834177c21f203689b9730ebfb Mon Sep 17 00:00:00 2001 From: user Date: Mon, 14 Aug 2023 12:06:44 +0200 Subject: [PATCH 01/27] Update .gitignore --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 09ac4923..0c111eea 100644 --- a/.gitignore +++ b/.gitignore @@ -483,7 +483,7 @@ $RECYCLE.BIN/ .idea/* -data + dati RankingsDati rankingsdati From d5f17c5017f0f95355fa5e1e9b4f9047a47de5ee Mon Sep 17 00:00:00 2001 From: user Date: Mon, 14 Aug 2023 12:12:21 +0200 Subject: [PATCH 02/27] Update RankingUrl.cs --- .../Objects/RankingNS/RankingUrl.cs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/PoliNetwork.Graduatorie.Common/Objects/RankingNS/RankingUrl.cs b/PoliNetwork.Graduatorie.Common/Objects/RankingNS/RankingUrl.cs index ebafa918..fbbac57c 100644 --- a/PoliNetwork.Graduatorie.Common/Objects/RankingNS/RankingUrl.cs +++ b/PoliNetwork.Graduatorie.Common/Objects/RankingNS/RankingUrl.cs @@ -10,7 +10,7 @@ namespace PoliNetwork.Graduatorie.Common.Objects.RankingNS; [Serializable] [JsonObject(MemberSerialization.Fields, NamingStrategyType = typeof(CamelCaseNamingStrategy))] -public class RankingUrl +public class RankingUrl :IComparable { public PageEnum PageEnum = PageEnum.Unknown; public string Url = ""; @@ -187,4 +187,12 @@ public static bool AreSimilar(RankingUrl urlA, RankingUrl urlB) return true; } + + public int CompareTo(RankingUrl? other) + { + if (ReferenceEquals(this, other)) return 0; + if (ReferenceEquals(null, other)) return 1; + var pageEnumComparison = PageEnum.CompareTo(other.PageEnum); + return pageEnumComparison != 0 ? pageEnumComparison : string.Compare(Url, other.Url, StringComparison.Ordinal); + } } \ No newline at end of file From d9b4a9ae82b845206feb6bef833a0d90dc77d3a3 Mon Sep 17 00:00:00 2001 From: user Date: Mon, 14 Aug 2023 12:13:01 +0200 Subject: [PATCH 03/27] Update RankingUrl.cs --- .../Objects/RankingNS/RankingUrl.cs | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/PoliNetwork.Graduatorie.Common/Objects/RankingNS/RankingUrl.cs b/PoliNetwork.Graduatorie.Common/Objects/RankingNS/RankingUrl.cs index fbbac57c..2004c16c 100644 --- a/PoliNetwork.Graduatorie.Common/Objects/RankingNS/RankingUrl.cs +++ b/PoliNetwork.Graduatorie.Common/Objects/RankingNS/RankingUrl.cs @@ -10,11 +10,19 @@ namespace PoliNetwork.Graduatorie.Common.Objects.RankingNS; [Serializable] [JsonObject(MemberSerialization.Fields, NamingStrategyType = typeof(CamelCaseNamingStrategy))] -public class RankingUrl :IComparable +public class RankingUrl : IComparable { public PageEnum PageEnum = PageEnum.Unknown; public string Url = ""; + public int CompareTo(RankingUrl? other) + { + if (ReferenceEquals(this, other)) return 0; + if (ReferenceEquals(null, other)) return 1; + var pageEnumComparison = PageEnum.CompareTo(other.PageEnum); + return pageEnumComparison != 0 ? pageEnumComparison : string.Compare(Url, other.Url, StringComparison.Ordinal); + } + public override bool Equals(object? obj) { if (obj is not RankingUrl rankingUrl) return false; @@ -187,12 +195,4 @@ public static bool AreSimilar(RankingUrl urlA, RankingUrl urlB) return true; } - - public int CompareTo(RankingUrl? other) - { - if (ReferenceEquals(this, other)) return 0; - if (ReferenceEquals(null, other)) return 1; - var pageEnumComparison = PageEnum.CompareTo(other.PageEnum); - return pageEnumComparison != 0 ? pageEnumComparison : string.Compare(Url, other.Url, StringComparison.Ordinal); - } } \ No newline at end of file From 7ff4df14a1a2fc7d0618f66f3a80800473449e5a Mon Sep 17 00:00:00 2001 From: user Date: Mon, 14 Aug 2023 12:15:49 +0200 Subject: [PATCH 04/27] Update RankingUrl.cs --- .../Objects/RankingNS/RankingUrl.cs | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/PoliNetwork.Graduatorie.Common/Objects/RankingNS/RankingUrl.cs b/PoliNetwork.Graduatorie.Common/Objects/RankingNS/RankingUrl.cs index 2004c16c..6145d214 100644 --- a/PoliNetwork.Graduatorie.Common/Objects/RankingNS/RankingUrl.cs +++ b/PoliNetwork.Graduatorie.Common/Objects/RankingNS/RankingUrl.cs @@ -10,7 +10,7 @@ namespace PoliNetwork.Graduatorie.Common.Objects.RankingNS; [Serializable] [JsonObject(MemberSerialization.Fields, NamingStrategyType = typeof(CamelCaseNamingStrategy))] -public class RankingUrl : IComparable +public class RankingUrl : IComparable, IEquatable { public PageEnum PageEnum = PageEnum.Unknown; public string Url = ""; @@ -23,6 +23,13 @@ public int CompareTo(RankingUrl? other) return pageEnumComparison != 0 ? pageEnumComparison : string.Compare(Url, other.Url, StringComparison.Ordinal); } + public bool Equals(RankingUrl? other) + { + if (other == null) + return false; + return PageEnum == other.PageEnum && Url == other.Url; + } + public override bool Equals(object? obj) { if (obj is not RankingUrl rankingUrl) return false; @@ -37,11 +44,6 @@ public override int GetHashCode() return PageEnum.GetHashCode() ^ urlHash; } - protected bool Equals(RankingUrl other) - { - return PageEnum == other.PageEnum && Url == other.Url; - } - public int GetHashWithoutLastUpdate() { @@ -56,7 +58,7 @@ public int GetHashWithoutLastUpdate() /// /// /// The full url string - /// prefered input -> http://www.risultati-ammissione.polimi.it/2022_20064_html/2022_20064_generale.html + /// preferred input -> http://www.risultati-ammissione.polimi.it/2022_20064_html/2022_20064_generale.html /// valid case -> /2022_20064_html/2022_20064_generale.html /// /// RankingUrl From f2868193b38c51478a9ebef690696b276e47795d Mon Sep 17 00:00:00 2001 From: user Date: Mon, 14 Aug 2023 12:06:44 +0200 Subject: [PATCH 05/27] Revert "Update .gitignore" This reverts commit 59450561cc5e0c9834177c21f203689b9730ebfb. --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 0c111eea..09ac4923 100644 --- a/.gitignore +++ b/.gitignore @@ -483,7 +483,7 @@ $RECYCLE.BIN/ .idea/* - +data dati RankingsDati rankingsdati From 3f0c27197159793bf048cee65978c41edf92d007 Mon Sep 17 00:00:00 2001 From: user Date: Mon, 14 Aug 2023 12:25:13 +0200 Subject: [PATCH 06/27] Update IndexJsonBase.cs --- .../Objects/Json/Indexes/IndexJsonBase.cs | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/IndexJsonBase.cs b/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/IndexJsonBase.cs index ff6fea89..6b10cbac 100644 --- a/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/IndexJsonBase.cs +++ b/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/IndexJsonBase.cs @@ -66,14 +66,20 @@ private static bool ExitIfAlreadyExistsAndNotUpdated(Ranking ranking, string pat { if (!File.Exists(path)) return false; - var x = File.ReadAllText(path); - - var j = JsonConvert.DeserializeObject(x, Culture.JsonSerializerSettings); + var j = GetRankingFromFile(path); var hashThis = ranking.GetHashWithoutLastUpdate(); var hashJ = j?.GetHashWithoutLastUpdate(); return hashThis == hashJ; } + private static Ranking? GetRankingFromFile(string path) + { + var x = File.ReadAllText(path); + + var j = JsonConvert.DeserializeObject(x, Culture.JsonSerializerSettings); + return j; + } + public static void IndexesWrite(RankingsSet? rankingsSet, string outFolder, ArgsConfig argsConfig) { //let's write all single json files From f84d9b9071858d68da7ca17e1d231bc854cb4a20 Mon Sep 17 00:00:00 2001 From: user Date: Mon, 14 Aug 2023 12:27:29 +0200 Subject: [PATCH 07/27] Update IndexJsonBase.cs --- .../Objects/Json/Indexes/IndexJsonBase.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/IndexJsonBase.cs b/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/IndexJsonBase.cs index 6b10cbac..81601ecd 100644 --- a/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/IndexJsonBase.cs +++ b/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/IndexJsonBase.cs @@ -67,6 +67,8 @@ private static bool ExitIfAlreadyExistsAndNotUpdated(Ranking ranking, string pat if (!File.Exists(path)) return false; var j = GetRankingFromFile(path); + if (j == null) + return false; var hashThis = ranking.GetHashWithoutLastUpdate(); var hashJ = j?.GetHashWithoutLastUpdate(); return hashThis == hashJ; From fd9700f9580f5576fe85815469dd3a18d6201bee Mon Sep 17 00:00:00 2001 From: user Date: Mon, 14 Aug 2023 12:28:26 +0200 Subject: [PATCH 08/27] Update IndexJsonBase.cs --- .../Objects/Json/Indexes/IndexJsonBase.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/IndexJsonBase.cs b/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/IndexJsonBase.cs index 81601ecd..878d769f 100644 --- a/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/IndexJsonBase.cs +++ b/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/IndexJsonBase.cs @@ -69,8 +69,10 @@ private static bool ExitIfAlreadyExistsAndNotUpdated(Ranking ranking, string pat var j = GetRankingFromFile(path); if (j == null) return false; + var hashThis = ranking.GetHashWithoutLastUpdate(); - var hashJ = j?.GetHashWithoutLastUpdate(); + var hashJ = j.GetHashWithoutLastUpdate(); + return hashThis == hashJ; } From bba2635d14a0b1124e26a8aeff54d7d986f6cfb8 Mon Sep 17 00:00:00 2001 From: user Date: Mon, 14 Aug 2023 13:02:23 +0200 Subject: [PATCH 09/27] Update IndexJsonBase.cs and Ranking.cs --- .../Objects/Json/Indexes/IndexJsonBase.cs | 23 +++++++++++------- .../Objects/RankingNS/Ranking.cs | 24 +++++++++++++++++++ 2 files changed, 38 insertions(+), 9 deletions(-) diff --git a/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/IndexJsonBase.cs b/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/IndexJsonBase.cs index 878d769f..8ad0b5ab 100644 --- a/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/IndexJsonBase.cs +++ b/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/IndexJsonBase.cs @@ -62,18 +62,23 @@ private static void WriteSingleJsonRanking(string folder, Ranking ranking, ArgsC File.WriteAllText(path, rankingJsonString); } - private static bool ExitIfAlreadyExistsAndNotUpdated(Ranking ranking, string path) + private static bool ExitIfAlreadyExistsAndNotUpdated(Ranking a, string path) { if (!File.Exists(path)) return false; + var b = GetRankingFromFile(path); + return b != null && SameHash(a, b); + } - var j = GetRankingFromFile(path); - if (j == null) - return false; - - var hashThis = ranking.GetHashWithoutLastUpdate(); - var hashJ = j.GetHashWithoutLastUpdate(); - - return hashThis == hashJ; + private static bool SameHash(Ranking a, Ranking b) + { + var aInfo = a.GetHashWithoutLastUpdateInfo(); + var bInfo = b.GetHashWithoutLastUpdateInfo(); + var aTable = a.GetHashWithoutLastUpdateTable(); + var bTable = b.GetHashWithoutLastUpdateTable(); + + var sameHashInfo = aInfo == bInfo; + var sameHashTable = aTable == bTable; + return sameHashInfo || sameHashTable; } private static Ranking? GetRankingFromFile(string path) diff --git a/PoliNetwork.Graduatorie.Parser/Objects/RankingNS/Ranking.cs b/PoliNetwork.Graduatorie.Parser/Objects/RankingNS/Ranking.cs index f010b94c..d8f7b835 100644 --- a/PoliNetwork.Graduatorie.Parser/Objects/RankingNS/Ranking.cs +++ b/PoliNetwork.Graduatorie.Parser/Objects/RankingNS/Ranking.cs @@ -56,6 +56,30 @@ public int GetHashWithoutLastUpdate() return i; } + + public int GetHashWithoutLastUpdateTable() + { + var i = "RankingTable".GetHashCode(); + + if (ByCourse == null) + i ^= "ByCourse".GetHashCode(); + else + i = ByCourse.Aggregate(i, (current, variable) => current ^ variable.GetHashWithoutLastUpdate()); + + return i; + } + + public int GetHashWithoutLastUpdateInfo() + { + var i = "RankingInfo".GetHashCode(); + i ^= Extra?.GetHashCode() ?? "Extra".GetHashCode(); + i ^= RankingOrder?.GetHashWithoutLastUpdate() ?? "RankingOrder".GetHashCode(); + i ^= RankingSummary?.GetHashWithoutLastUpdate() ?? "RankingSummary".GetHashCode(); + i ^= School?.GetHashCode() ?? "School".GetHashCode(); + i ^= Url?.GetHashWithoutLastUpdate() ?? "Url".GetHashCode(); + i ^= Year?.GetHashCode() ?? "Year".GetHashCode(); + return i; + } public bool IsSimilarTo(Ranking ranking) From 66c20b76f12686c339aaed59325896506e21b99b Mon Sep 17 00:00:00 2001 From: user Date: Mon, 14 Aug 2023 13:05:10 +0200 Subject: [PATCH 10/27] Update IndexJsonBase.cs and Ranking.cs --- .../Objects/Json/Indexes/IndexJsonBase.cs | 11 +++++++---- .../Objects/RankingNS/Ranking.cs | 18 ++++++++++++++---- 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/IndexJsonBase.cs b/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/IndexJsonBase.cs index 8ad0b5ab..a117ad86 100644 --- a/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/IndexJsonBase.cs +++ b/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/IndexJsonBase.cs @@ -73,12 +73,15 @@ private static bool SameHash(Ranking a, Ranking b) { var aInfo = a.GetHashWithoutLastUpdateInfo(); var bInfo = b.GetHashWithoutLastUpdateInfo(); - var aTable = a.GetHashWithoutLastUpdateTable(); - var bTable = b.GetHashWithoutLastUpdateTable(); + var aTableCourse = a.GetHashWithoutLastUpdateTableCourse(); + var bTableCourse = b.GetHashWithoutLastUpdateTableCourse(); + var aTableMerit = a.GetHashWithoutLastUpdateTableMerit(); + var bTableMerit = b.GetHashWithoutLastUpdateTableMerit(); var sameHashInfo = aInfo == bInfo; - var sameHashTable = aTable == bTable; - return sameHashInfo || sameHashTable; + var sameHashTableCourse = aTableCourse == bTableCourse; + var sameHashTableMerit = aTableMerit == bTableMerit; + return sameHashInfo || sameHashTableCourse || sameHashTableMerit; } private static Ranking? GetRankingFromFile(string path) diff --git a/PoliNetwork.Graduatorie.Parser/Objects/RankingNS/Ranking.cs b/PoliNetwork.Graduatorie.Parser/Objects/RankingNS/Ranking.cs index d8f7b835..4cd6711a 100644 --- a/PoliNetwork.Graduatorie.Parser/Objects/RankingNS/Ranking.cs +++ b/PoliNetwork.Graduatorie.Parser/Objects/RankingNS/Ranking.cs @@ -56,10 +56,20 @@ public int GetHashWithoutLastUpdate() return i; } - - public int GetHashWithoutLastUpdateTable() + + public int GetHashWithoutLastUpdateTableMerit() + { + var i = "RankingTableMerit".GetHashCode(); + + i ^= ByMerit?.GetHashWithoutLastUpdate() ?? "ByMerit".GetHashCode(); + + return i; + } + + + public int GetHashWithoutLastUpdateTableCourse() { - var i = "RankingTable".GetHashCode(); + var i = "RankingTableCourse".GetHashCode(); if (ByCourse == null) i ^= "ByCourse".GetHashCode(); @@ -68,7 +78,7 @@ public int GetHashWithoutLastUpdateTable() return i; } - + public int GetHashWithoutLastUpdateInfo() { var i = "RankingInfo".GetHashCode(); From f04eb61d605ffa95d0ea54ed7ee7f2bd14e0ea3d Mon Sep 17 00:00:00 2001 From: user Date: Mon, 14 Aug 2023 13:10:56 +0200 Subject: [PATCH 11/27] Update ScraperOutput.cs --- .../Utils/Web/ScraperOutput.cs | 51 ++++++++++++++++--- 1 file changed, 44 insertions(+), 7 deletions(-) diff --git a/PoliNetwork.Graduatorie.Scraper/Utils/Web/ScraperOutput.cs b/PoliNetwork.Graduatorie.Scraper/Utils/Web/ScraperOutput.cs index cf79fe07..683e50d1 100644 --- a/PoliNetwork.Graduatorie.Scraper/Utils/Web/ScraperOutput.cs +++ b/PoliNetwork.Graduatorie.Scraper/Utils/Web/ScraperOutput.cs @@ -34,20 +34,57 @@ private static List GetSaved(string? dataFolder) List list = new(); var filePath = GetFilePath(dataFolder); if (!File.Exists(filePath)) return list; - try - { - var lines = File.ReadAllLines(filePath); - var rankingUrls = from line in lines where !string.IsNullOrEmpty(line) select RankingUrl.From(line); - list.AddRange(rankingUrls); + var lines = GetLines(filePath); + if (lines == null) + { + // consider to handle them + Console.WriteLine($"[ERROR] Can't read the ScraperOutput file ({filePath})"); return list; } + + try + { + foreach (var variable in lines) + { + RankingFromAdd(variable, list); + } + } catch { // consider to handle them - Console.WriteLine($"[ERROR] Can't read the ScraperOutput file ({filePath})"); - return list; + Console.WriteLine($"[ERROR] Can't validate the ScraperOutput file ({filePath})"); + } + + return list; + } + + private static void RankingFromAdd(string variable, List list) + { + try + { + var rankingUrl = RankingUrl.From(variable); + list.Add(rankingUrl); } + catch (Exception exception) + { + Console.WriteLine(exception); + } + } + + private static List? GetLines(string filePath) + { + List? lines = null; + try + { + lines = File.ReadAllLines(filePath).Where(x => !string.IsNullOrEmpty(x)).ToList(); + } + catch (Exception exception) + { + Console.WriteLine(exception); + } + + return lines; } public static void Write(List rankingsUrls, string? dataFolder) From 16de3a4f738bd4ccf49581aca371ee8f1fda1347 Mon Sep 17 00:00:00 2001 From: user Date: Mon, 14 Aug 2023 13:17:03 +0200 Subject: [PATCH 12/27] Update ScraperOutput.cs --- .../Utils/Web/ScraperOutput.cs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/PoliNetwork.Graduatorie.Scraper/Utils/Web/ScraperOutput.cs b/PoliNetwork.Graduatorie.Scraper/Utils/Web/ScraperOutput.cs index 683e50d1..d785c14e 100644 --- a/PoliNetwork.Graduatorie.Scraper/Utils/Web/ScraperOutput.cs +++ b/PoliNetwork.Graduatorie.Scraper/Utils/Web/ScraperOutput.cs @@ -102,14 +102,14 @@ public static void Write(List rankingsUrls, string? dataFolder) private static string GetOutputLinksString(IEnumerable rankingsUrls) { - var output = ""; - var urls = CheckUrlUtil.GetRankingLinksHashSet(rankingsUrls).Order(); - foreach (var link in urls) - { - output += link; - output += "\n"; - } + var rankingLinksHashSet = CheckUrlUtil.GetRankingLinksHashSet(rankingsUrls); + var rankingUrls = rankingLinksHashSet.Where(PredicateStringUrlNotNullNorEmpty); + var urls = rankingUrls.Order(); - return output; + var enumerable = urls.Select(link => link.Url).Select(SelectorUrlWithEndLine); + return enumerable.Aggregate("", (current, linkUrl) => current + linkUrl); } + + private static bool PredicateStringUrlNotNullNorEmpty(RankingUrl x) => !string.IsNullOrEmpty(x.Url); + private static string SelectorUrlWithEndLine(string url) => url + "\n"; } \ No newline at end of file From a831b0fb903de54ab4054761d82e3c79d5e74acc Mon Sep 17 00:00:00 2001 From: user Date: Mon, 14 Aug 2023 13:23:01 +0200 Subject: [PATCH 13/27] Update IndexJsonBase.cs, Ranking.cs, and ScraperOutput.cs --- .../Objects/Json/Indexes/IndexJsonBase.cs | 40 +++++++++++++++---- .../Objects/RankingNS/Ranking.cs | 10 +++++ .../Utils/Web/ScraperOutput.cs | 4 +- 3 files changed, 45 insertions(+), 9 deletions(-) diff --git a/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/IndexJsonBase.cs b/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/IndexJsonBase.cs index a117ad86..ba9aff20 100644 --- a/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/IndexJsonBase.cs +++ b/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/IndexJsonBase.cs @@ -6,6 +6,8 @@ using PoliNetwork.Graduatorie.Common.Objects; using PoliNetwork.Graduatorie.Parser.Objects.Json.Indexes.Specific; using PoliNetwork.Graduatorie.Parser.Objects.RankingNS; +using PoliNetwork.Graduatorie.Parser.Objects.Tables.Course; +using PoliNetwork.Graduatorie.Parser.Objects.Tables.Merit; #endregion @@ -73,15 +75,37 @@ private static bool SameHash(Ranking a, Ranking b) { var aInfo = a.GetHashWithoutLastUpdateInfo(); var bInfo = b.GetHashWithoutLastUpdateInfo(); - var aTableCourse = a.GetHashWithoutLastUpdateTableCourse(); - var bTableCourse = b.GetHashWithoutLastUpdateTableCourse(); - var aTableMerit = a.GetHashWithoutLastUpdateTableMerit(); - var bTableMerit = b.GetHashWithoutLastUpdateTableMerit(); - + var aTableCourse = a.GetTableCourse(); + var bTableCourse = b.GetTableCourse(); + var aTableMerit = a.GetMerit(); + var bTableMerit = b.GetMerit(); + var sameHashInfo = aInfo == bInfo; - var sameHashTableCourse = aTableCourse == bTableCourse; - var sameHashTableMerit = aTableMerit == bTableMerit; - return sameHashInfo || sameHashTableCourse || sameHashTableMerit; + var sameHashTableCourse = SameHashCourse(aTableCourse, bTableCourse); + var sameHashTableMerit = SameHashMerit(aTableMerit, bTableMerit); + return sameHashInfo && sameHashTableCourse && sameHashTableMerit; + } + + private static bool SameHashCourse(List? aTableCourse, List? bTableCourse) + { + if (aTableCourse == null && bTableCourse == null) + return true; + if (aTableCourse == null || bTableCourse == null) + return false; + + ; + return false; + } + + private static bool SameHashMerit(MeritTable? aTableMerit, MeritTable? bTableMerit) + { + if (aTableMerit == null && bTableMerit == null) + return true; + if (aTableMerit == null || bTableMerit == null) + return false; + + ; + return false; } private static Ranking? GetRankingFromFile(string path) diff --git a/PoliNetwork.Graduatorie.Parser/Objects/RankingNS/Ranking.cs b/PoliNetwork.Graduatorie.Parser/Objects/RankingNS/Ranking.cs index 4cd6711a..1ead43fe 100644 --- a/PoliNetwork.Graduatorie.Parser/Objects/RankingNS/Ranking.cs +++ b/PoliNetwork.Graduatorie.Parser/Objects/RankingNS/Ranking.cs @@ -162,4 +162,14 @@ public string GetPath() { return School + "/" + Year + "/" + RankingOrder?.Phase; } + + public MeritTable? GetMerit() + { + return this.ByMerit; + } + + public List? GetTableCourse() + { + return this.ByCourse; + } } \ 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 d785c14e..80c49038 100644 --- a/PoliNetwork.Graduatorie.Scraper/Utils/Web/ScraperOutput.cs +++ b/PoliNetwork.Graduatorie.Scraper/Utils/Web/ScraperOutput.cs @@ -106,7 +106,9 @@ private static string GetOutputLinksString(IEnumerable rankingsUrls) var rankingUrls = rankingLinksHashSet.Where(PredicateStringUrlNotNullNorEmpty); var urls = rankingUrls.Order(); - var enumerable = urls.Select(link => link.Url).Select(SelectorUrlWithEndLine); + var enumerable1 = urls.Select(link => link.Url); + var select = enumerable1.Select(SelectorUrlWithEndLine); + var enumerable = select.Distinct().Order(); return enumerable.Aggregate("", (current, linkUrl) => current + linkUrl); } From 546893f5e18f2198b491d73ea478dee3b67311e4 Mon Sep 17 00:00:00 2001 From: user Date: Mon, 14 Aug 2023 13:34:28 +0200 Subject: [PATCH 14/27] Update IndexJsonBase.cs, Ranking.cs, and MeritTable.cs --- .../Objects/Json/Indexes/IndexJsonBase.cs | 20 ++++++++++-- .../Objects/RankingNS/Ranking.cs | 31 ++++++++++++++++--- .../Objects/Tables/Merit/MeritTable.cs | 18 +++++------ 3 files changed, 54 insertions(+), 15 deletions(-) diff --git a/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/IndexJsonBase.cs b/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/IndexJsonBase.cs index ba9aff20..02e0bec0 100644 --- a/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/IndexJsonBase.cs +++ b/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/IndexJsonBase.cs @@ -86,7 +86,7 @@ private static bool SameHash(Ranking a, Ranking b) return sameHashInfo && sameHashTableCourse && sameHashTableMerit; } - private static bool SameHashCourse(List? aTableCourse, List? bTableCourse) + private static bool SameHashCourse(IReadOnlyCollection? aTableCourse, IReadOnlyCollection? bTableCourse) { if (aTableCourse == null && bTableCourse == null) return true; @@ -94,7 +94,23 @@ private static bool SameHashCourse(List? aTableCourse, List variable.GetHashWithoutLastUpdate()).ToList(); + + var bHash = bTableCourse.Select(variable => variable.GetHashWithoutLastUpdate()).ToList(); + + ; + for (var i = 0; i < aHash.Count && i < bHash.Count; i++) + { + if (aHash[i] != bHash[i]) + return false; + } + + return true; } private static bool SameHashMerit(MeritTable? aTableMerit, MeritTable? bTableMerit) diff --git a/PoliNetwork.Graduatorie.Parser/Objects/RankingNS/Ranking.cs b/PoliNetwork.Graduatorie.Parser/Objects/RankingNS/Ranking.cs index 1ead43fe..671ab2c8 100644 --- a/PoliNetwork.Graduatorie.Parser/Objects/RankingNS/Ranking.cs +++ b/PoliNetwork.Graduatorie.Parser/Objects/RankingNS/Ranking.cs @@ -47,21 +47,39 @@ public int GetHashWithoutLastUpdate() i ^= School?.GetHashCode() ?? "School".GetHashCode(); i ^= Url?.GetHashWithoutLastUpdate() ?? "Url".GetHashCode(); i ^= Year?.GetHashCode() ?? "Year".GetHashCode(); - i ^= ByMerit?.GetHashWithoutLastUpdate() ?? "ByMerit".GetHashCode(); + var iMerit = ByMerit?.GetHashWithoutLastUpdate(); + i ^= GetHashFromListHash(iMerit) ?? "ByMerit".GetHashCode(); + if (ByCourse == null) i ^= "ByCourse".GetHashCode(); else - i = ByCourse.Aggregate(i, (current, variable) => current ^ variable.GetHashWithoutLastUpdate()); + i = ByCourse.Aggregate(i, (current, variable) => + { + var hashWithoutLastUpdate = variable.GetHashWithoutLastUpdate(); + var iList = GetHashFromListHash(hashWithoutLastUpdate) ?? "empty".GetHashCode(); + return current ^ iList; + }); return i; } + private static int? GetHashFromListHash(IReadOnlyCollection? iMerit) + { + if (iMerit == null) + return null; + if (iMerit.Count == 0) + return null; + + return iMerit.Aggregate(0, (current, variable) => current ^ variable); + } + public int GetHashWithoutLastUpdateTableMerit() { var i = "RankingTableMerit".GetHashCode(); - i ^= ByMerit?.GetHashWithoutLastUpdate() ?? "ByMerit".GetHashCode(); + var hashWithoutLastUpdate = GetHashFromListHash(ByMerit?.GetHashWithoutLastUpdate()); + i ^= hashWithoutLastUpdate ?? "ByMerit".GetHashCode(); return i; } @@ -74,7 +92,12 @@ public int GetHashWithoutLastUpdateTableCourse() if (ByCourse == null) i ^= "ByCourse".GetHashCode(); else - i = ByCourse.Aggregate(i, (current, variable) => current ^ variable.GetHashWithoutLastUpdate()); + i = ByCourse.Aggregate(i, (current, variable) => + { + var hashWithoutLastUpdate = variable.GetHashWithoutLastUpdate(); + var hashFromListHash = GetHashFromListHash(hashWithoutLastUpdate) ?? "empty2".GetHashCode(); + return current ^ hashFromListHash; + }); return i; } diff --git a/PoliNetwork.Graduatorie.Parser/Objects/Tables/Merit/MeritTable.cs b/PoliNetwork.Graduatorie.Parser/Objects/Tables/Merit/MeritTable.cs index 7cc848fa..b647793a 100644 --- a/PoliNetwork.Graduatorie.Parser/Objects/Tables/Merit/MeritTable.cs +++ b/PoliNetwork.Graduatorie.Parser/Objects/Tables/Merit/MeritTable.cs @@ -16,21 +16,21 @@ public class MeritTable public List? Rows; public int? Year; - public int GetHashWithoutLastUpdate() + public List GetHashWithoutLastUpdate() { - var i = "MeritTable".GetHashCode(); + var r = new List { "MeritTable".GetHashCode() }; if (Headers != null) - i = Headers.Aggregate(i, (current, variable) => current ^ variable.GetHashCode()); + r.Add( Headers.Aggregate("HeadersFull".GetHashCode(), (current, variable) => current ^ variable.GetHashCode())); else - i ^= "Headers".GetHashCode(); + r.Add("HeadersEmpty".GetHashCode()); if (Rows != null) - i = Rows.Aggregate(i, (current, variable) => current ^ variable.GetHashWithoutLastUpdate()); + r.Add(Rows.Aggregate("RowsFull".GetHashCode(), (current, variable) => current ^ variable.GetHashWithoutLastUpdate())); else - i ^= "Rows".GetHashCode(); + r.Add("RowsEmpty".GetHashCode()); - i ^= Year?.GetHashCode() ?? "Year".GetHashCode(); - i ^= Path?.GetHashCode() ?? "Path".GetHashCode(); - return i; + r.Add(Year?.GetHashCode() ?? "Year".GetHashCode()); + r.Add(Path?.GetHashCode() ?? "Path".GetHashCode()); + return r; } } \ No newline at end of file From 3da57c3b7671ff152017ee782e7c724c6eea4ae9 Mon Sep 17 00:00:00 2001 From: user Date: Mon, 14 Aug 2023 14:03:58 +0200 Subject: [PATCH 15/27] Update Ranking.cs, StudentResult.cs, and MeritTable.cs --- .../Objects/RankingNS/Ranking.cs | 2 +- .../Objects/StudentResult.cs | 35 ++++++++++--------- .../Objects/Tables/Merit/MeritTable.cs | 8 ++++- 3 files changed, 26 insertions(+), 19 deletions(-) diff --git a/PoliNetwork.Graduatorie.Parser/Objects/RankingNS/Ranking.cs b/PoliNetwork.Graduatorie.Parser/Objects/RankingNS/Ranking.cs index 671ab2c8..886f3990 100644 --- a/PoliNetwork.Graduatorie.Parser/Objects/RankingNS/Ranking.cs +++ b/PoliNetwork.Graduatorie.Parser/Objects/RankingNS/Ranking.cs @@ -64,7 +64,7 @@ public int GetHashWithoutLastUpdate() return i; } - private static int? GetHashFromListHash(IReadOnlyCollection? iMerit) + public static int? GetHashFromListHash(IReadOnlyCollection? iMerit) { if (iMerit == null) return null; diff --git a/PoliNetwork.Graduatorie.Parser/Objects/StudentResult.cs b/PoliNetwork.Graduatorie.Parser/Objects/StudentResult.cs index af9d224d..1202bd26 100644 --- a/PoliNetwork.Graduatorie.Parser/Objects/StudentResult.cs +++ b/PoliNetwork.Graduatorie.Parser/Objects/StudentResult.cs @@ -22,29 +22,30 @@ public class StudentResult public decimal? Result; public SortedDictionary? SectionsResults; - public int GetHashWithoutLastUpdate() + public List GetHashWithoutLastUpdate() { - var i = "StudentResult".GetHashCode(); - i ^= BirthDate?.GetHashCode() ?? "BirthDate".GetHashCode(); - i ^= EnrollType?.GetHashWithoutLastUpdate() ?? "EnrollType".GetHashCode(); - i ^= EnglishCorrectAnswers?.GetHashCode() ?? "EnglishCorrectAnswers".GetHashCode(); - i ^= Id?.GetHashCode() ?? "Id".GetHashCode(); - i ^= PositionAbsolute?.GetHashCode() ?? "PositionAbsolute".GetHashCode(); - i ^= PositionCourse?.GetHashCode() ?? "PositionCourse".GetHashCode(); - i ^= Result?.GetHashCode() ?? "Result".GetHashCode(); - i ^= EnrollType?.GetHashCode() ?? "EnrollType".GetHashCode(); + List r = new List(); + r.Add("StudentResult".GetHashCode()); + r.Add(BirthDate?.GetHashCode() ?? "BirthDate".GetHashCode()); + r.Add(EnrollType?.GetHashWithoutLastUpdate() ?? "EnrollType".GetHashCode()); + r.Add(EnglishCorrectAnswers?.GetHashCode() ?? "EnglishCorrectAnswers".GetHashCode()); + r.Add(Id?.GetHashCode() ?? "Id".GetHashCode()); + r.Add(PositionAbsolute?.GetHashCode() ?? "PositionAbsolute".GetHashCode()); + r.Add(PositionCourse?.GetHashCode() ?? "PositionCourse".GetHashCode()); + r.Add(Result?.GetHashCode() ?? "Result".GetHashCode()); + r.Add(EnrollType?.GetHashCode() ?? "EnrollType".GetHashCode()); if (Ofa == null) - i ^= "Ofa".GetHashCode(); + r.Add("OfaEmpty".GetHashCode()); else - i = Ofa.Aggregate(i, - (current, variable) => current ^ variable.Key.GetHashCode() ^ variable.Value.GetHashCode()); + r.Add(Ofa.Aggregate("OfaFull".GetHashCode(), + (current, variable) => current ^ variable.Key.GetHashCode() ^ variable.Value.GetHashCode())); if (SectionsResults == null) - i ^= "SectionsResults".GetHashCode(); + r.Add("SectionsResultsEmpty".GetHashCode()); else - i = SectionsResults.Aggregate(i, - (current, variable) => current ^ variable.Key.GetHashCode() ^ variable.Value.GetHashCode()); + r.Add(SectionsResults.Aggregate("SectionsResultsFull".GetHashCode(), + (current, variable) => current ^ variable.Key.GetHashCode() ^ variable.Value.GetHashCode())); - return i; + return r; } } \ No newline at end of file diff --git a/PoliNetwork.Graduatorie.Parser/Objects/Tables/Merit/MeritTable.cs b/PoliNetwork.Graduatorie.Parser/Objects/Tables/Merit/MeritTable.cs index b647793a..419962c4 100644 --- a/PoliNetwork.Graduatorie.Parser/Objects/Tables/Merit/MeritTable.cs +++ b/PoliNetwork.Graduatorie.Parser/Objects/Tables/Merit/MeritTable.cs @@ -2,6 +2,7 @@ using Newtonsoft.Json; using Newtonsoft.Json.Serialization; +using PoliNetwork.Graduatorie.Parser.Objects.RankingNS; #endregion @@ -25,7 +26,12 @@ public List GetHashWithoutLastUpdate() r.Add("HeadersEmpty".GetHashCode()); if (Rows != null) - r.Add(Rows.Aggregate("RowsFull".GetHashCode(), (current, variable) => current ^ variable.GetHashWithoutLastUpdate())); + r.Add(Rows.Aggregate("RowsFull".GetHashCode(), (current, variable) => + { + var hashWithoutLastUpdate = variable.GetHashWithoutLastUpdate(); + var hashFromListHash = Ranking.GetHashFromListHash( hashWithoutLastUpdate) ?? "empty3".GetHashCode(); + return current ^ hashFromListHash; + })); else r.Add("RowsEmpty".GetHashCode()); From e1d19e320a15a458f2bc25abc6a74db1ffa9ae80 Mon Sep 17 00:00:00 2001 From: user Date: Mon, 14 Aug 2023 14:16:28 +0200 Subject: [PATCH 16/27] Update IndexJsonBase.cs and StudentResult.cs --- .../Objects/Json/Indexes/IndexJsonBase.cs | 12 ++++++++++-- .../Objects/StudentResult.cs | 1 - 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/IndexJsonBase.cs b/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/IndexJsonBase.cs index 02e0bec0..a7399137 100644 --- a/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/IndexJsonBase.cs +++ b/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/IndexJsonBase.cs @@ -99,9 +99,17 @@ private static bool SameHashCourse(IReadOnlyCollection? aTableCours return false; ; - var aHash = aTableCourse.Select(variable => variable.GetHashWithoutLastUpdate()).ToList(); + var aHash = aTableCourse.Select(variable => + { + var hashWithoutLastUpdate = variable.GetHashWithoutLastUpdate(); + return hashWithoutLastUpdate; + }).ToList(); - var bHash = bTableCourse.Select(variable => variable.GetHashWithoutLastUpdate()).ToList(); + var bHash = bTableCourse.Select(variable => + { + var hashWithoutLastUpdate = variable.GetHashWithoutLastUpdate(); + return hashWithoutLastUpdate; + }).ToList(); ; for (var i = 0; i < aHash.Count && i < bHash.Count; i++) diff --git a/PoliNetwork.Graduatorie.Parser/Objects/StudentResult.cs b/PoliNetwork.Graduatorie.Parser/Objects/StudentResult.cs index 1202bd26..8fc65a58 100644 --- a/PoliNetwork.Graduatorie.Parser/Objects/StudentResult.cs +++ b/PoliNetwork.Graduatorie.Parser/Objects/StudentResult.cs @@ -33,7 +33,6 @@ public List GetHashWithoutLastUpdate() r.Add(PositionAbsolute?.GetHashCode() ?? "PositionAbsolute".GetHashCode()); r.Add(PositionCourse?.GetHashCode() ?? "PositionCourse".GetHashCode()); r.Add(Result?.GetHashCode() ?? "Result".GetHashCode()); - r.Add(EnrollType?.GetHashCode() ?? "EnrollType".GetHashCode()); if (Ofa == null) r.Add("OfaEmpty".GetHashCode()); else From f05929215bb810032add60bbf032ed1670cd73c4 Mon Sep 17 00:00:00 2001 From: user Date: Mon, 14 Aug 2023 14:21:57 +0200 Subject: [PATCH 17/27] Update IndexJsonBase.cs, Ranking.cs, StudentResult.cs, and 1 more file --- .../Objects/Json/Indexes/IndexJsonBase.cs | 14 +++++--------- .../Objects/RankingNS/Ranking.cs | 4 ++-- .../Objects/StudentResult.cs | 4 ++-- .../Objects/Tables/Merit/MeritTable.cs | 4 ++-- 4 files changed, 11 insertions(+), 15 deletions(-) diff --git a/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/IndexJsonBase.cs b/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/IndexJsonBase.cs index a7399137..1751a0bd 100644 --- a/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/IndexJsonBase.cs +++ b/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/IndexJsonBase.cs @@ -101,24 +101,20 @@ private static bool SameHashCourse(IReadOnlyCollection? aTableCours var aHash = aTableCourse.Select(variable => { - var hashWithoutLastUpdate = variable.GetHashWithoutLastUpdate(); + var hashWithoutLastUpdate = Ranking.GetHashFromListHash(variable.GetHashWithoutLastUpdate()); return hashWithoutLastUpdate; }).ToList(); var bHash = bTableCourse.Select(variable => { - var hashWithoutLastUpdate = variable.GetHashWithoutLastUpdate(); + var hashWithoutLastUpdate = Ranking.GetHashFromListHash(variable.GetHashWithoutLastUpdate()); return hashWithoutLastUpdate; }).ToList(); - ; - for (var i = 0; i < aHash.Count && i < bHash.Count; i++) - { - if (aHash[i] != bHash[i]) - return false; - } + var ai = Ranking.GetHashFromListHash(aHash); + var bi = Ranking.GetHashFromListHash(bHash); - return true; + return (ai ?? 0) == (bi ?? 0); } private static bool SameHashMerit(MeritTable? aTableMerit, MeritTable? bTableMerit) diff --git a/PoliNetwork.Graduatorie.Parser/Objects/RankingNS/Ranking.cs b/PoliNetwork.Graduatorie.Parser/Objects/RankingNS/Ranking.cs index 886f3990..24836ee5 100644 --- a/PoliNetwork.Graduatorie.Parser/Objects/RankingNS/Ranking.cs +++ b/PoliNetwork.Graduatorie.Parser/Objects/RankingNS/Ranking.cs @@ -64,14 +64,14 @@ public int GetHashWithoutLastUpdate() return i; } - public static int? GetHashFromListHash(IReadOnlyCollection? iMerit) + public static int? GetHashFromListHash(IReadOnlyCollection? iMerit) { if (iMerit == null) return null; if (iMerit.Count == 0) return null; - return iMerit.Aggregate(0, (current, variable) => current ^ variable); + return iMerit.Aggregate(0, (current, variable) => current ^ variable ?? 0); } public int GetHashWithoutLastUpdateTableMerit() diff --git a/PoliNetwork.Graduatorie.Parser/Objects/StudentResult.cs b/PoliNetwork.Graduatorie.Parser/Objects/StudentResult.cs index 8fc65a58..cabc80f5 100644 --- a/PoliNetwork.Graduatorie.Parser/Objects/StudentResult.cs +++ b/PoliNetwork.Graduatorie.Parser/Objects/StudentResult.cs @@ -22,9 +22,9 @@ public class StudentResult public decimal? Result; public SortedDictionary? SectionsResults; - public List GetHashWithoutLastUpdate() + public List GetHashWithoutLastUpdate() { - List r = new List(); + List r = new List(); r.Add("StudentResult".GetHashCode()); r.Add(BirthDate?.GetHashCode() ?? "BirthDate".GetHashCode()); r.Add(EnrollType?.GetHashWithoutLastUpdate() ?? "EnrollType".GetHashCode()); diff --git a/PoliNetwork.Graduatorie.Parser/Objects/Tables/Merit/MeritTable.cs b/PoliNetwork.Graduatorie.Parser/Objects/Tables/Merit/MeritTable.cs index 419962c4..e96693b0 100644 --- a/PoliNetwork.Graduatorie.Parser/Objects/Tables/Merit/MeritTable.cs +++ b/PoliNetwork.Graduatorie.Parser/Objects/Tables/Merit/MeritTable.cs @@ -17,9 +17,9 @@ public class MeritTable public List? Rows; public int? Year; - public List GetHashWithoutLastUpdate() + public List GetHashWithoutLastUpdate() { - var r = new List { "MeritTable".GetHashCode() }; + var r = new List { "MeritTable".GetHashCode() }; if (Headers != null) r.Add( Headers.Aggregate("HeadersFull".GetHashCode(), (current, variable) => current ^ variable.GetHashCode())); else From 689a5cb6fa03dbc741b83c51c26935f2ba291453 Mon Sep 17 00:00:00 2001 From: user Date: Mon, 14 Aug 2023 14:23:52 +0200 Subject: [PATCH 18/27] Update IndexJsonBase.cs --- .../Objects/Json/Indexes/IndexJsonBase.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/IndexJsonBase.cs b/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/IndexJsonBase.cs index 1751a0bd..b06fae1a 100644 --- a/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/IndexJsonBase.cs +++ b/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/IndexJsonBase.cs @@ -125,7 +125,11 @@ private static bool SameHashMerit(MeritTable? aTableMerit, MeritTable? bTableMer return false; ; - return false; + var ai = aTableMerit.GetHashWithoutLastUpdate(); + var bi = bTableMerit.GetHashWithoutLastUpdate(); + var aii = Ranking.GetHashFromListHash(ai) ?? 0; + var bii = Ranking.GetHashFromListHash(bi) ?? 0; + return aii == bii; } private static Ranking? GetRankingFromFile(string path) From 37704fe8091b0648b74b1a61836f6cf8ae3d78bd Mon Sep 17 00:00:00 2001 From: user Date: Mon, 14 Aug 2023 14:27:37 +0200 Subject: [PATCH 19/27] Update IndexJsonBase.cs, Ranking.cs, MeritTable.cs, and 1 more file --- .../Objects/Json/Indexes/IndexJsonBase.cs | 13 +++++++------ .../Objects/RankingNS/Ranking.cs | 18 +++++------------- .../Objects/Tables/Merit/MeritTable.cs | 3 ++- .../Utils/Hashing.cs | 15 +++++++++++++++ 4 files changed, 29 insertions(+), 20 deletions(-) create mode 100644 PoliNetwork.Graduatorie.Parser/Utils/Hashing.cs diff --git a/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/IndexJsonBase.cs b/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/IndexJsonBase.cs index b06fae1a..f15f81ce 100644 --- a/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/IndexJsonBase.cs +++ b/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/IndexJsonBase.cs @@ -8,6 +8,7 @@ using PoliNetwork.Graduatorie.Parser.Objects.RankingNS; using PoliNetwork.Graduatorie.Parser.Objects.Tables.Course; using PoliNetwork.Graduatorie.Parser.Objects.Tables.Merit; +using PoliNetwork.Graduatorie.Parser.Utils; #endregion @@ -101,18 +102,18 @@ private static bool SameHashCourse(IReadOnlyCollection? aTableCours var aHash = aTableCourse.Select(variable => { - var hashWithoutLastUpdate = Ranking.GetHashFromListHash(variable.GetHashWithoutLastUpdate()); + var hashWithoutLastUpdate = Hashing.GetHashFromListHash(variable.GetHashWithoutLastUpdate()); return hashWithoutLastUpdate; }).ToList(); var bHash = bTableCourse.Select(variable => { - var hashWithoutLastUpdate = Ranking.GetHashFromListHash(variable.GetHashWithoutLastUpdate()); + var hashWithoutLastUpdate = Hashing.GetHashFromListHash(variable.GetHashWithoutLastUpdate()); return hashWithoutLastUpdate; }).ToList(); - var ai = Ranking.GetHashFromListHash(aHash); - var bi = Ranking.GetHashFromListHash(bHash); + var ai = Hashing.GetHashFromListHash(aHash); + var bi = Hashing.GetHashFromListHash(bHash); return (ai ?? 0) == (bi ?? 0); } @@ -127,8 +128,8 @@ private static bool SameHashMerit(MeritTable? aTableMerit, MeritTable? bTableMer ; var ai = aTableMerit.GetHashWithoutLastUpdate(); var bi = bTableMerit.GetHashWithoutLastUpdate(); - var aii = Ranking.GetHashFromListHash(ai) ?? 0; - var bii = Ranking.GetHashFromListHash(bi) ?? 0; + var aii = Hashing.GetHashFromListHash(ai) ?? 0; + var bii = Hashing.GetHashFromListHash(bi) ?? 0; return aii == bii; } diff --git a/PoliNetwork.Graduatorie.Parser/Objects/RankingNS/Ranking.cs b/PoliNetwork.Graduatorie.Parser/Objects/RankingNS/Ranking.cs index 24836ee5..cfaed776 100644 --- a/PoliNetwork.Graduatorie.Parser/Objects/RankingNS/Ranking.cs +++ b/PoliNetwork.Graduatorie.Parser/Objects/RankingNS/Ranking.cs @@ -9,6 +9,7 @@ using PoliNetwork.Graduatorie.Parser.Objects.Json.Stats; using PoliNetwork.Graduatorie.Parser.Objects.Tables.Course; using PoliNetwork.Graduatorie.Parser.Objects.Tables.Merit; +using PoliNetwork.Graduatorie.Parser.Utils; using PoliNetwork.Graduatorie.Parser.Utils.Output; #endregion @@ -48,7 +49,7 @@ public int GetHashWithoutLastUpdate() i ^= Url?.GetHashWithoutLastUpdate() ?? "Url".GetHashCode(); i ^= Year?.GetHashCode() ?? "Year".GetHashCode(); var iMerit = ByMerit?.GetHashWithoutLastUpdate(); - i ^= GetHashFromListHash(iMerit) ?? "ByMerit".GetHashCode(); + i ^= Hashing.GetHashFromListHash(iMerit) ?? "ByMerit".GetHashCode(); if (ByCourse == null) @@ -57,28 +58,19 @@ public int GetHashWithoutLastUpdate() i = ByCourse.Aggregate(i, (current, variable) => { var hashWithoutLastUpdate = variable.GetHashWithoutLastUpdate(); - var iList = GetHashFromListHash(hashWithoutLastUpdate) ?? "empty".GetHashCode(); + var iList = Hashing.GetHashFromListHash(hashWithoutLastUpdate) ?? "empty".GetHashCode(); return current ^ iList; }); return i; } - public static int? GetHashFromListHash(IReadOnlyCollection? iMerit) - { - if (iMerit == null) - return null; - if (iMerit.Count == 0) - return null; - - return iMerit.Aggregate(0, (current, variable) => current ^ variable ?? 0); - } public int GetHashWithoutLastUpdateTableMerit() { var i = "RankingTableMerit".GetHashCode(); - var hashWithoutLastUpdate = GetHashFromListHash(ByMerit?.GetHashWithoutLastUpdate()); + var hashWithoutLastUpdate = Hashing.GetHashFromListHash(ByMerit?.GetHashWithoutLastUpdate()); i ^= hashWithoutLastUpdate ?? "ByMerit".GetHashCode(); return i; @@ -95,7 +87,7 @@ public int GetHashWithoutLastUpdateTableCourse() i = ByCourse.Aggregate(i, (current, variable) => { var hashWithoutLastUpdate = variable.GetHashWithoutLastUpdate(); - var hashFromListHash = GetHashFromListHash(hashWithoutLastUpdate) ?? "empty2".GetHashCode(); + var hashFromListHash = Hashing.GetHashFromListHash(hashWithoutLastUpdate) ?? "empty2".GetHashCode(); return current ^ hashFromListHash; }); diff --git a/PoliNetwork.Graduatorie.Parser/Objects/Tables/Merit/MeritTable.cs b/PoliNetwork.Graduatorie.Parser/Objects/Tables/Merit/MeritTable.cs index e96693b0..9a8818f4 100644 --- a/PoliNetwork.Graduatorie.Parser/Objects/Tables/Merit/MeritTable.cs +++ b/PoliNetwork.Graduatorie.Parser/Objects/Tables/Merit/MeritTable.cs @@ -3,6 +3,7 @@ using Newtonsoft.Json; using Newtonsoft.Json.Serialization; using PoliNetwork.Graduatorie.Parser.Objects.RankingNS; +using PoliNetwork.Graduatorie.Parser.Utils; #endregion @@ -29,7 +30,7 @@ public class MeritTable r.Add(Rows.Aggregate("RowsFull".GetHashCode(), (current, variable) => { var hashWithoutLastUpdate = variable.GetHashWithoutLastUpdate(); - var hashFromListHash = Ranking.GetHashFromListHash( hashWithoutLastUpdate) ?? "empty3".GetHashCode(); + var hashFromListHash = Hashing.GetHashFromListHash( hashWithoutLastUpdate) ?? "empty3".GetHashCode(); return current ^ hashFromListHash; })); else diff --git a/PoliNetwork.Graduatorie.Parser/Utils/Hashing.cs b/PoliNetwork.Graduatorie.Parser/Utils/Hashing.cs new file mode 100644 index 00000000..33cd5e27 --- /dev/null +++ b/PoliNetwork.Graduatorie.Parser/Utils/Hashing.cs @@ -0,0 +1,15 @@ +namespace PoliNetwork.Graduatorie.Parser.Utils; + +public class Hashing +{ + + public static int? GetHashFromListHash(IReadOnlyCollection? iMerit) + { + if (iMerit == null) + return null; + if (iMerit.Count == 0) + return null; + + return iMerit.Aggregate(0, (current, variable) => current ^ variable ?? 0); + } +} \ No newline at end of file From 042604a6e55f6da9f9d55ec06ed26ae505b912e6 Mon Sep 17 00:00:00 2001 From: user Date: Mon, 14 Aug 2023 14:29:02 +0200 Subject: [PATCH 20/27] Update IndexJsonBase.cs and Ranking.cs --- .../Objects/Json/Indexes/IndexJsonBase.cs | 14 ++----- .../Objects/RankingNS/Ranking.cs | 39 ------------------- 2 files changed, 3 insertions(+), 50 deletions(-) diff --git a/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/IndexJsonBase.cs b/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/IndexJsonBase.cs index f15f81ce..8febe92e 100644 --- a/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/IndexJsonBase.cs +++ b/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/IndexJsonBase.cs @@ -74,17 +74,9 @@ private static bool ExitIfAlreadyExistsAndNotUpdated(Ranking a, string path) private static bool SameHash(Ranking a, Ranking b) { - var aInfo = a.GetHashWithoutLastUpdateInfo(); - var bInfo = b.GetHashWithoutLastUpdateInfo(); - var aTableCourse = a.GetTableCourse(); - var bTableCourse = b.GetTableCourse(); - var aTableMerit = a.GetMerit(); - var bTableMerit = b.GetMerit(); - - var sameHashInfo = aInfo == bInfo; - var sameHashTableCourse = SameHashCourse(aTableCourse, bTableCourse); - var sameHashTableMerit = SameHashMerit(aTableMerit, bTableMerit); - return sameHashInfo && sameHashTableCourse && sameHashTableMerit; + var ai = a.GetHashWithoutLastUpdate(); + var bi = b.GetHashWithoutLastUpdate(); + return ai == bi; } private static bool SameHashCourse(IReadOnlyCollection? aTableCourse, IReadOnlyCollection? bTableCourse) diff --git a/PoliNetwork.Graduatorie.Parser/Objects/RankingNS/Ranking.cs b/PoliNetwork.Graduatorie.Parser/Objects/RankingNS/Ranking.cs index cfaed776..562865bf 100644 --- a/PoliNetwork.Graduatorie.Parser/Objects/RankingNS/Ranking.cs +++ b/PoliNetwork.Graduatorie.Parser/Objects/RankingNS/Ranking.cs @@ -66,45 +66,6 @@ public int GetHashWithoutLastUpdate() } - public int GetHashWithoutLastUpdateTableMerit() - { - var i = "RankingTableMerit".GetHashCode(); - - var hashWithoutLastUpdate = Hashing.GetHashFromListHash(ByMerit?.GetHashWithoutLastUpdate()); - i ^= hashWithoutLastUpdate ?? "ByMerit".GetHashCode(); - - return i; - } - - - public int GetHashWithoutLastUpdateTableCourse() - { - var i = "RankingTableCourse".GetHashCode(); - - if (ByCourse == null) - i ^= "ByCourse".GetHashCode(); - else - i = ByCourse.Aggregate(i, (current, variable) => - { - var hashWithoutLastUpdate = variable.GetHashWithoutLastUpdate(); - var hashFromListHash = Hashing.GetHashFromListHash(hashWithoutLastUpdate) ?? "empty2".GetHashCode(); - return current ^ hashFromListHash; - }); - - return i; - } - - public int GetHashWithoutLastUpdateInfo() - { - var i = "RankingInfo".GetHashCode(); - i ^= Extra?.GetHashCode() ?? "Extra".GetHashCode(); - i ^= RankingOrder?.GetHashWithoutLastUpdate() ?? "RankingOrder".GetHashCode(); - i ^= RankingSummary?.GetHashWithoutLastUpdate() ?? "RankingSummary".GetHashCode(); - i ^= School?.GetHashCode() ?? "School".GetHashCode(); - i ^= Url?.GetHashWithoutLastUpdate() ?? "Url".GetHashCode(); - i ^= Year?.GetHashCode() ?? "Year".GetHashCode(); - return i; - } public bool IsSimilarTo(Ranking ranking) From 3cd0cd5fe75c9bbcecf33d062147114ff1089ed4 Mon Sep 17 00:00:00 2001 From: user Date: Mon, 14 Aug 2023 14:29:17 +0200 Subject: [PATCH 21/27] Update IndexJsonBase.cs, Ranking.cs, StudentResult.cs, and 3 more files --- .../Objects/Json/Indexes/IndexJsonBase.cs | 5 +++-- .../Objects/RankingNS/Ranking.cs | 8 +++----- .../Objects/StudentResult.cs | 2 +- .../Objects/Tables/Merit/MeritTable.cs | 6 +++--- PoliNetwork.Graduatorie.Parser/Utils/Hashing.cs | 1 - .../Utils/Web/ScraperOutput.cs | 16 ++++++++++------ 6 files changed, 20 insertions(+), 18 deletions(-) diff --git a/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/IndexJsonBase.cs b/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/IndexJsonBase.cs index 8febe92e..c6179798 100644 --- a/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/IndexJsonBase.cs +++ b/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/IndexJsonBase.cs @@ -79,7 +79,8 @@ private static bool SameHash(Ranking a, Ranking b) return ai == bi; } - private static bool SameHashCourse(IReadOnlyCollection? aTableCourse, IReadOnlyCollection? bTableCourse) + private static bool SameHashCourse(IReadOnlyCollection? aTableCourse, + IReadOnlyCollection? bTableCourse) { if (aTableCourse == null && bTableCourse == null) return true; @@ -106,7 +107,7 @@ private static bool SameHashCourse(IReadOnlyCollection? aTableCours var ai = Hashing.GetHashFromListHash(aHash); var bi = Hashing.GetHashFromListHash(bHash); - + return (ai ?? 0) == (bi ?? 0); } diff --git a/PoliNetwork.Graduatorie.Parser/Objects/RankingNS/Ranking.cs b/PoliNetwork.Graduatorie.Parser/Objects/RankingNS/Ranking.cs index 562865bf..e0778d8d 100644 --- a/PoliNetwork.Graduatorie.Parser/Objects/RankingNS/Ranking.cs +++ b/PoliNetwork.Graduatorie.Parser/Objects/RankingNS/Ranking.cs @@ -50,7 +50,7 @@ public int GetHashWithoutLastUpdate() i ^= Year?.GetHashCode() ?? "Year".GetHashCode(); var iMerit = ByMerit?.GetHashWithoutLastUpdate(); i ^= Hashing.GetHashFromListHash(iMerit) ?? "ByMerit".GetHashCode(); - + if (ByCourse == null) i ^= "ByCourse".GetHashCode(); @@ -66,8 +66,6 @@ public int GetHashWithoutLastUpdate() } - - public bool IsSimilarTo(Ranking ranking) { return Year == ranking.Year && @@ -141,11 +139,11 @@ public string GetPath() public MeritTable? GetMerit() { - return this.ByMerit; + return ByMerit; } public List? GetTableCourse() { - return this.ByCourse; + return ByCourse; } } \ No newline at end of file diff --git a/PoliNetwork.Graduatorie.Parser/Objects/StudentResult.cs b/PoliNetwork.Graduatorie.Parser/Objects/StudentResult.cs index cabc80f5..594c52c0 100644 --- a/PoliNetwork.Graduatorie.Parser/Objects/StudentResult.cs +++ b/PoliNetwork.Graduatorie.Parser/Objects/StudentResult.cs @@ -24,7 +24,7 @@ public class StudentResult public List GetHashWithoutLastUpdate() { - List r = new List(); + var r = new List(); r.Add("StudentResult".GetHashCode()); r.Add(BirthDate?.GetHashCode() ?? "BirthDate".GetHashCode()); r.Add(EnrollType?.GetHashWithoutLastUpdate() ?? "EnrollType".GetHashCode()); diff --git a/PoliNetwork.Graduatorie.Parser/Objects/Tables/Merit/MeritTable.cs b/PoliNetwork.Graduatorie.Parser/Objects/Tables/Merit/MeritTable.cs index 9a8818f4..a796b4c5 100644 --- a/PoliNetwork.Graduatorie.Parser/Objects/Tables/Merit/MeritTable.cs +++ b/PoliNetwork.Graduatorie.Parser/Objects/Tables/Merit/MeritTable.cs @@ -2,7 +2,6 @@ using Newtonsoft.Json; using Newtonsoft.Json.Serialization; -using PoliNetwork.Graduatorie.Parser.Objects.RankingNS; using PoliNetwork.Graduatorie.Parser.Utils; #endregion @@ -22,7 +21,8 @@ public class MeritTable { var r = new List { "MeritTable".GetHashCode() }; if (Headers != null) - r.Add( Headers.Aggregate("HeadersFull".GetHashCode(), (current, variable) => current ^ variable.GetHashCode())); + r.Add(Headers.Aggregate("HeadersFull".GetHashCode(), + (current, variable) => current ^ variable.GetHashCode())); else r.Add("HeadersEmpty".GetHashCode()); @@ -30,7 +30,7 @@ public class MeritTable r.Add(Rows.Aggregate("RowsFull".GetHashCode(), (current, variable) => { var hashWithoutLastUpdate = variable.GetHashWithoutLastUpdate(); - var hashFromListHash = Hashing.GetHashFromListHash( hashWithoutLastUpdate) ?? "empty3".GetHashCode(); + var hashFromListHash = Hashing.GetHashFromListHash(hashWithoutLastUpdate) ?? "empty3".GetHashCode(); return current ^ hashFromListHash; })); else diff --git a/PoliNetwork.Graduatorie.Parser/Utils/Hashing.cs b/PoliNetwork.Graduatorie.Parser/Utils/Hashing.cs index 33cd5e27..5940ac04 100644 --- a/PoliNetwork.Graduatorie.Parser/Utils/Hashing.cs +++ b/PoliNetwork.Graduatorie.Parser/Utils/Hashing.cs @@ -2,7 +2,6 @@ namespace PoliNetwork.Graduatorie.Parser.Utils; public class Hashing { - public static int? GetHashFromListHash(IReadOnlyCollection? iMerit) { if (iMerit == null) diff --git a/PoliNetwork.Graduatorie.Scraper/Utils/Web/ScraperOutput.cs b/PoliNetwork.Graduatorie.Scraper/Utils/Web/ScraperOutput.cs index 80c49038..5ed755a9 100644 --- a/PoliNetwork.Graduatorie.Scraper/Utils/Web/ScraperOutput.cs +++ b/PoliNetwork.Graduatorie.Scraper/Utils/Web/ScraperOutput.cs @@ -45,10 +45,7 @@ private static List GetSaved(string? dataFolder) try { - foreach (var variable in lines) - { - RankingFromAdd(variable, list); - } + foreach (var variable in lines) RankingFromAdd(variable, list); } catch { @@ -112,6 +109,13 @@ private static string GetOutputLinksString(IEnumerable rankingsUrls) return enumerable.Aggregate("", (current, linkUrl) => current + linkUrl); } - private static bool PredicateStringUrlNotNullNorEmpty(RankingUrl x) => !string.IsNullOrEmpty(x.Url); - private static string SelectorUrlWithEndLine(string url) => url + "\n"; + private static bool PredicateStringUrlNotNullNorEmpty(RankingUrl x) + { + return !string.IsNullOrEmpty(x.Url); + } + + private static string SelectorUrlWithEndLine(string url) + { + return url + "\n"; + } } \ No newline at end of file From 7224f0479d7cc97d70e398b83530917a80a32f07 Mon Sep 17 00:00:00 2001 From: user Date: Mon, 14 Aug 2023 14:29:48 +0200 Subject: [PATCH 22/27] Update StudentResult.cs and ScraperOutput.cs --- .../Objects/StudentResult.cs | 20 ++++++++++--------- .../Utils/Web/ScraperOutput.cs | 2 +- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/PoliNetwork.Graduatorie.Parser/Objects/StudentResult.cs b/PoliNetwork.Graduatorie.Parser/Objects/StudentResult.cs index 594c52c0..267e800d 100644 --- a/PoliNetwork.Graduatorie.Parser/Objects/StudentResult.cs +++ b/PoliNetwork.Graduatorie.Parser/Objects/StudentResult.cs @@ -24,15 +24,17 @@ public class StudentResult public List GetHashWithoutLastUpdate() { - var r = new List(); - r.Add("StudentResult".GetHashCode()); - r.Add(BirthDate?.GetHashCode() ?? "BirthDate".GetHashCode()); - r.Add(EnrollType?.GetHashWithoutLastUpdate() ?? "EnrollType".GetHashCode()); - r.Add(EnglishCorrectAnswers?.GetHashCode() ?? "EnglishCorrectAnswers".GetHashCode()); - r.Add(Id?.GetHashCode() ?? "Id".GetHashCode()); - r.Add(PositionAbsolute?.GetHashCode() ?? "PositionAbsolute".GetHashCode()); - r.Add(PositionCourse?.GetHashCode() ?? "PositionCourse".GetHashCode()); - r.Add(Result?.GetHashCode() ?? "Result".GetHashCode()); + var r = new List + { + "StudentResult".GetHashCode(), + BirthDate?.GetHashCode() ?? "BirthDate".GetHashCode(), + EnrollType?.GetHashWithoutLastUpdate() ?? "EnrollType".GetHashCode(), + EnglishCorrectAnswers?.GetHashCode() ?? "EnglishCorrectAnswers".GetHashCode(), + Id?.GetHashCode() ?? "Id".GetHashCode(), + PositionAbsolute?.GetHashCode() ?? "PositionAbsolute".GetHashCode(), + PositionCourse?.GetHashCode() ?? "PositionCourse".GetHashCode(), + Result?.GetHashCode() ?? "Result".GetHashCode() + }; if (Ofa == null) r.Add("OfaEmpty".GetHashCode()); else diff --git a/PoliNetwork.Graduatorie.Scraper/Utils/Web/ScraperOutput.cs b/PoliNetwork.Graduatorie.Scraper/Utils/Web/ScraperOutput.cs index 5ed755a9..4c32c1a3 100644 --- a/PoliNetwork.Graduatorie.Scraper/Utils/Web/ScraperOutput.cs +++ b/PoliNetwork.Graduatorie.Scraper/Utils/Web/ScraperOutput.cs @@ -56,7 +56,7 @@ private static List GetSaved(string? dataFolder) return list; } - private static void RankingFromAdd(string variable, List list) + private static void RankingFromAdd(string variable, ICollection list) { try { From da2ca732061a0d96c9d674f6166208041c839e57 Mon Sep 17 00:00:00 2001 From: user Date: Tue, 15 Aug 2023 00:25:55 +0200 Subject: [PATCH 23/27] Update Lib_CSharp --- Lib_CSharp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Lib_CSharp b/Lib_CSharp index f512d8ba..9edfc6be 160000 --- a/Lib_CSharp +++ b/Lib_CSharp @@ -1 +1 @@ -Subproject commit f512d8ba2d933b9491dc55f39299413675a6cf53 +Subproject commit 9edfc6be872db708abd986d9504800da41b2a9bb From 43e009f10ca07d8ed4f946f14e0e5b00d048ea96 Mon Sep 17 00:00:00 2001 From: user Date: Tue, 15 Aug 2023 00:25:56 +0200 Subject: [PATCH 24/27] Update Ranking.cs --- .../Objects/RankingNS/Ranking.cs | 8 -------- 1 file changed, 8 deletions(-) diff --git a/PoliNetwork.Graduatorie.Parser/Objects/RankingNS/Ranking.cs b/PoliNetwork.Graduatorie.Parser/Objects/RankingNS/Ranking.cs index e0778d8d..0df229ac 100644 --- a/PoliNetwork.Graduatorie.Parser/Objects/RankingNS/Ranking.cs +++ b/PoliNetwork.Graduatorie.Parser/Objects/RankingNS/Ranking.cs @@ -137,13 +137,5 @@ public string GetPath() return School + "/" + Year + "/" + RankingOrder?.Phase; } - public MeritTable? GetMerit() - { - return ByMerit; - } - public List? GetTableCourse() - { - return ByCourse; - } } \ No newline at end of file From e52b5953e29763efb878c6b79f6eaa099e8ba2c7 Mon Sep 17 00:00:00 2001 From: user Date: Tue, 15 Aug 2023 00:26:56 +0200 Subject: [PATCH 25/27] Update Ranking.cs --- PoliNetwork.Graduatorie.Parser/Objects/RankingNS/Ranking.cs | 2 -- 1 file changed, 2 deletions(-) diff --git a/PoliNetwork.Graduatorie.Parser/Objects/RankingNS/Ranking.cs b/PoliNetwork.Graduatorie.Parser/Objects/RankingNS/Ranking.cs index 0df229ac..8c75d189 100644 --- a/PoliNetwork.Graduatorie.Parser/Objects/RankingNS/Ranking.cs +++ b/PoliNetwork.Graduatorie.Parser/Objects/RankingNS/Ranking.cs @@ -136,6 +136,4 @@ public string GetPath() { return School + "/" + Year + "/" + RankingOrder?.Phase; } - - } \ No newline at end of file From 4f6ae737271b7ca449a510c51c9615dc38a4946b Mon Sep 17 00:00:00 2001 From: user Date: Tue, 15 Aug 2023 00:36:54 +0200 Subject: [PATCH 26/27] Update IndexJsonBase.cs --- .../Objects/Json/Indexes/IndexJsonBase.cs | 4 ---- 1 file changed, 4 deletions(-) diff --git a/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/IndexJsonBase.cs b/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/IndexJsonBase.cs index c6179798..d01be1da 100644 --- a/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/IndexJsonBase.cs +++ b/PoliNetwork.Graduatorie.Parser/Objects/Json/Indexes/IndexJsonBase.cs @@ -87,11 +87,8 @@ private static bool SameHashCourse(IReadOnlyCollection? aTableCours if (aTableCourse == null || bTableCourse == null) return false; - ; - if (aTableCourse.Count != bTableCourse.Count) return false; - ; var aHash = aTableCourse.Select(variable => { @@ -118,7 +115,6 @@ private static bool SameHashMerit(MeritTable? aTableMerit, MeritTable? bTableMer if (aTableMerit == null || bTableMerit == null) return false; - ; var ai = aTableMerit.GetHashWithoutLastUpdate(); var bi = bTableMerit.GetHashWithoutLastUpdate(); var aii = Hashing.GetHashFromListHash(ai) ?? 0; From 448d73754562d3cab7b31b05fbe5cc63aad89a5b Mon Sep 17 00:00:00 2001 From: user Date: Tue, 15 Aug 2023 00:37:32 +0200 Subject: [PATCH 27/27] Update Ranking.cs --- .../Objects/RankingNS/Ranking.cs | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/PoliNetwork.Graduatorie.Parser/Objects/RankingNS/Ranking.cs b/PoliNetwork.Graduatorie.Parser/Objects/RankingNS/Ranking.cs index e0778d8d..8c75d189 100644 --- a/PoliNetwork.Graduatorie.Parser/Objects/RankingNS/Ranking.cs +++ b/PoliNetwork.Graduatorie.Parser/Objects/RankingNS/Ranking.cs @@ -136,14 +136,4 @@ public string GetPath() { return School + "/" + Year + "/" + RankingOrder?.Phase; } - - public MeritTable? GetMerit() - { - return ByMerit; - } - - public List? GetTableCourse() - { - return ByCourse; - } } \ No newline at end of file