/// <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); }
void FindWorkTypesCompleted(object sender, FindWorkTypesCompletedEventArgs e) { if (e.Error == null) { WorkTypes = e.Result; SelectedWorkType = WorkTypes.FirstOrDefault(c => c.ID == Work.WorkTypeID); } else { ErrorProvider.ShowError(e.Error, Navigator); } dataClient.FindWorkTypesCompleted -= FindWorkTypesCompleted; if (busyCount == 0) { Busy = false; } else { busyCount--; } }