コード例 #1
0
ファイル: TicketsController.cs プロジェクト: vanzish/ff_train
        public async Task <IActionResult> PurchaseTickets(TicketsOptions options)
        {
            if (options == null)
            {
                return(ErrorResult(HttpStatusCode.BadRequest, "Options can not be null."));
            }

            if (options.RunId == 0 || options.PassengersData?.Any() == false || options.ArrivalCityId == 0 || options.DepartureCityId == 0)
            {
                return(ErrorResult(HttpStatusCode.BadRequest, "Request parameters missing or have incorrect format"));
            }

            var handler = new TicketsHandler(_ticketsService, _mapper, _cityService);
            var result  = await handler.HandlePurchase(options);

            if (result.IsFailure)
            {
                return(FromResult(result));
            }

            return(Ok(result.Value));
        }
コード例 #2
0
ファイル: TicketsController.cs プロジェクト: vanzish/ff_train
        public async Task <IActionResult> PurchaseReservationTickets(string reservationNumber)
        {
            if (!string.IsNullOrWhiteSpace(reservationNumber))
            {
                return(ErrorResult(HttpStatusCode.BadRequest, "Request parameters missing or have incorrect format"));
            }

            var reservation = await _reservationService.GetReservation(reservationNumber);

            if (reservation == null)
            {
                return(ErrorResult(HttpStatusCode.OK, "Sorry! You've overstayed your reservation."));
            }

            var handler = new TicketsHandler(_ticketsService, _mapper, _cityService);
            var result  = await handler.HandlePurchaseReserve(reservation);

            if (result.IsFailure)
            {
                return(FromResult(result));
            }

            return(Ok(result.Value));
        }