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)); }
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)); }