private void facultySelected() { if (_selectedFaculty != null) { AddOrRemoveFacultyFromFacultyList(_selectedFaculty.Faculty); FacultiesList.Find(vf => vf.Faculty.Id == _selectedFaculty.Faculty.Id) .IsImageVisible = !FacultiesList.Find(vf => vf.Faculty.Id == _selectedFaculty.Faculty.Id).IsImageVisible; } }
public AverageGradeStatistics Calculate(FacultiesList facultyList, Func <NamedDoubleLinkedList <Student>, int, bool> shouldIncludeGroupToStatistics) { GroupAndAverageGradePairs = null; float?maxAverage = null; var pairsList = new List <KeyValuePair <NamedDoubleLinkedList <Student>, float> >(); foreach (var f in facultyList) { foreach (var gr in f) { int course = GroupNameParser.ParseHypotheticalCourseNumber(gr.Name); if (!shouldIncludeGroupToStatistics(gr, course)) { continue; } float average = gr.Average(s => s.AverageGrade); pairsList.Add(new KeyValuePair <NamedDoubleLinkedList <Student>, float>(gr, average)); if (!maxAverage.HasValue || maxAverage < average) { maxAverage = average; } } } if (!maxAverage.HasValue) { throw new AverageGradeStatisticsHasNoResultsException( "There is nothing to calculate for provided list of faculties"); } MaxAverageOfGrades = maxAverage.Value; GroupAndAverageGradePairs = pairsList; return(this); }