public async Task <IHttpActionResult> AddParkingLot(ParkingLotModel parkingLot)
        {
            if (ModelState.IsValid == false)
            {
                return(BadRequest(ModelState));
            }

            using (ParkingLotContext context = new ParkingLotContext())
            {
                ParkingLot existingLot = await context.ParkingLots.FindAsync(parkingLot.Name);

                if (existingLot != null)
                {
                    return(BadRequest("Parking lot already exists"));
                }

                ParkingLot newLot = new ParkingLot {
                    Name = parkingLot.Name
                };
                context.ParkingLots.Add(newLot);
                await context.SaveChangesAsync();

                return(Created("api/parkinglots", newLot));
            }
        }
        public async Task Should_Get_Parking_Lots_By_Name()
        {
            // given
            var scope          = Factory.Services.CreateScope();
            var scopedServices = scope.ServiceProvider;

            ParkingLotContext context = scopedServices.GetRequiredService <ParkingLotContext>();

            // when
            int           startindex     = 1;
            int           endindex       = 2;
            ParkingLotDto parkingLotDto1 = new ParkingLotDto()
            {
                Name     = "parkinglot1",
                Capacity = 4,
                Location = "Beijing",
            };
            ParkingLotDto parkingLotDto2 = new ParkingLotDto()
            {
                Name     = "parkinglot2",
                Capacity = 3,
                Location = "Beijing",
            };
            ParkingLotService parkingLotService = new ParkingLotService(context);
            await parkingLotService.AddParkingLot(parkingLotDto1);

            await parkingLotService.AddParkingLot(parkingLotDto2);

            var parkingLot = await parkingLotService.GetByName("parkinglot2");

            Assert.Equal(parkingLotDto2, parkingLot);
        }
 public async Task <IEnumerable <string> > GetAll()
 {
     using (ParkingLotContext context = new ParkingLotContext())
     {
         return(await context.ParkingLots.Select(pl => pl.Name).ToListAsync());
     }
 }
Example #4
0
        private ParkingLotContext GetParkingLotDbContext()
        {
            var scope                 = Factory.Services.CreateScope();
            var scopedServices        = scope.ServiceProvider;
            ParkingLotContext context = scopedServices.GetRequiredService <ParkingLotContext>();

            return(context);
        }
Example #5
0
        public OrderControllerTest(CustomWebApplicationFactory <Startup> factory) : base(factory)
        {
            var scope        = Factory.Services.CreateScope();
            var scopeService = scope.ServiceProvider;

            context = scopeService.GetRequiredService <ParkingLotContext>();
            client  = GetClient();
        }
        public ParkingLotServiceTest(CustomWebApplicationFactory <Startup> factory) : base(factory)
        {
            var scope        = Factory.Services.CreateScope();
            var scopeService = scope.ServiceProvider;

            context = scopeService.GetRequiredService <ParkingLotContext>();
            service = new ParkingLotService(context);
        }
        public async Task Should_not_update_parkingLot_capacity_when_update_parkingLot_do_not_exist_via_parkingLotService()
        {
            var scope          = Factory.Services.CreateScope();
            var scopedServices = scope.ServiceProvider;

            ParkingLotContext context       = scopedServices.GetRequiredService <ParkingLotContext>();
            var parkingLotCapacityUpdateDto = new UpdateParkingLotCapacityDto(10);

            ParkingLotService parkingLotService = new ParkingLotService(context);

            var foundParkingLot = await parkingLotService.UpdateParkingLotCapacity("notExistParkingLotName", parkingLotCapacityUpdateDto);

            Assert.Null(foundParkingLot);
        }
        public async Task Should_create_parkingLot_successfully_via_parkingLot_service()
        {
            var scope          = Factory.Services.CreateScope();
            var scopedServices = scope.ServiceProvider;
            ParkingLotContext parkingLotContext = scopedServices.GetRequiredService <ParkingLotContext>();
            ParkingLotDto     parkingLotDto     = new ParkingLotDto();

            parkingLotDto.Name     = "LiverpoolLot";
            parkingLotDto.Location = "Liverpool";
            parkingLotDto.Capacity = 100;
            ParkingLotService parkingLotService = new ParkingLotService(parkingLotContext);
            await parkingLotService.AddParkingLot(parkingLotDto);

            Assert.Equal(1, parkingLotContext.ParkingLots.Count());
        }
        public async Task Should_add_parkingLot_when_add_parkingLot_with_unique_name_via_parkingLotService()
        {
            var scope          = Factory.Services.CreateScope();
            var scopedServices = scope.ServiceProvider;

            ParkingLotContext context = scopedServices.GetRequiredService <ParkingLotContext>();
            var parkingLotDto         = GenerateParkingLotDto();

            ParkingLotService parkingLotService = new ParkingLotService(context);
            var parkingLotName = await parkingLotService.AddParkingLot(parkingLotDto);

            var foundParkingLot = await context.ParkingLots.FirstOrDefaultAsync(parkingLotEntity => parkingLotEntity.Name == parkingLotName);

            Assert.Equal(1, context.ParkingLots.Count());
            Assert.Equal(parkingLotDto.Name, foundParkingLot.Name);
        }
Example #10
0
        public async Task Should_add_parkingOrder_when_add_parkingOrder_via_parkingOrderService()
        {
            // given
            var scope                 = Factory.Services.CreateScope();
            var scopedServices        = scope.ServiceProvider;
            ParkingLotContext context = scopedServices.GetRequiredService <ParkingLotContext>();
            var parkingOrderDto       = GenerateParkingOrderDto();
            ParkingOrderService parkingOrderService = new ParkingOrderService(context);

            // when
            var parkingOrderNumber = await parkingOrderService.AddParkingOrder(parkingOrderDto);

            var foundParkingOrder = await context.ParkingOrders.FirstOrDefaultAsync(parkingOrderEntity => parkingOrderEntity.OrderNumber == parkingOrderNumber);

            // then
            Assert.Equal(parkingOrderDto.OrderNumber, foundParkingOrder.OrderNumber);
        }
        public async Task Should_get_parkingLot_when_get_parkingLot_by_name_via_parkingLotService()
        {
            var scope          = Factory.Services.CreateScope();
            var scopedServices = scope.ServiceProvider;

            ParkingLotContext context = scopedServices.GetRequiredService <ParkingLotContext>();
            var parkingLotDto         = GenerateParkingLotDto();

            ParkingLotService parkingLotService = new ParkingLotService(context);

            var parkingLotName = await parkingLotService.AddParkingLot(parkingLotDto);

            var foundParkingLot = await parkingLotService.GetParkingLotByName(parkingLotName);

            Assert.Equal(1, context.ParkingLots.Count());
            Assert.Equal(parkingLotDto.Name, foundParkingLot.Name);
        }
        public async Task Should_update_parkingLot_capacity_when_update_parkingLot_by_name_via_parkingLotService()
        {
            var scope          = Factory.Services.CreateScope();
            var scopedServices = scope.ServiceProvider;

            ParkingLotContext context       = scopedServices.GetRequiredService <ParkingLotContext>();
            var parkingLotCapacityUpdateDto = new UpdateParkingLotCapacityDto(10);

            ParkingLotService parkingLotService = new ParkingLotService(context);

            var parkingLotDto  = GenerateParkingLotDto();
            var parkingLotName = await parkingLotService.AddParkingLot(parkingLotDto);

            var foundParkingLot = await parkingLotService.UpdateParkingLotCapacity(parkingLotName, parkingLotCapacityUpdateDto);

            Assert.Equal(parkingLotCapacityUpdateDto.Capacity, foundParkingLot.Capacity);
        }
Example #13
0
        public async Task Should_get_all_parkingOrders_when_get_parkingOrders_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);
            }

            // when
            var allParkingOrders = await parkingOrderService.GetAllParkingOrders();

            // then
            Assert.Equal(5, allParkingOrders.Count());
        }
Example #14
0
        public async Task Should_get_correct_parkingOrder_when_get_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);
            }

            // when
            var parkingOrder = await parkingOrderService.GetParkingOrderByOrderNumber(parkingOrderDtoList[0].OrderNumber);

            // then
            Assert.Equal(parkingOrderDtoList[0], parkingOrder);
        }
Example #15
0
        public ParkingLotController(ParkingLotContext context)
        {
            _context = context;
            if (_context.lot == null || _context.lot.Count() == 0)
            {
                List <Spot> spots = new List <Spot>();
                for (int i = 1; i <= 3; i++)
                {
                    spots.Add(new Spot {
                        isOccupied = false, size = i
                    });
                }
                _context.spots.AddRange(spots);


                _context.lot.Add(new Lot {
                    availableSpots = spots.Count, name = "Poonam's Lot", address = "Downtown"
                });
                _context.SaveChanges();
            }
        }
Example #16
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);
        }
 public OrderService(ParkingLotContext parkingLotContext)
 {
     this.parkingLotContext = parkingLotContext;
 }
 public EfCoreUnitOfWork(ParkingLotContext dbContext)
 => _dbContext = dbContext;
 public ParkingLotController(ParkingLotService parkingLotService, ParkingLotContext parkingLotContext)
 {
     this.parkingLotService = parkingLotService;
     this.parkingLotContext = parkingLotContext;
 }
Example #20
0
 public VehicleRepository(ParkingLotContext context)
 {
     _context = context;
 }
 public ParkingLotService(ParkingLotContext context)
 {
     this.context = context;
 }
 public ParkingLotServiceTest(CustomWebApplicationFactory <Startup> factory) : base(factory)
 {
     client            = GetClient();
     context           = Factory.Services.CreateScope().ServiceProvider.GetRequiredService <ParkingLotContext>();
     parkingLotService = new ParkingLotService(context);
 }
 public ParkingLotRepository(ParkingLotContext dbContext)
 {
     _dbContext = dbContext;
 }
Example #24
0
 public EstablishmentRepository(ParkingLotContext context)
 {
     _context = context;
 }
 public ParkingLotApiService(ParkingLotContext parkingLotDbContext)
 {
     this.parkingLotDbContext = parkingLotDbContext;
 }
 public OrderService(ParkingLotContext parkingLotDbContext)
 {
     this.parkingLotDbContext = parkingLotDbContext;
     orders = parkingLotDbContext.Orders;
 }