コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        public IEnumerable <MovieRoom> Get()
        {
            var rooms = _movieTheaterDbRepository.Query <MovieRoom>().ToList();

            return(rooms);
        }