Ejemplo n.º 1
0
        public Parking Depart(Car car)
        {
            if (car == null)
            {
                throw new ArgumentNullException();
            }
            DateTime departure = DateTime.Now;
            Parking  parking   = new Parking();

            using (ParkingDBContext context = factory.CreateDbContext())
            {
                CarEntity carEntity = context.Cars.Single(ca => ca.StateNumber == car.StateNumber);
                var       history   = context.ParkingHistory.Where(ph => ph.IdCar == carEntity.IdCar).Last();

                ParkingEntity parkingEntity = context.Parkings.Single(pa => pa.IdParking == history.IdParking);
                var           carEntities   = context.ParkingHistory.Include(ph => ph.Car).Where(ph => ph.IdParking == parkingEntity.IdParking && ph.Departure == null).Select(ph => ph.Car).ToList();
                parking.ParkingName = parkingEntity.Name;
                parking.Latitude    = parkingEntity.Latitude;
                parking.Longitude   = parkingEntity.Longitude;
                foreach (var carEnt in carEntities)
                {
                    User            user       = new User();
                    ApplicationUser userEntity = context.Users.Single(us => us.UsersHaveCars.Any(uhc => uhc.IdCar == carEnt.IdCar));
                    user.Username  = userEntity.UserName;
                    user.FirstName = userEntity.FirstName;
                    user.LastName  = userEntity.Lastname;
                    user.UserPhoto = userEntity.UserPhoto;
                    Car carInParking = new Car();
                    carInParking.StateNumber  = carEnt.StateNumber;
                    carInParking.Id           = carEnt.IdCar;
                    carInParking.Manufacturer = carEnt.Manufacturer;
                    carInParking.Color        = carEnt.Color;
                    carInParking.Model        = carEnt.Model;
                    carInParking.Year         = carEnt.Year;
                    carInParking.Owner        = user;
                    ParkingHistoryEntity parkingHistoryIn = context.ParkingHistory.Last(phe => phe.IdCar == carEnt.IdCar);
                    parking.AddCar(carInParking.StateNumber, carInParking.Owner, parkingHistoryIn.Arrival);
                }
                history.Departure = departure;
                context.SaveChanges();
                return(parking);
            }
        }
Ejemplo n.º 2
0
        public IHttpActionResult RunLottery()
        {
            List <dynamic> result = _parkingRepository.AllotParking();

            dynamic ptempList = result[0];
            dynamic etempList = result[1];

            List <ParkingEntity> pList = new List <ParkingEntity>();

            foreach (dynamic p in ptempList)
            {
                ParkingEntity pen = new ParkingEntity();
                pen.PID  = p.ParkingSlotID;
                pen.Wing = p.ParkingSlotWing;

                pList.Add(pen);
            }

            List <EmployeeEntity> eList = new List <EmployeeEntity>();

            foreach (dynamic e in etempList)
            {
                EmployeeEntity een = new EmployeeEntity();
                een.Id        = e.EmployeeID;
                een.RoleTitle = e.RoleTitle;

                eList.Add(een);
            }

            if (pList.Count > eList.Count)
            {
                //assign parking slot to each employee randomly
            }
            else
            {
                //assign parking slot for random employee
            }
            return(Ok());
        }
Ejemplo n.º 3
0
        public void DepartureTest()
        {
            User user = new User();

            user.Username = "******";
            Car car = new Car();

            car.Owner       = user;
            car.StateNumber = "1234";
            Parking parking = new Parking();

            parking.ParkingName = "Zion";

            using (ParkingDBContext context = contextFactory.CreateDbContext())
            {
                ParkingEntity parkingEntity = new ParkingEntity();
                parkingEntity.Name = parking.ParkingName;
                context.Parkings.Add(parkingEntity);

                ApplicationUser userEntity = new ApplicationUser();
                userEntity.UserName = user.Username;
                context.Users.Add(userEntity);

                CarEntity carEntity = new CarEntity();
                carEntity.StateNumber = car.StateNumber;

                UsersHaveCars uhc = new UsersHaveCars();
                uhc.UserEntity           = userEntity;
                uhc.CarEntity            = carEntity;
                userEntity.UsersHaveCars = new List <UsersHaveCars>();
                userEntity.UsersHaveCars.Add(uhc);
                context.SaveChanges();
            }
            ParkingManager parkingManager = new ParkingManager(contextFactory);

            parkingManager.Arrive(car, parking, car.Owner.Username);
            parkingManager.Depart(car);
            Assert.DoesNotContain(car, parking.Cars);
        }
Ejemplo n.º 4
0
        public Parking Arrive(Car car, Parking parking, string username)
        {
            if (car == null)
            {
                throw new ArgumentNullException();
            }
            if (parking == null)
            {
                throw new ArgumentNullException();
            }

            DateTime arrival = DateTime.Now;

            using (ParkingDBContext context = factory.CreateDbContext())
            {
                ApplicationUser userEntity = context.Users.Single(us => us.UserName == username);
                User            user       = new User();
                user.Username  = userEntity.UserName;
                user.FirstName = userEntity.FirstName;
                user.Email     = userEntity.Email;
                user.LastName  = userEntity.Lastname;
                user.Password  = userEntity.PasswordHash;
                user.UserPhoto = userEntity.UserPhoto;
                CarEntity            carEntity     = context.Cars.Single(ca => ca.StateNumber == car.StateNumber);
                ParkingEntity        parkingEntity = context.Parkings.Single(park => park.Name == parking.ParkingName);
                ParkingHistoryEntity historyEntity = new ParkingHistoryEntity();
                historyEntity.IdCar     = carEntity.IdCar;
                historyEntity.IdUser    = userEntity.Id;
                historyEntity.IdParking = parkingEntity.IdParking;
                historyEntity.Arrival   = arrival;
                context.ParkingHistory.Add(historyEntity);
                context.SaveChanges();
                parking.AddCar(car.StateNumber, user, arrival);
                return(parking);
            }
        }