/// <summary> /// Get session results method /// </summary> /// <param name="sessionId">Session id</param> /// <returns></returns> public ICollection <GroupResult> GetSessionResult(int sessionId) { List <GroupResult> results = new List <GroupResult>(); foreach (Group group in Groups) { GroupResult result = new GroupResult(group.GroupName); List <Student> students = Students.Where(s => s.GroupId == group.Id).ToList(); foreach (Student student in students) { List <WorkResult> workResults = WorkResults.Where(w => w.StudentId == student.Id).ToList(); foreach (WorkResult item in workResults) { SessionShedule shedule = SessionShedules.FirstOrDefault(s => s.Id == item.SessionSheduleId && s.SessionId == sessionId); Subject subject = Subjects.FirstOrDefault(s => s.Id == item.SubjectId); WorkType type = WorkTypes.FirstOrDefault(w => w.Id == item.WorkTypeId); if (shedule != null && shedule != null && type != null) { result.StudentResults.Add(new StudentResult(shedule.Date, subject.SubjectName, student.Name, student.Surname, student.MidleName, type.WorkTypeName, item.Result)); } } } results.Add(result); } return(results); }
/// <summary> /// Get list of average marks method /// </summary> /// <returns></returns> public IEnumerable <AverageMarkByExaminer> GetAverageMark(int sesId) { Session currentSession = Sessions.FirstOrDefault(s => s.Id == sesId); List <SessionShedule> shedules = SessionShedules.Where(s => s.SessionId == currentSession.Id).ToList(); List <AverageMarkByExaminer> results = new List <AverageMarkByExaminer>(); AverageMarkByExaminer.SetSessionName($"Session({currentSession.AcademicYears})"); foreach (SessionShedule item in shedules) { Group group = Groups.FirstOrDefault(g => g.Id == item.GroupId); List <WorkResult> groupResults = new List <WorkResult>(); List <Student> students = Students.Where(s => s.GroupId == group.Id).ToList(); foreach (Student stud in students) { List <WorkResult> workResults = WorkResults.Where(w => w.StudentId == stud.Id).ToList(); foreach (WorkResult res in workResults) { if (res.WorkTypeId == 1) { groupResults.Add(res); } } } if (groupResults.Count != 0) { AverageMarkByExaminer average = new AverageMarkByExaminer(); average.AverageMark = Math.Round(groupResults.Average(i => Convert.ToInt32(i.Result)), 2); average.ExaminerName = Examiners.FirstOrDefault(s => s.Id == item.ExaminerId).Name; results.Add(average); groupResults.Clear(); } } return(results); }