private void SeedDataFromMongo()
        {
            textWriter.WriteLine("Seeding data from Mongo...");
            string mongoDbConnectionString = Constants.MongoDbConnectionStringLocal;
            string mongoDbDatabaseName     = Constants.MongoDbDatabaseNameLocal;

            using (var dbContext = new DealershipDbContext())
            {
                var data = new DealershipData(dbContext);

                var vehicles     = new DealershipRepository <Vehicle>(dbContext);
                var brands       = new DealershipRepository <Brand>(dbContext);
                var fuels        = new DealershipRepository <Fuel>(dbContext);
                var vehicleTypes = new DealershipRepository <VehicleType>(dbContext);

                var mongoDbSeeder = new MongoDbSeeder(
                    mongoDbConnectionString,
                    mongoDbDatabaseName,
                    data,
                    vehicles,
                    brands,
                    fuels,
                    vehicleTypes
                    );
                if (!mongoDbSeeder.IsDataSeeded())
                {
                    mongoDbSeeder.SeedData();
                }
            }

            textWriter.WriteLine("Mongo data seeded successfully!");
        }
        private void SeedDataFromXml()
        {
            textWriter.WriteLine("Seeding data from XML...");
            var xmlEmployeeReader = new XmlEmployeeReader();

            using (var dbContext = new DealershipDbContext())
            {
                var data = new DealershipData(dbContext);

                var employees = new DealershipRepository <Employee>(dbContext);
                var positions = new DealershipRepository <Position>(dbContext);
                var countries = new DealershipRepository <Country>(dbContext);
                var cities    = new DealershipRepository <City>(dbContext);
                var addresses = new DealershipRepository <Address>(dbContext);
                var shops     = new DealershipRepository <Shop>(dbContext);

                var employeeSeeder = new EmployeeSeeder(data, employees, positions, countries, cities, addresses, shops);

                var employeeSeedUtil = new EmployeeSeedUtil(xmlEmployeeReader, employeeSeeder);

                employeeSeedUtil.Seed();
            }

            textWriter.WriteLine("XML data seeded successfully!");
        }
        private static void ProcessZipFiles()
        {
            using (var dbContext = new DealershipDbContext())
            {
                var data      = new DealershipData(dbContext);
                var employees = new DealershipRepository <Employee>(dbContext);
                var sales     = new DealershipRepository <Sale>(dbContext);
                var vehicles  = new DealershipRepository <Vehicle>(dbContext);
                var shops     = new DealershipRepository <Shop>(dbContext);

                SeedingSQLDBFromZip seedingSQLDBFromZip = new SeedingSQLDBFromZip(data, employees, shops, sales, vehicles);

                var processor = new ZipUnpacker();
                processor.Unpack(Constants.PathToZipFile, Constants.PathToUnzip);

                var          matchingDirectories = Utility.GetDirectoriesByPattern(Constants.PathToUnzippedFiles);
                ReportReader reportReader        = new ReportReader(seedingSQLDBFromZip, data);
                reportReader.ParseExcelData(matchingDirectories);
            }
        }
 public static DealershipRepository GetDealershipRepository(IUnitOfWork unitOfWork)
 {
     var repository = new DealershipRepository();
     repository.UnitOfWork = unitOfWork;
     return repository;
 }