Beispiel #1
0
        public Models.Business.Show GetAvailableSeatForShow(Int64 id)
        {
            var show           = _queryFactory.GetShowById(id);
            var seatsInRoom    = _queryFactory.GetSeatsByRoomId(id);
            var bookings       = _queryFactory.GetBookingsByShowId(show.Id);
            var bookedSeats    = bookings.Select(b => b.SeatId);
            var availableSeats = seatsInRoom.Where(s => !bookedSeats.Contains(s.Id));

            var result = new Models.Business.Show();

            result.MovieName = show.Movie.Name;
            result.RoomName  = show.Room.Name;
            result.Seats     = availableSeats.Select(s => new Models.Business.Seat()
            {
                RowNumber = s.RowNumber, SeatNumber = s.SeatNumber
            }).ToList();

            return(result);
        }