public async Task <UserReservationModel> GetUserReservationsAsync(ReservationGetDetailsByUserIdReq req)
        {
            IList <TicketGetDetailsRes>     reservationsRes = new List <TicketGetDetailsRes>();
            IList <ReservationIdForUserRes> reservations    = await _dbContext.Reservations.
                                                              Where(m => m.UserId == req.UserId)
                                                              .Select(m => new ReservationIdForUserRes
            {
                TicketId = m.TicketId
            }).ToListAsync();

            foreach (var item in reservations)
            {
                TicketGetDetailsReq ticketGetDetailsReq = new TicketGetDetailsReq
                {
                    Id = item.TicketId
                };
                TicketGetDetailsRes ticketGetDetailsRes = await this.GetTicketForIdAsync(ticketGetDetailsReq);

                reservationsRes.Add(ticketGetDetailsRes);
            }
            return(new UserReservationModel
            {
                Tickets = reservationsRes
            });
        }
        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);
        }
Beispiel #3
0
        public async Task <IActionResult> ViewReservation(TicketGetDetailsReq req)
        {
            TicketGetDetailsRes res = await _reservationsRepository.GetTicketForIdAsync(req);

            return(View(res));
        }