public async Task <IActionResult> CancelLesson(StartLessonViewModel startLessonViewModel) { await lessonRepository.Delete(startLessonViewModel.Lesson.Id); await markRepository.DeletePredictedMarksByLesson(startLessonViewModel.Lesson.Id); return(RedirectToAction("Lessons")); }
public async Task <IActionResult> StartLesson(string groupCourseId, LessonType type) { var lesson = await lessonRepository.Create(new Lesson { GroupCourseId = groupCourseId, LessonType = type, Date = DateTime.Now }); var groupCourse = await groupCourseRepository.Get(groupCourseId); var students = await studentRepository.GetByGroupId(groupCourse.GroupId); var marks = new List <Mark>(); foreach (var student in students) { marks.Add(new Mark { StudentId = student.Id, MarkType = (type == LessonType.Lecture || type == LessonType.Seminar) ? MarkType.Activity : (MarkType)((int)type - 1) }); } var viewModel = new StartLessonViewModel { GroupCourse = groupCourse, Type = type, Students = students, Marks = marks }; var result = new KeyValuePair <bool, List <Mark> >(); if (type == LessonType.FirstMiddle) { result = await mlDataRepository.GetFirstMiddlePrediction(groupCourseId); } else if (type == LessonType.SecondMiddle) { result = await mlDataRepository.GetSecondMiddlePrediction(groupCourseId); } else if (type == LessonType.Final) { result = await mlDataRepository.GetFinalPrediction(groupCourseId); } if (!result.Key) { viewModel.ErrorMessage = "Error occured when trying to predict marks"; } else { viewModel.PredictedMarks = result.Value; } return(View("AddLesson", viewModel)); }
public async Task <IActionResult> SaveLesson(StartLessonViewModel startLessonViewModel) { startLessonViewModel.Marks.ForEach(m => m.LessonId = startLessonViewModel.Lesson.Id); var lesson = await lessonRepository.Get(startLessonViewModel.Lesson.Id); lesson.Saved = true; await lessonRepository.Update(lesson); await markRepository.AddRange(startLessonViewModel.Marks); return(RedirectToAction("Lessons")); }