Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ public bool IsSameRanking(RankingUrl urlB)
return AreSameRanking(this, urlB);
}

public bool AreSameRanking(RankingUrl urlA, RankingUrl urlB)
public static bool AreSameRanking(RankingUrl urlA, RankingUrl urlB)
{
var a = urlA.Url;
var b = urlB.Url;
Expand Down
15 changes: 10 additions & 5 deletions PoliNetwork.Graduatorie.Common/Utils/EnrollUtil.cs
Original file line number Diff line number Diff line change
Expand Up @@ -16,15 +16,20 @@ public static EnrollType GetEnrollType(string? rowCanEnrollInto, bool rowCanEnro
if (string.IsNullOrEmpty(rowCanEnrollInto))
return new EnrollType { CanEnroll = true, Course = null, Type = null };

string[] tester = {"assegnato", "prenotato"};
string[] tester = { "assegnato", "prenotato" };
const string sep = " - ";
if (!rowCanEnrollInto.Contains(sep) || !tester.Any(t => rowCanEnrollInto.ToLower().Contains(t)))
return new EnrollType { CanEnroll = true, Course = rowCanEnrollInto, Type = null };

var s = rowCanEnrollInto.Split(sep).ToList();
var type = s.FirstOrDefault(x => tester.Any(t => t == x.ToLower()));
s.Remove(type);
var course = String.Join(sep, s);
return new EnrollType { CanEnroll = true, Course = course, Type = type };
if (type != null)
{
s.Remove(type);
}

var course = string.Join(sep, s);
return new EnrollType { CanEnroll = true, Course = course, Type = type };

}
}
}
5 changes: 1 addition & 4 deletions PoliNetwork.Graduatorie.Common/Utils/HashNS/HashMatricola.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,7 @@ public static partial class HashMatricola
if (input.Contains(' ')) input = input.Split(" ").First(x => !string.IsNullOrEmpty(x));

var s = input.Trim().ToUpper();
if (string.IsNullOrEmpty(s))
return null;

return NotAlphaNumericRegex().Replace(s, "");
return string.IsNullOrEmpty(s) ? null : NotAlphaNumericRegex().Replace(s, "");
}

public static string? HashMatricolaMethod(string? input)
Expand Down
2 changes: 1 addition & 1 deletion PoliNetwork.Graduatorie.Common/Utils/Path/PathUtils.cs
Original file line number Diff line number Diff line change
Expand Up @@ -37,4 +37,4 @@ public static string CreateAndReturnDataFolder(string folderName)
Directory.CreateDirectory(dataFolderPath);
return dataFolderPath;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ private static SortedDictionary<
}

private static void GetYearsDictSingle(IGrouping<int?, Ranking> yearGroup,
SortedDictionary<int, SortedDictionary<string, SortedDictionary<string, List<SingleCourseJson>>>> d)
IDictionary<int, SortedDictionary<string, SortedDictionary<string, List<SingleCourseJson>>>> d)
{
if (yearGroup.Key != null) d.Add(yearGroup.Key.Value, GetCoursesDict(yearGroup));
}
Expand All @@ -87,7 +87,7 @@ IEnumerable<Ranking> yearGroup
}

private static void AddCourseToDict(
SortedDictionary<string, SortedDictionary<string, List<SingleCourseJson>>> d,
IDictionary<string, SortedDictionary<string, List<SingleCourseJson>>> d,
Ranking ranking,
IGrouping<string?, CourseTable> courseGroup
)
Expand Down Expand Up @@ -116,16 +116,17 @@ private static void AddCourseToDict(
var locationDict = courseDict[fixedLocation];
var singleCourseJson = CreateCourseJson(ranking, course);

bool IsThisCourse(SingleCourseJson x)
{
return x.Link == singleCourseJson.Link && x.Location == singleCourseJson.Location;
}

if (locationDict.Any(IsThisCourse))
continue;

locationDict.Add(singleCourseJson);
locationDict.Sort(Comparison);
continue;

bool IsThisCourse(SingleCourseJson x)
{
return x.Link == singleCourseJson.Link && x.Location == singleCourseJson.Location;
}
}
}

Expand All @@ -152,14 +153,14 @@ private static bool IsSimilar(IEnumerable<Ranking> yearGroup, SingleCourseJson s
{
var enumerable = yearGroup.Where(v1 => v1.ByCourse != null);

return enumerable.Any(Predicate);

bool Predicate(Ranking v1)
{
return singleCourseJson.School == v1.School
&& singleCourseJson.Year == v1.Year
&& v1.RankingOrder?.Phase == singleCourseJson.Name;
}

return enumerable.Any(Predicate);
}

public static RankingsSet? Parse(string dataFolder)
Expand Down Expand Up @@ -207,13 +208,14 @@ ICollection<Ranking> rankings
var actions = new List<Action>();
foreach (var filename in year.Value)
{
var collection = filename.Value.Select(Selector);
actions.AddRange(collection);
continue;

Action Selector(KeyValuePair<string, List<SingleCourseJson>> variable)
{
return () => { RankingAdd(school, year, outFolder, variable, rankings); };
}

var collection = filename.Value.Select(Selector);
actions.AddRange(collection);
}

ParallelRun.Run(actions.ToArray());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ public class BySchoolYearJson : IndexJsonBase

private static void AddSchool(
IGrouping<int?, Ranking> yearGroup,
SortedDictionary<int, IEnumerable<SingleCourseJson>> schoolDict
IDictionary<int, IEnumerable<SingleCourseJson>> schoolDict
)
{
var yearGroupKey = yearGroup.Key;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,10 @@ public int GetHashWithoutLastUpdate()

public void Merge(RankingOrder? rankingRankingOrder)
{
throw new NotImplementedException();
Anticipata ??= rankingRankingOrder?.Anticipata;
Phase ??= rankingRankingOrder?.Phase;
Primary ??= rankingRankingOrder?.Primary;
Secondary ??= rankingRankingOrder?.Secondary;
ExtraEu ??= rankingRankingOrder?.ExtraEu;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -28,19 +28,17 @@ private static SortedDictionary<string, StudentHashSummary> GetDictToWrite(Ranki
{
var byMeritRows = ranking.ByMerit?.Rows;
if (byMeritRows != null)
foreach (var student in byMeritRows)
if (!string.IsNullOrEmpty(student.Id))
AddToDict(dictionary, ranking, student, null);
foreach (var student in byMeritRows.Where(student => !string.IsNullOrEmpty(student.Id)))
AddToDict(dictionary, ranking, student, null);

var rankingByCourse = ranking.ByCourse;
if (rankingByCourse == null) continue;
foreach (var courseTable in rankingByCourse)
{
var row = courseTable.Rows;
if (row == null) continue;
foreach (var studentResult in row)
if (!string.IsNullOrEmpty(studentResult.Id))
AddToDict(dictionary, ranking, studentResult, courseTable);
foreach (var studentResult in row.Where(studentResult => !string.IsNullOrEmpty(studentResult.Id)))
AddToDict(dictionary, ranking, studentResult, courseTable);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ private RankingsSet ParseSavedRankings(ICollection<HtmlPage> htmls)
return savedSet;
}

private RankingsSet ParseNewRankings(List<HtmlPage> htmls)
private RankingsSet ParseNewRankings(IReadOnlyCollection<HtmlPage> htmls)
{
// pseudo
// new ranking set
Expand Down Expand Up @@ -131,9 +131,7 @@ private RankingsSet ParseNewRankings(List<HtmlPage> htmls)
.Select(url =>
{
var found = meritTablePages.Find(h => h.Url.Url == url.Url);
if (found != null)
return found;
return HtmlPage.FromUrl(url, _htmlFolder);
return found ?? HtmlPage.FromUrl(url, _htmlFolder);
})
.Where(h => h != null)
.Select(h => h!)
Expand All @@ -144,9 +142,7 @@ private RankingsSet ParseNewRankings(List<HtmlPage> htmls)
.Select(url =>
{
var found = courseTablePages.Find(h => h.Url.Url == url.Url);
if (found != null)
return found;
return HtmlPage.FromUrl(url, _htmlFolder);
return found ?? HtmlPage.FromUrl(url, _htmlFolder);
})
.Where(h => h != null)
.Select(h => h!)
Expand Down Expand Up @@ -186,7 +182,7 @@ private RankingsSet ParseNewRankings(List<HtmlPage> htmls)
return set;
}

private Ranking? InitRanking(RankingUrl indexUrl, HtmlNode doc)
private static Ranking? InitRanking(RankingUrl indexUrl, HtmlNode doc)
{
var ranking = new Ranking();
// get ranking info
Expand Down Expand Up @@ -268,7 +264,7 @@ private static IEnumerable<RankingUrl> GetTableLinks(HtmlPage html)
return tablesLinks;
}

private Table<MeritTableRow> ParseMeritTable(IEnumerable<HtmlPage> pages)
private static Table<MeritTableRow> ParseMeritTable(IEnumerable<HtmlPage> pages)
{
var table = JoinTables(pages);
var meritTable = Table<MeritTableRow>.Create(
Expand All @@ -282,7 +278,7 @@ private Table<MeritTableRow> ParseMeritTable(IEnumerable<HtmlPage> pages)
return meritTable;
}

private IEnumerable<Table<CourseTableRow>> ParseCoursesTables(IEnumerable<HtmlPage> pages)
private static IEnumerable<Table<CourseTableRow>> ParseCoursesTables(IEnumerable<HtmlPage> pages)
{
var tables = GetTables(pages);
var coursesTables = tables.Select(
Expand Down