Example #1
0
 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;
     }
 }
Example #2
0
        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);
        }