public async Task GetAvailableSeats() { var options = new SeatsOptions() { RunId = 1 }; var result = await InvokeApi <SeatsResult>(BuildUrl(ApiMethod), "POST", Serialize(options)); Assert.IsNotNull(result.Run); }
public async Task <Result <SeatsResult> > Handle(SeatsOptions options) { try { var run = await _seatsService.GetTrainSeats(options.RunId); var result = new SeatsResult { Run = _mapper.Map <RunDto>(run) }; return(Result.Ok(result)); } catch (Exception ex) { return(Result.Fail <SeatsResult>(HttpStatusCode.InternalServerError, $"Something went wrong. Please repeat the operation. {ex.Message}")); } }
public async Task <IActionResult> GetAvailableSeats([FromBody] SeatsOptions seatsOptions) { if (seatsOptions == null) { return(ErrorResult(HttpStatusCode.BadRequest, "Options can not be null.")); } if (seatsOptions.RunId == 0) { return(ErrorResult(HttpStatusCode.BadRequest, "Request parameters missing or have incorrect format")); } var handler = new SeatsHandler(_seatsService, _mapper); var result = await handler.Handle(seatsOptions); if (result.IsFailure) { return(FromResult(result)); } return(Ok(result.Value)); }