Exemplo n.º 1
0
        public async Task <Result <TicketsResult> > HandlePurchase(TicketsOptions options)
        {
            try
            {
                var tickets = await _ticketsService.ReserveTickets(options, true);

                var city = await _cityService.GetCity(options.DepartureCityId);

                var result = new TicketsResult
                {
                    Tickets = tickets.Select(x => _mapper.Map <TicketDto>(x)), PlacesToBuy = city.Stations.Select(x => x.Name)
                };
                return(Result.Ok(result));
            }
            catch (DbUpdateConcurrencyException ex)
            {
                return(Result.Fail <TicketsResult>(HttpStatusCode.InternalServerError,
                                                   $"Sorry! It seems that your seats are already busy."));
            }
            catch (Exception ex)
            {
                return(Result.Fail <TicketsResult>(HttpStatusCode.InternalServerError,
                                                   $"Something went wrong. Please repeat the operation. {ex.Message}"));
            }
        }
Exemplo n.º 2
0
        public TicketsResult Search(TicketSearchParams Criteria, RequestState RequestState)
        {
            InitCusRelContext();
            var result = new TicketsResult
            {
                Tickets = Criteria.Search(RequestState)
            };

            if (result.Tickets == null)
            {
                result.SetFail("No tickets found");
            }
            return(result);
        }
Exemplo n.º 3
0
        public async Task <Result <TicketsResult> > HandlePurchaseReserve(Reservation reservation)
        {
            try
            {
                var tickets = await _ticketsService.PurchaseReservationTickets(reservation);

                var result = new TicketsResult
                {
                    Tickets = tickets.Select(x => _mapper.Map <TicketDto>(x))
                };
                return(Result.Ok(result));
            }
            catch (DbUpdateConcurrencyException ex)
            {
                return(Result.Fail <TicketsResult>(HttpStatusCode.InternalServerError,
                                                   $"Sorry! It seems that your seats are already busy."));
            }
            catch (Exception ex)
            {
                return(Result.Fail <TicketsResult>(HttpStatusCode.InternalServerError,
                                                   $"Something went wrong. Please repeat the operation. {ex.Message}"));
            }
        }
Exemplo n.º 4
0
 public Page <Ticket> MapFromTicketResult(TicketsResult result)
 {
     return(AutoMapper.Mapper.Map <TicketsResult, Page <Ticket> >(result));
 }