/// <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)); }