private async void OnSelectedGroupUpdate([CanBeNull] GroupEntity selectedGroup)
        {
            if (selectedGroup == null)
            {
                this.StudentGroups.Clear();
                return;
            }

            var groupLessons = await _context.GetGroupLessons(selectedGroup).ToListAsync();

            this.SelectedStream = _context.Streams
                                  .Include(model => model.Discipline)
                                  .FirstOrDefault(model => model.Groups.Any(groupModel => groupModel.Id == selectedGroup.Id));
            var lessons = (await _context.StudentLessons
                           .Where(lessonModel => this.Student.Id == lessonModel.Student.Id)
                           .ToListAsync())
                          .Where(lessonModel => groupLessons.Any(model => model.Id == lessonModel.Lesson.Id))
                          .ToArray(); // to init lazy sequence
            var studentLessonViewBoxes = lessons
                                         .Where(view => view.Lesson.LessonType < LessonType.Attestation)
                                         .Select(model => new StudentLessonViewBox(model, this, _context))
                                         .ToList();

            this.StudentLessons.Clear();
            this.StudentLessons.AddRange(studentLessonViewBoxes);
            var attestations = 0;
            var exams        = 0;
            var studentAttestationExamViews = lessons.Where(view => view.Lesson.LessonType == LessonType.Attestation)
                                              .Select(model => new StudentAttestationExamView(model, this, ++attestations))
                                              .OrderBy(view => view.StudentLesson.Lesson._Order)
                                              .ToList();

            this.StudentAttestations.Clear();
            this.StudentAttestations.AddRange(studentAttestationExamViews);
            var attestationExamViews = lessons.Where(view => view.Lesson.LessonType == LessonType.Exam)
                                       .Select(model => new StudentAttestationExamView(model, this, ++exams))
                                       .OrderBy(view => view.StudentLesson.Lesson._Order)
                                       .ToList();

            this.StudentExams.Clear();
            this.StudentExams.AddRange(attestationExamViews);
            this.AddExamButtonConfig.IsEnabled = this.StudentExams.Count < 1;
            UpdateLessonMark();
            UpdateExamMark();
        }