private void UpdateSemesterDisciplineMarks(DisciplineWithMark dwm) { var marks = mRepo.studentDisciplineSemesterAll(currentStudentId, dwm.id); marks = Utilities.ConstrainMarksToOneAttestation(marks, dwm); var teachers = tRepo.all().ToDictionary(t => t.id, t => t); var markTypes = mtypeRepo.all(); var markTypeOptions = mtoRepo.all(); SetMarkTypeAndAttestationType(dwm); MarksGridView.DataSource = MarkView .FromMarkList(marks, markTypes, markTypeOptions, teachers, mtRepo) .OrderBy(mv => mv.attempt) .ToList(); FormatMarksGrid(); }
private void SetMarkTypeAndAttestationType(DisciplineWithMark dwm) { var markTypes = mtypeRepo.all().ToDictionary(mt => mt.name, mt => mt); if (dwm.zachet) { AttestationType.Text = "Зачёт"; CurrentMarkType.SelectedValue = markTypes[Constants.AttestationMarkType["Зачёт"]].id; } if (dwm.exam) { AttestationType.Text = "Экзамен"; CurrentMarkType.SelectedValue = markTypes[Constants.AttestationMarkType["Экзамен"]].id; } if (dwm.zachet_with_mark) { AttestationType.Text = "Зачёт с оценкой"; CurrentMarkType.SelectedValue = markTypes[Constants.AttestationMarkType["Зачёт с оценкой"]].id; } if (dwm.course_project) { AttestationType.Text = "Курсовой проект"; CurrentMarkType.SelectedValue = markTypes[Constants.AttestationMarkType["Курсовой проект"]].id; } if (dwm.course_task) { AttestationType.Text = "Курсовая работа"; CurrentMarkType.SelectedValue = markTypes[Constants.AttestationMarkType["Курсовая работа"]].id; } if (dwm.control_task) { AttestationType.Text = "Контрольная работа"; CurrentMarkType.SelectedValue = markTypes[Constants.AttestationMarkType["Контрольная работа"]].id; } if (dwm.referat) { AttestationType.Text = "Реферат"; CurrentMarkType.SelectedValue = markTypes[Constants.AttestationMarkType["Реферат"]].id; } if (dwm.essay) { AttestationType.Text = "Эссе"; CurrentMarkType.SelectedValue = markTypes[Constants.AttestationMarkType["Эссе"]].id; } }
public static List <Mark> ConstrainMarksToOneAttestation(List <Mark> marks, DisciplineWithMark dwm) { if (dwm.zachet) { return(marks.Where(m => m.attestation_type == "Зачёт").ToList()); } if (dwm.exam) { return(marks.Where(m => m.attestation_type == "Экзамен").ToList()); } if (dwm.zachet_with_mark) { return(marks.Where(m => m.attestation_type == "Зачёт с оценкой").ToList()); } if (dwm.course_project) { return(marks.Where(m => m.attestation_type == "Курсовой проект").ToList()); } if (dwm.course_task) { return(marks.Where(m => m.attestation_type == "Курсовая работа").ToList()); } if (dwm.control_task) { return(marks.Where(m => m.attestation_type == "Контрольная работа").ToList()); } if (dwm.referat) { return(marks.Where(m => m.attestation_type == "Реферат").ToList()); } if (dwm.essay) { return(marks.Where(m => m.attestation_type == "Эссе").ToList()); } return(new List <Mark>()); }
private void UpdateSemesterDisciplines(int semester) { var selected = false; var selectedRowIndex = -1; if (SemesterDisciplinesMarksGrid.SelectedCells.Count > 0) { selected = true; selectedRowIndex = SemesterDisciplinesMarksGrid.SelectedCells[0].RowIndex; } var dsv = dsViews .Where(ds => ds.semester == semester) .OrderBy(ds => ds.discipline_name) .ToList(); var splittedDsv = new List <DisciplineSemesterView>(); foreach (var dsvItem in dsv) { if (dsvItem.zachet) { var item = dsvItem.CloneWithNoAttestation(); item.zachet = true; splittedDsv.Add(item); } if (dsvItem.exam) { var item = dsvItem.CloneWithNoAttestation(); item.exam = true; splittedDsv.Add(item); } if (dsvItem.zachet_with_mark) { var item = dsvItem.CloneWithNoAttestation(); item.zachet_with_mark = true; splittedDsv.Add(item); } if (dsvItem.course_project) { var item = dsvItem.CloneWithNoAttestation(); item.course_project = true; splittedDsv.Add(item); } if (dsvItem.course_task) { var item = dsvItem.CloneWithNoAttestation(); item.course_task = true; splittedDsv.Add(item); } if (dsvItem.control_task) { var item = dsvItem.CloneWithNoAttestation(); item.control_task = true; splittedDsv.Add(item); } if (dsvItem.referat) { var item = dsvItem.CloneWithNoAttestation(); item.referat = true; splittedDsv.Add(item); } if (dsvItem.essay) { var item = dsvItem.CloneWithNoAttestation(); item.essay = true; splittedDsv.Add(item); } } var markTypes = mtypeRepo.all(); var markTypeOptions = mtoRepo.all(); var studentMarks = mRepo.studentAll(currentStudentId); var disciplinesWithMarksView = DisciplineWithMark.FromDisciplineSemesterView(splittedDsv, studentMarks, markTypes, markTypeOptions); SemesterDisciplinesMarksGrid.DataSource = disciplinesWithMarksView; FormatSemesterView(); if (selected) { SemesterDisciplinesMarksGrid.ClearSelection(); SemesterDisciplinesMarksGrid.Rows[selectedRowIndex].Selected = true; } }