Exemplo n.º 1
0
        public async Task UpdateOralExam(OralExamUpdate model)
        {
            var studentExam = await context.StudentExam
                              .Include(_ => _.Enrolment)
                              .FirstOrDefaultAsync(_ => _.Id == model.Id && _.ExamId == model.ExamId && _.EnrolmentId == model.EnrolmentId);

            if (studentExam == null)
            {
                throw new ValidationException("Ne postoji traženi studentski ispit.");
            }

            studentExam.Description  = model.Description;
            studentExam.Score        = model.Score;
            studentExam.Grade        = model.Grade.ConvertGrade();
            studentExam.Participated = model.Participated;

            studentExam.Enrolment.FinalGrade = model.FinalGrade.ConvertGrade();
            studentExam.Enrolment.GradeDate  = model.FinalGrade.HasValue && model.FinalGrade.Value != Grade.NoGrade ?
                                               model.FinalGradeDate : null;

            var errorsStudentExam = studentExam.Validate();
            var errorsEnrolment   = studentExam.Enrolment.Validate();

            if (errorsStudentExam.Any() || errorsEnrolment.Any())
            {
                throw new ValidationPropertyException(errorsStudentExam.Concat(errorsEnrolment).ToDictionary(_ => _.Key, _ => _.Value));
            }

            context.StudentExam.Update(studentExam);
            await context.SaveChangesAsync();
        }
Exemplo n.º 2
0
        private void NavigateOralExamUpdate_Click(object sender, RoutedEventArgs e)
        {
            var page = new OralExamUpdate();

            MainContent.Navigate(page);
        }