示例#1
0
        public async Task <IActionResult> MovieReservation(ProjectionGetDetailsReq req)
        {
            if (await _userRepository.DoesUserExists())
            {
                ProjectionRes res = await _projectionsRespository.GetProjectionById(req);

                res.AvailableSeats = res.AvailableSeats.OrderBy(r => r.Name).ToList();
                return(View(res));
            }
            else
            {
                return(View("UserDoesNotExist"));
            }
        }
示例#2
0
        public async Task <IActionResult> TicketPayment(AvailableSeatGetDetailsReq req)
        {
            AvailableSeatGetDetailsRes availableSeatGetDetailsRes = await _availableSeatsRepository.GetAvailableSeatDetails(req);

            ProjectionGetDetailsReq projectionGetDetailsReq = new ProjectionGetDetailsReq
            {
                Id = availableSeatGetDetailsRes.ProjectionId
            };
            ProjectionRes projectionGetDetailsRes = await _projectionsRepository.GetProjectionById(projectionGetDetailsReq);

            ReservationGetDetailsRes reservation = new ReservationGetDetailsRes
            {
                Seat       = availableSeatGetDetailsRes,
                Projection = projectionGetDetailsRes
            };

            return(View(reservation));
        }
        public async Task <ProjectionRes> GetProjectionById(ProjectionGetDetailsReq req)
        {
            IList <AvailableSeatGetDetailsRes> seatGetDetailsRes = await _dbContext.AvailableSeats
                                                                   .Where(avs => avs.ProjectionId == req.Id)
                                                                   .Select(s => new AvailableSeatGetDetailsRes
            {
                Id           = s.Id,
                SeatId       = s.SeatId,
                ProjectionId = req.Id,
                Name         = s.Seat.Name
            }).ToListAsync();


            IList <CinemaHallGetDetailsRes> cinemaHalls = await _dbContext.CinemaHalls.Select
                                                              (c => new CinemaHallGetDetailsRes
            {
                Id            = c.Id,
                HallImageUrl  = c.HallImageUrl,
                numberOfSeats = c.AllSeats.Count()
            }).ToListAsync();


            ProjectionRes res = await _dbContext.Projections
                                .Where(p => p.Id == req.Id)
                                .Select(p => new ProjectionRes
            {
                Id             = p.Id,
                ProjectionTime = p.ProjectionTime,
                MovieId        = p.MovieId,
                MovieName      = p.Movie.Name,
                CinemaHall     = new CinemaHallGetDetailsRes
                {
                    Id           = p.CinemaHallId,
                    HallImageUrl = p.CinemaHall.HallImageUrl
                },
                AvailableSeats = seatGetDetailsRes,
                AllCinemaHalls = cinemaHalls
            }).FirstOrDefaultAsync();

            return(res);
        }
        public async Task <TicketGetDetailsRes> GetTicketForIdAsync(TicketGetDetailsReq req)
        {
            TicketGetDetailsRes res = await _dbContext.Tickets
                                      .Where(t => t.Id == req.Id)
                                      .Select(t => new TicketGetDetailsRes
            {
                Id           = t.Id,
                Price        = t.Price,
                ProjectionId = t.ProjectionId,
                SeatName     = t.Seat.Name,
                SeatId       = t.SeatId
            }).FirstOrDefaultAsync();

            ProjectionGetDetailsReq projectionReq = new ProjectionGetDetailsReq
            {
                Id = res.ProjectionId
            };

            ProjectionRes projectionRes = await _projectionsRepository.GetProjectionById(projectionReq);

            res.Projection = projectionRes;

            return(res);
        }
        public async Task <Projection> GetProjectionEntityClassWithId(ProjectionGetDetailsReq req)
        {
            Projection projection = await _dbContext.Projections.Where(p => p.Id == req.Id).FirstOrDefaultAsync();

            return(projection);
        }
 public Task <IList <ProjectionRes> > GetProjectionsForMovieAsync(ProjectionGetDetailsReq req)
 {
     throw new NotImplementedException();
     //IMPLEMENTIRATI OVO
 }