Beispiel #1
0
        /// <summary>
        /// Сохранение изменений в уроках
        /// </summary>
        /// <param name="lessonInfo"></param>
        /// <returns></returns>
        public async Task ChangeLessons(ChangeLessonInfo lessonInfo)
        {
            var deletedInfo  = lessonInfo.DeletedInfo;
            var insertedInfo = lessonInfo.InsertedInfo;

            if (deletedInfo != null)
            {
                switch ((LessonInfoType)deletedInfo.LessonType)
                {
                case LessonInfoType.Planned:
                    var cancelLesson = new CanceledLesson
                    {
                        LessonDate = deletedInfo.LessonDate.Value
                    };
                    await _lessonDomainService.DeleteLesson(lessonInfo.PupilId, cancelLesson);

                    break;

                case LessonInfoType.Added:
                    await _lessonDomainService.DeleteExtraLesson(lessonInfo.PupilId, deletedInfo.Id.Value);

                    break;
                }
            }
            if (insertedInfo != null)
            {
                var extraLesson = _mapper.Map <ExtraLesson>(insertedInfo);
                await _lessonDomainService.AddExtraLesson(lessonInfo.PupilId, extraLesson);
            }
        }
        /// <summary>
        /// Удаление ругулярного урока у ученика
        /// </summary>
        /// <param name="pupilId"></param>
        /// <param name="canceledLesson"></param>
        /// <returns></returns>
        public async Task <Pupil> DeleteLesson(int pupilId, CanceledLesson canceledLesson)
        {
            var pupil = await _pupilDao.GetPupil(pupilId);

            if (pupil == null)
            {
                throw new ArgumentException("Pupil not found");
            }
            if (pupil.PupilSchedule.CanceledLessons.Where(p => p == canceledLesson).Count() == 0)
            {
                pupil.PupilSchedule.CanceledLessons.Add(canceledLesson);
            }
            return(await _pupilDao.SavePupil(pupil));
        }