public int Add(DTOLesson dtoLesson, out string ErrorText) { ErrorText = ""; Lesson entityLesson = LessonMapper.GetEntityLesson(dtoLesson); //Controlli da effettuare prima di salvare la lezione //Controllo se ci sono già lezioni dello stesso percorso in quel giorno if (UnitOfWork.LessonRepository.GetAll().Where(lesson => lesson.IdCourse == entityLesson.IdCourse && (lesson.StartDate.GetValueOrDefault().Date == entityLesson.StartDate.GetValueOrDefault().Date)).Count() > 0) { ErrorText = "Impossibile salvare la lezione. Un'altra lezione per questo percorso è organizzata per quella giornata."; return(-1); } //Controllo se la stanza è già stata prenotata quel giorno if (UnitOfWork.LessonRepository.GetAll().Where(lesson => lesson.IdRoom == dtoLesson.IdRoom && (lesson.StartDate.GetValueOrDefault().Date == entityLesson.StartDate.GetValueOrDefault().Date)).Count() > 0) { ErrorText = "Impossibile salvare la lezione. La sala scelta è già occupata da un'altra lezione in quella data."; return(-1); } UnitOfWork.LessonRepository.Add(entityLesson); UnitOfWork.Commit(); foreach (DTOResource item in dtoLesson.Students) { UnitOfWork.LessonsResourceRepository.Add(new LessonsResource { IdLesson = entityLesson.Id, IdStudent = item.Id }); } UnitOfWork.Commit(); return(entityLesson.Id); }