public void ExtractCars(ICollection <Car> cars, ICarsFactoryDbContext ctx)
        {
            try
            {
                using (ctx = new CarsFactoryDbContext())
                {
                    foreach (var car in cars)
                    {
                        if (!ctx.Cars.Any(c => c.Id == car.Id))
                        {
                            ctx.Cars.Add(car);
                        }
                    }

                    ctx.SaveChanges();
                }
            }
            catch (DbUpdateException ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
        public void ExtractDealers(ICollection <Dealer> dealers, ICarsFactoryDbContext ctx)
        {
            try
            {
                using (ctx = new CarsFactoryDbContext())
                {
                    foreach (var dealer in dealers)
                    {
                        if (!ctx.Dealers.Any(m => m.Id == dealer.Id))
                        {
                            ctx.Dealers.Add(dealer);
                        }
                    }

                    ctx.SaveChanges();
                }
            }
            catch (DbUpdateException ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
        public void ExtractModels(ICollection <Model> models, ICarsFactoryDbContext ctx)
        {
            try
            {
                using (ctx = new CarsFactoryDbContext())
                {
                    foreach (var model in models)
                    {
                        if (!ctx.Models.Any(m => m.Id == model.Id))
                        {
                            ctx.Models.Add(model);
                        }
                    }

                    ctx.SaveChanges();
                }
            }
            catch (DbUpdateException ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
        public void ExtractEngines(ICollection <Engine> engines, ICarsFactoryDbContext ctx)
        {
            try
            {
                using (ctx = new CarsFactoryDbContext())
                {
                    foreach (var engine in engines)
                    {
                        if (!ctx.Engines.Any(e => e.Id == engine.Id))
                        {
                            ctx.Engines.Add(engine);
                        }
                    }

                    ctx.SaveChanges();
                }
            }
            catch (DbUpdateException ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
        public void SaveAllDataFromZip(IMsSqlRepository repo, ICarsFactoryDbContext ctx, string filePath)
        {
            var zip = ZipFile.Open(filePath, ZipArchiveMode.Read);

            using (zip)
            {
                var entries                = ExcelFromZip.GetFileEntries(zip);
                var currentTownEntries     = ExcelFromZip.GetCurrentEntries(entries, "Towns.xls");
                var currentPlatformEntries = ExcelFromZip.GetCurrentEntries(entries, "Platforms.xls");
                var currentEngineEntries   = ExcelFromZip.GetCurrentEntries(entries, "Engines.xls");
                var currentModelEntries    = ExcelFromZip.GetCurrentEntries(entries, "Models.xls");
                var currentCarEntries      = ExcelFromZip.GetCurrentEntries(entries, "Cars.xls");
                var towns     = ExcelFromZip.GetAllTowns(new List <Town>(), currentTownEntries);
                var platforms = ExcelFromZip.GetAllPlatforms(new List <Platform>(), currentPlatformEntries);
                var engines   = ExcelFromZip.GetAllEngines(new List <Engine>(), currentEngineEntries);
                var models    = ExcelFromZip.GetAllModels(new List <Model>(), currentModelEntries);
                var cars      = ExcelFromZip.GetAllCars(new List <Car>(), currentCarEntries);
                repo.ExtractTowns(towns, ctx);
                repo.ExtractPlatforms(platforms, ctx);
                repo.ExtractEngines(engines, ctx);
                repo.ExtractModels(models, ctx);
                repo.ExtractCars(cars, ctx);
            }
        }
Exemplo n.º 6
0
        public async Task SaveAllMongoData(IMongoDbRepository repo, IMsSqlRepository mssqlRepo, ICarsFactoryDbContext ctx)
        {
            var towns         = (await repo.GetTownsData()).ToList();
            var platforms     = (await repo.GetPlatformsData()).ToList();
            var orders        = (await repo.GetOrdersData()).ToList();
            var models        = (await repo.GetModelsData()).ToList();
            var manufacturers = (await repo.GetManufacturersData()).ToList();
            var engines       = (await repo.GetEnginesData()).ToList();
            var dealers       = (await repo.GetDealersData()).ToList();
            var cars          = (await repo.GetCarsData()).ToList();


            using (ctx = new CarsFactoryDbContext())
            {
                mssqlRepo.ExtractTowns(towns, ctx);
                mssqlRepo.ExtractPlatforms(platforms, ctx);
                mssqlRepo.ExtractOrders(orders, ctx);
                mssqlRepo.ExtractManufacturers(manufacturers, ctx);
                mssqlRepo.ExtractEngines(engines, ctx);
                mssqlRepo.ExtractModels(models, ctx);
                mssqlRepo.ExtractCars(cars, ctx);
                mssqlRepo.ExtractDealers(dealers, ctx);
                await ctx.SaveChangesAsync();
            }

            Console.WriteLine(cars.Count);
            Console.WriteLine(models.Count);
            Console.WriteLine(manufacturers.Count);
            Console.WriteLine(orders.Count);
            Console.WriteLine(platforms.Count);
            Console.WriteLine(engines.Count);
            Console.WriteLine(dealers.Count);
            Console.WriteLine(towns.Count);
        }