public Movie Get(int movieId) { var movie = _movieTheaterDbRepository.Query <Movie>().Include(e => e.Sessions).FirstOrDefault(e => e.Id == movieId); if (movie == null) { var message = $"There is no Movie with the id '{movieId}'"; throw new ValidationException(message); } return(movie); }
public int Create(MovieSession movieSession) { _movieSessionValidator.ValidateAndThrow(movieSession); var movie = _movieTheaterDbRepository.Query <Movie>().FirstOrDefault(e => e.Id == movieSession.MovieId); movieSession.PresentationEnd = movieSession.PresentationStart.AddMinutes(movie.Duration); var roomReserved = _movieTheaterDbRepository.Query <MovieSession>() .Any(ms => ms.RoomId == movieSession.RoomId && ((ms.PresentationStart <= movieSession.PresentationStart && movieSession.PresentationStart <= ms.PresentationEnd) || (ms.PresentationStart <= movieSession.PresentationEnd && movieSession.PresentationEnd <= ms.PresentationEnd))); if (roomReserved) { var message = "You can't create a new session in this room, cause it has already been reserved."; throw new ValidationException(message); } _movieTheaterDbRepository.Add(movieSession); var changes = _movieTheaterDbRepository.Commit(); return(changes); }
public IEnumerable <MovieRoom> Get() { var rooms = _movieTheaterDbRepository.Query <MovieRoom>().ToList(); return(rooms); }