public async Task <ParkingOrderDto> UpdateParkingOrder(string orderNumber, UpdateParkingOrderDto updateParkingOrderDto)
        {
            var foundOrderEntity = parkingLotContext.ParkingOrders.FirstOrDefaultAsync(order => order.OrderNumber == orderNumber).Result;

            if (foundOrderEntity != null)
            {
                foundOrderEntity.OrderStatus = updateParkingOrderDto.OrderStatus;
                foundOrderEntity.CloseTime   = updateParkingOrderDto.CloseTime;
                await parkingLotContext.SaveChangesAsync();

                return(new ParkingOrderDto(foundOrderEntity)
                {
                    OrderNumber = foundOrderEntity.OrderNumber,
                });
            }

            return(null);
        }
Beispiel #2
0
        public async Task Should_update_parkingOrder_when_update_parkingOrder_via_parkingOrderService()
        {
            // given
            var scope                               = Factory.Services.CreateScope();
            var scopedServices                      = scope.ServiceProvider;
            ParkingLotContext   context             = scopedServices.GetRequiredService <ParkingLotContext>();
            ParkingOrderService parkingOrderService = new ParkingOrderService(context);
            var parkingOrderDtoList                 = GenerateParkingOrderDtoList();

            foreach (var parkingOrderDto in parkingOrderDtoList)
            {
                await parkingOrderService.AddParkingOrder(parkingOrderDto);
            }

            UpdateParkingOrderDto updateParkingOrderDto = new UpdateParkingOrderDto("closed");

            // when
            var changedParkingOrder = await parkingOrderService.UpdateParkingOrder(parkingOrderDtoList[0].OrderNumber, updateParkingOrderDto);

            // then
            Assert.Equal(updateParkingOrderDto.CloseTime, changedParkingOrder.CloseTime);
            Assert.Equal(updateParkingOrderDto.OrderStatus, changedParkingOrder.OrderStatus);
        }
Beispiel #3
0
        public async Task <ActionResult <ParkingOrderDto> > UpdateParkingLotCapacity(string parkingOrderNumber, UpdateParkingOrderDto updateParkingOrderDto)
        {
            var foundParkingOrder = await parkingOrderService.GetParkingOrderByOrderNumber(parkingOrderNumber);

            if (foundParkingOrder != null)
            {
                var changedParkingOrder = await parkingOrderService.UpdateParkingOrder(parkingOrderNumber, updateParkingOrderDto);

                return(Ok(changedParkingOrder));
            }

            return(NotFound("parking order not found"));
        }