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); }
public async Task <IActionResult> ViewReservation(TicketGetDetailsReq req) { TicketGetDetailsRes res = await _reservationsRepository.GetTicketForIdAsync(req); return(View(res)); }