Esempio n. 1
0
        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);
        }