Beispiel #1
0
        public async Task <IActionResult> CancelLesson(StartLessonViewModel startLessonViewModel)
        {
            await lessonRepository.Delete(startLessonViewModel.Lesson.Id);

            await markRepository.DeletePredictedMarksByLesson(startLessonViewModel.Lesson.Id);

            return(RedirectToAction("Lessons"));
        }
Beispiel #2
0
        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));
        }
Beispiel #3
0
        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"));
        }