public async Task UpdateAsync(string id, ParkingLotUpdateModel parkingLotUpdateModel) { var target = this.parkingLotContext.ParkingLots.FirstOrDefault(lot => lot.Id == id); target.Capacity = parkingLotUpdateModel.Capacity; await this.parkingLotContext.SaveChangesAsync(); }
public async Task Should_change_parking_lot_capacity_when_patch() { var client = GetClient(); var parkingLotDto = new ParkingLotDTO() { Name = "myLot6", Capacity = 1, Location = " ", }; var httpContent = JsonConvert.SerializeObject(parkingLotDto); StringContent content = new StringContent(httpContent, Encoding.UTF8, MediaTypeNames.Application.Json); var postResponse = await client.PostAsync($"/parkinglots", content); var id = postResponse.Headers.Location.AbsoluteUri.Split("/")[4]; var parkingLotUpdateModel = new ParkingLotUpdateModel() { Capacity = 2, }; var httpContent2 = JsonConvert.SerializeObject(parkingLotUpdateModel); StringContent content2 = new StringContent(httpContent2, Encoding.UTF8, MediaTypeNames.Application.Json); var response = await client.PatchAsync($"/parkinglots/{id}", content2); response.EnsureSuccessStatusCode(); var scope = Factory.Services.CreateScope(); var scopedServices = scope.ServiceProvider; var context = scopedServices.GetRequiredService <ParkingLotContext>(); Assert.Equal(parkingLotUpdateModel.Capacity, context.ParkingLots.FirstOrDefault().Capacity); }
public async Task UpdateParkingLot(string name, ParkingLotUpdateModel data) { var parkingLotEntity = context.ParkingLots.FirstOrDefaultAsync(lot => lot.Name == name).Result; parkingLotEntity.Capacity = data.Capacity; await context.SaveChangesAsync(); }
public async Task Story1_AC5_Should_update_parkingLot_capacity() { // given var parkingLot = new ParkingLot("Lot1", 10, "location1"); var updateModel = new ParkingLotUpdateModel(20); // when var name = await service.AddParkingLot(parkingLot); await service.UpdateParkingLot(name, updateModel); var lot = await service.GetParkingLotByName(name); // then Assert.Equal(updateModel.Capacity, lot.Capacity); }
public async Task <ActionResult> UpdateAsync(string id, ParkingLotUpdateModel parkingLotUpdateModel) { if (parkingLotUpdateModel.Capacity < 0) { return(BadRequest()); } var target = await this.parkingLotService.GetAsync(id); if (target == null) { return(NotFound()); } await this.parkingLotService.UpdateAsync(id, parkingLotUpdateModel); return(NoContent()); }
public async Task <IActionResult> Patch(string name, ParkingLotUpdateModel data) { var lotFound = await service.GetParkingLotByName(name); if (lotFound == null) { return(NotFound("no lot match name")); } if (data.Capacity < 0) { return(BadRequest("capacity can not be negative")); } await service.UpdateParkingLot(name, data); return(NoContent()); }
public async Task Story1_AC5_Should_update_parkingLot_capacity() { // given var parkingLot = new ParkingLot("Lot1", 10, "location1"); var updateModel = new ParkingLotUpdateModel(20); // when var responseAdd = await client.PostAsync("/parkinglots", content.GetRequestContent(parkingLot)); var response = await client.PatchAsync(responseAdd.Headers.Location, content.GetRequestContent(updateModel)); var responseNotFound = await client.PatchAsync("error uri", content.GetRequestContent(updateModel)); var responseGet = await client.GetAsync(responseAdd.Headers.Location); var lot = await content.GetResponseContent <ParkingLot>(responseGet); // then Assert.Equal(HttpStatusCode.NoContent, response.StatusCode); Assert.Equal(updateModel.Capacity, lot.Capacity); Assert.Equal(HttpStatusCode.NotFound, responseNotFound.StatusCode); }