示例#1
0
        public void GetParkedCarsTest()
        {
            string username = "******";

            using (ParkingDBContext context = contextFactory.CreateDbContext())
            {
                ApplicationUser user = new ApplicationUser();
                user.UserName = username;
                CarEntity firstCar = new CarEntity();
                firstCar.StateNumber = "1515-IO7";

                context.Users.Add(user);

                UsersHaveCars uhc = new UsersHaveCars();
                uhc.UserEntity     = user;
                uhc.CarEntity      = firstCar;
                user.UsersHaveCars = new List <UsersHaveCars>();
                user.UsersHaveCars.Add(uhc);

                ParkingHistoryEntity parkingHistoryEntity = new ParkingHistoryEntity();
                parkingHistoryEntity.IdCar     = firstCar.IdCar;
                parkingHistoryEntity.IdUser    = user.Id;
                parkingHistoryEntity.IdParking = 1;
                parkingHistoryEntity.Arrival   = DateTime.Now;
                parkingHistoryEntity.Car       = firstCar;
                parkingHistoryEntity.User      = user;

                context.ParkingHistory.Add(parkingHistoryEntity);
                context.SaveChanges();
            }
            CarManager carManager = new CarManager(contextFactory);
            List <Car> cars       = carManager.GetParkedCars(username);

            Assert.NotEmpty(cars);
        }
示例#2
0
        public async Task <string> GetParkingNameByCarId(int carId)
        {
            string parkingName = "";

            using (ParkingDBContext context = factory.CreateDbContext())
            {
                ParkingHistoryEntity parkingHistoryEntity = await context.ParkingHistory.Include(p => p.Parking).Where(ph => ph.IdCar == carId).LastOrDefaultAsync();

                parkingName = parkingHistoryEntity?.Parking?.Name;
            }

            return(parkingName);
        }
示例#3
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);
            }
        }
示例#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);
            }
        }