Exemple #1
0
        public List <ShowSeatModel> GetShowSeat(SearchSeatModel searchSeat)
        {
            if (searchSeat.ShowTime != 0 && searchSeat.ShowTime > 0)
            {
                var listSeats = new List <ShowSeatModel>();

                var roomShowTime = _roomShowTimeRepository.FirstOrDefault(x => x.IdShowTime == searchSeat.ShowTime);
                //TODO: Check null

                var room = _roomRepository.FirstOrDefault(x => x.Id == roomShowTime.IdRoom);
                if (room == null)
                {
                    return(null);
                }

                var roomDetail = _roomDetailRepository.GetAll().Where(x => x.IdRoom == room.Id).ToList();
                if (roomDetail == null)
                {
                    return(null);
                }

                listSeats = Mapper.Map <List <RoomDetail>, List <ShowSeatModel> >(roomDetail);
                if (listSeats == null)
                {
                    return(null);
                }

                var listReservedSeats = _bookingRepository.GetAll()
                                        .Where(x => x.IdShowTime == searchSeat.ShowTime);

                var listProductId = roomDetail.Select(x => x.IdProduct).ToList();

                var listProducs = _productRepository.GetAll().Where(x => listProductId.Any(i => i == x.Id));


                foreach (var item in listSeats)
                {
                    var product  = listProducs.FirstOrDefault(x => x.Id == item.IdProduct);
                    var isBooked = listReservedSeats.Any(x => x.IdRoomDetail == item.Id);
                    item.Type       = product.Name;
                    item.IdSeatType = product.Id;
                    item.IsBooking  = isBooked;
                }
                return(listSeats);
            }

            return(null);
        }
Exemple #2
0
        public IActionResult GetListSeats([FromBody] SearchSeatModel searchSeat)
        {
            var result = _SeatService.GetShowSeat(searchSeat);

            return(Ok(result));
        }