示例#1
0
        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();
        }
示例#2
0
        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);
        }