public static AddReservationCommand ToServiceCommand(AddReservationRequest apiRequest) { if (apiRequest == null) { return(null); } return(new AddReservationCommand(apiRequest.ProductId, apiRequest.Quantity)); }
public async Task <IActionResult> AddReservation(AddReservationRequest model) { var resource = await _reservationService.AddNewReservation(_mapper.Map <AddReservationCommand>(model)); var uri = $"reservation/{resource.Id}"; return(Created(uri, new AddReservationResponse { Id = resource.Id, Uri = uri, })); }
public async Task <IActionResult> AddReservation([FromBody] AddReservationRequest addReservationRequest) { var registeredLeagues = await pokeDexClient.GetRegisteredLeaguesForTrainer(addReservationRequest.trainerId); if (!registeredLeagues.Contains("Indigo")) { return(new StatusCodeResult(403)); } await pokeGymRepository.CreateReservationAsync(addReservationRequest.trainerId, addReservationRequest.ClassId); return(new NoContentResult()); }
public async void AddReservationTest() { // Arrange var trainerId = (await context.Reservations.FirstOrDefaultAsync()).TrainerId; var classId = 3; var beginningReservations = await context.Reservations.Where(x => x.TrainerId == trainerId).ToListAsync(); var addReservationRequest = new AddReservationRequest() { trainerId = trainerId, ClassId = classId }; var requestBodyContent = new StringContent( JsonConvert.SerializeObject(addReservationRequest), Encoding.UTF8, "application/json" ); fluentMockServer .Given( Request.Create().WithPath($"/trainers/{trainerId}").UsingGet() ) .RespondWith( Response.Create() .WithStatusCode(200) .WithHeader("Content-Type", "application/json") .WithBody("[\"Joto\", \"Indigo\"]") ); // Act var response = await client.PostAsync(RouteConstants.RESERVATIONS_ROUTE, requestBodyContent); // Assert Assert.Equal(StatusCodes.Status204NoContent, (int)response.StatusCode); var updatedReservations = await context.Reservations.Where(x => x.TrainerId == trainerId).ToListAsync(); Assert.Equal(beginningReservations.Count + 1, updatedReservations.Count); var newReservation = await context.Reservations.Where(x => x.TrainerId == trainerId && x.ClassId == classId).ToListAsync(); Assert.Single(newReservation); Assert.Single(fluentMockServer.FindLogEntries(Request.Create().WithPath($"/trainers/{trainerId}").UsingGet())); Assert.Single(fluentMockServer.LogEntries); }