public static void Main()
        {
            Database.SetInitializer(new DropCreateDatabaseAlways <CarsSystemDbContext>());

            var db = new CarsSystemDbContext();

            JsonCarsImporter.Import();
        }
Beispiel #2
0
        public void ShouldReturnInstanceOfCarsDbContext()
        {
            // Arrange
            var db = CarsSystemDbContext.Create();

            // Act & Assert
            Assert.IsInstanceOf <CarsSystemDbContext>(db);
        }
Beispiel #3
0
        public void BeTypeOfICarsDbContext()
        {
            // Arrange
            var db = new CarsSystemDbContext();

            // Act & Assert
            Assert.IsInstanceOf <ICarsSystemDbContext>(db);
        }
Beispiel #4
0
        public void CreateInstanceOfDatabase()
        {
            // Arrange
            var db = new CarsSystemDbContext();

            // Act & Assert
            Assert.IsInstanceOf <CarsSystemDbContext>(db);
        }
        public void CreateCorrectlyUsersService_IfEfRepositoyryIsNotNull()
        {
            CarsSystemDbContext        context = new CarsSystemDbContext();
            EfGenericRepository <User> carRepo = new EfGenericRepository <User>(context);

            Assert.DoesNotThrow(() => new UsersService(carRepo));
            Assert.IsNotNull(carRepo);
        }
        public void CreateInstance_OfTypeIUsersService()
        {
            CarsSystemDbContext        context = new CarsSystemDbContext();
            EfGenericRepository <User> carRepo = new EfGenericRepository <User>(context);

            var usersService = new UsersService(carRepo);

            Assert.IsInstanceOf <IUsersService>(usersService);
        }
        public void CreateCorrectlyCarsService_IfEfRepositoryIsNotNull()
        {
            // Arrange
            CarsSystemDbContext       context = new CarsSystemDbContext();
            EfGenericRepository <Car> carRepo = new EfGenericRepository <Car>(context);

            // Act & Assert
            Assert.DoesNotThrow(() => new CarsService(carRepo));
            Assert.IsNotNull(carRepo);
        }
        public void CreateInstance_OfTypeICarsService()
        {
            // Arrange
            CarsSystemDbContext       context = new CarsSystemDbContext();
            EfGenericRepository <Car> carRepo = new EfGenericRepository <Car>(context);

            // Act
            var carsService = new CarsService(carRepo);

            // Assert
            Assert.IsInstanceOf <ICarsService>(carsService);
        }
Beispiel #9
0
        private static void ProcessQuery(QueriesQuery query)
        {
            var db = new CarsSystemDbContext();

            var carsQuery = db.Cars.AsQueryable();

            foreach (var whereClauses in query.WhereClauses)
            {
                switch (whereClauses.PropertyName)
                {
                case "Year":
                    switch (whereClauses.Type)
                    {
                    case "Equals":
                        carsQuery = carsQuery.Where(c => c.Id == int.Parse(whereClauses.Value)); break;

                    case "GreaterThan":
                        carsQuery = carsQuery.Where(c => c.Id > int.Parse(whereClauses.Value)); break;

                    case "LessThan":
                        carsQuery = carsQuery.Where(c => c.Id < int.Parse(whereClauses.Value)); break;
                    }
                    break;

                case "Model":
                    break;

                case "Price":
                    break;

                case "Manufacturer":
                    break;

                case "Dealer":
                    break;

                default: break;
                }
            }

            switch (query.OrderBy)
            {
            case "Year":
                carsQuery = carsQuery.OrderBy(c => c.Year);
                break;

            case "Model":
                carsQuery = carsQuery.OrderBy(c => c.Model);
                break;

            case "Price":
                carsQuery = carsQuery.OrderBy(c => c.Price);
                break;

            case "Manufacturer":
                carsQuery = carsQuery.OrderBy(c => c.Manufacturer.Name);
                break;

            case "Dealer":
                carsQuery = carsQuery.OrderBy(c => c.Dealer.Name);
                break;

            default: break;
            }
        }
 public static void Initialize()
 {
     Database.SetInitializer(new MigrateDatabaseToLatestVersion <CarsSystemDbContext, Configuration>());
     CarsSystemDbContext.Create().Database.Initialize(true);
 }
        public static void Import()
        {
            var carsToAdd = Directory.GetFiles(Directory.GetCurrentDirectory() + "/JsonFiles/")
                            .Where(f => f.EndsWith(".json"))
                            .Select(f => File.ReadAllText(f))
                            .SelectMany(str => JsonConvert.DeserializeObject <IEnumerable <CarJsonModel> >(str))
                            .ToList();

            var addedCities        = new HashSet <string>();
            var addedManufacturers = new HashSet <string>();

            Console.WriteLine("Addind cars");
            var addedCars = 0;
            var db        = new CarsSystemDbContext();

            db.Configuration.AutoDetectChangesEnabled = false;
            db.Configuration.ValidateOnSaveEnabled    = false;

            foreach (var car in carsToAdd)
            {
                var cityName = car.Dealer.City;
                if (!addedCities.Contains(cityName))
                {
                    var city = new City
                    {
                        Name = cityName,
                    };

                    db.Cities.Add(city);
                    db.SaveChanges();

                    addedCities.Add(cityName);
                }

                var manufacturer = car.ManufacturerName;

                if (!addedManufacturers.Contains(manufacturer))
                {
                    var newManufacturer = new Manufacturer
                    {
                        Name = manufacturer
                    };
                    addedManufacturers.Add(manufacturer);
                    db.Manufacturers.Add(newManufacturer);
                    db.SaveChanges();
                }

                var dealerToAdd = new Dealer
                {
                    Name = car.Dealer.Name
                };

                var dbCity = db.Cities.FirstOrDefault(c => c.Name == cityName);
                dealerToAdd.Cities.Add(dbCity);
                var dbManufacturer = db.Manufacturers.FirstOrDefault(m => m.Name == car.ManufacturerName);

                var carToAdd = new Car
                {
                    Manufacturer = dbManufacturer,
                    Dealer       = dealerToAdd,
                    Model        = car.Model,
                    Price        = car.Price,
                    Transmission = (TransmissionType)car.TransmissionType,
                    Year         = car.Year
                };

                db.Cars.Add(carToAdd);

                if (addedCars % 100 == 0)
                {
                    Console.Write(".");
                    db.SaveChanges();
                    db.Dispose();
                    db = new CarsSystemDbContext();
                    db.Configuration.AutoDetectChangesEnabled = false;
                    db.Configuration.ValidateOnSaveEnabled    = false;
                }

                addedCars++;
            }

            db.SaveChanges();
            db.Configuration.AutoDetectChangesEnabled = true;
        }
        public void CarsSystemDbContext_CreateMethodShouldReturnInstanceOfICarsDbContext()
        {
            var db = CarsSystemDbContext.Create();

            Assert.IsInstanceOf <ICarsSystemDbContext>(db);
        }
        public void CarsSystemDbContext_ShouldBeTypeOfICarsDbContext()
        {
            var db = new CarsSystemDbContext();

            Assert.IsInstanceOf <ICarsSystemDbContext>(db);
        }
        public void CarsSystemDbContext_ShouldCreateInstanceOfDatabase()
        {
            var db = new CarsSystemDbContext();

            Assert.IsInstanceOf <CarsSystemDbContext>(db);
        }
Beispiel #15
0
        public static void Import()
        {
            Stopwatch sw = new Stopwatch();

            sw.Start();

            var carsToAdd = Directory
                            .GetFiles(Directory.GetCurrentDirectory() + "/Data.Json.Files/")
                            .Where(f => f.EndsWith(".json"))
                            .Select(File.ReadAllText)
                            .SelectMany(JsonConvert.DeserializeObject <IEnumerable <JsonCarModel> >)
                            .ToList();

            var addedCities        = new HashSet <string>();
            var addedManufacturers = new HashSet <string>();

            Console.WriteLine("Adding cars");

            var addedCars = 0;
            var db        = new CarsSystemDbContext();

            // OPTIMIZATION?
            // db.Configuration.AutoDetectChangesEnabled = false;
            // db.Configuration.ValidateOnSaveEnabled = false;

            foreach (var car in carsToAdd)
            {
                var cityName = car.Dealer.City;
                if (!addedCities.Contains(cityName))
                {
                    addedCities.Add(cityName);
                    db.Cities.Add(new City()
                    {
                        Name = cityName
                    });
                    db.SaveChanges();
                }

                var dbCityToAdd = db.Cities.FirstOrDefault(c => c.Name == cityName);

                var manufacturer = car.ManufacturerName;
                if (!addedManufacturers.Contains(manufacturer))
                {
                    addedManufacturers.Add(manufacturer);
                    db.Manufacturers.Add(new Manufacturer()
                    {
                        Name = manufacturer
                    });
                    db.SaveChanges();
                }

                var manufacturerToAdd = db.Manufacturers.FirstOrDefault(m => m.Name == manufacturer);

                var dealerToAdd = new Dealer()
                {
                    Name = car.Dealer.Name
                };

                var carToAdd = new Car()
                {
                    Manufacturer     = manufacturerToAdd,
                    Dealer           = dealerToAdd,
                    Model            = car.Model,
                    Price            = car.Price,
                    TransmissionType = (TransmissionType)car.TransmissionType,
                    Year             = car.Year
                };

                db.Cars.Add(carToAdd);

                addedCars++;

                if (addedCars % 100 == 0)
                {
                    Console.Write(".");
                    db.SaveChanges();
                    db.Dispose();
                    db = new CarsSystemDbContext();

                    // OPTIMIZATION?
                    // db.Configuration.AutoDetectChangesEnabled = false;
                    // db.Configuration.ValidateOnSaveEnabled = false;
                }

                if (addedCars % 1000 == 0)
                {
                    Console.WriteLine(addedCars + " ");
                }
            }
            db.SaveChanges();

            sw.Stop();
            Console.WriteLine(sw.Elapsed);
        }