public void Filter() { JournalRecords.Clear(); using (var repo = new Repository()) { var records = repo.GetAllWhere <StudentStatusOnLesson>(s => s.Date >= SelectedDate && s.Date <= SelectedDate.AddDays(6) && s.Student.Group.GroupName == SelectedGroup.GroupName && s.ScheduleRecord.Subject.SubjectName == SelectedSubject.SubjectName); foreach (var r in records) { JournalRecord journalRecord = JournalRecords.FirstOrDefault(j => j.Student.StudentId == r.StudentId); if (journalRecord == null) { journalRecord = new JournalRecord(); journalRecord.Student = r.Student; //Заполнить статусы пустыми занчениями journalRecord.Statuses = new List <StudentStatusOnLesson> (Enumerable.Repeat <StudentStatusOnLesson>(null, 6)); } //Добавить статус в нужную ячейку journalRecord.Statuses.Insert(r.ScheduleRecord.DayOfWeek - 1, r); JournalRecords.Add(journalRecord); } } }
public void RefreshJournalRecords() { try { JournalRecords.Clear(); List <JournalRecord> list; if (OnlySelectedShift) { list = _journalRepository.GetRecordsByDateAndShift(Shift.Date, Shift.Shift.Value); } else { list = _journalRepository.GetRecordsStartFrom(FromTheDate); } var collection = list.OrderBy(jr => jr, new JournalRecordsBeginTimeComparer()).Select(jr => new JournalRecordViewModel(jr)); JournalRecords.AddRange(collection); } catch (Exception e) { MessageBox.Show(e.Message); } }