public static void CreateReports(ISqlServerDb sqlServerDatabase, XmlSerializer xmlSerializer, DirectoryInfo destinationDir) { var allReports = sqlServerDatabase .SalesReports .All() .Select(r => new SalesReport() { Id = r.Id, Sales = r.Sales.Select(s => new Sale() { Id = s.Id, Employee = s.Employee.Name, SaleDate = s.SaleDate, Shop = s.Shop.Name, TotalValue = s.TotalValue }) .ToList() }) .ToList(); var xmlWriterSettings = new XmlWriterSettings(); xmlWriterSettings.Indent = true; foreach (var report in allReports) { string fileName = $"{destinationDir}\\{report.Id}.xml"; using (var writer = XmlWriter.Create(fileName, xmlWriterSettings)) { xmlSerializer.Serialize(writer, report); } } }
public void TransferToSqlServer(IMongoDatabase mongoDataBase, ISqlServerDb sqlServerDatabase) { this.TransferDisplays(mongoDataBase, sqlServerDatabase); this.TransferBatteries(mongoDataBase, sqlServerDatabase); this.TransferProcessors(mongoDataBase, sqlServerDatabase); this.TransferMobileDevices(mongoDataBase, sqlServerDatabase); }
private static Sale CreateSale(DataRow row, ISqlServerDb db) { string str = row["ShopId"].ToString(); var shopId = Guid.Parse(row["ShopId"].ToString()); var shop = db.Shops.All().FirstOrDefault(s => s.Id == shopId); var productId = Guid.Parse(row["ProductId"].ToString()); var product = db.MobileDevices.All().FirstOrDefault(d => d.Id == productId); var employeeId = Guid.Parse(row["ResponsibleEmploeeId"].ToString()); var employee = db.Employees.All().FirstOrDefault(e => e.Id == employeeId); var saleDate = DateTime.Parse(row["DateTime"].ToString()); var quantity = int.Parse(row["Quantity"].ToString()); var totalValue = int.Parse(row["TotalValue"].ToString()); var currency = (CurrencyType)Enum.Parse(typeof(CurrencyType), row["Currency"].ToString()); var sale = new Sale { ShopId = shopId, Shop = shop, ProductId = productId, Product = product, EmployeeId = employeeId, Employee = employee, SaleDate = saleDate, Quantity = quantity, TotalValue = totalValue, Currency = currency }; return(sale); }
private static void TraverseDirectory(DirectoryInfo directory, ISqlServerDb db) { DirectoryInfo[] childDirectories = directory.GetDirectories(); foreach (DirectoryInfo dir in childDirectories) { TraverseDirectory(dir, db); } FileInfo[] files = directory.GetFiles(); foreach (var file in files) { DataTable data = ReadFile(file.FullName); SalesReport report = new SalesReport(); foreach (DataRow row in data.Rows) { Sale sale = CreateSale(row, db); db.Sales.Add(sale); sale.SalesReport = report; sale.SalesReportId = report.Id; report.Sales.Add(sale); } db.SalesReports.Add(report); db.SaveChanges(); } }
public static void ImportReports(DirectoryInfo rootDirectory, ISqlServerDb db) { string nullRootDirectoryMessage = string.Format(NullObjectMessage, "Excel root directory"); string nullDatabaseMessage = string.Format(NullObjectMessage, "Database"); ValidateIfObjectIsNull(rootDirectory, nullRootDirectoryMessage); ValidateIfObjectIsNull(db, nullDatabaseMessage); TraverseDirectory(rootDirectory, db); }
private void TransferProcessors(IMongoDatabase mongoDatabse, ISqlServerDb sqlServerDatabase) { var processorsCollection = mongoDatabse.GetCollection <Processor>("processors"); var mongoProcessors = processorsCollection.Find(b => true).ToList(); var processorsTable = sqlServerDatabase.Processors; foreach (var processor in mongoProcessors) { var newProcessor = this.mssqlModelsFactory .CreateProcessor(processor.ClockSpeed, processor.CacheMemory); processorsTable.Add(newProcessor); } sqlServerDatabase.SaveChanges(); }
private void TransferBatteries(IMongoDatabase mongoDatabse, ISqlServerDb sqlServerDatabase) { var batteriesCollection = mongoDatabse.GetCollection <Battery>("batteries"); var mongoBatteries = batteriesCollection.Find(b => true).ToList(); var batteriesTable = sqlServerDatabase.Batteries; foreach (var battery in mongoBatteries) { var newBattery = this.mssqlModelsFactory .CreateBattery(battery.Type, battery.Capacity); batteriesTable.Add(newBattery); } sqlServerDatabase.SaveChanges(); }
private void TransferDisplays(IMongoDatabase mongoDatabse, ISqlServerDb sqlServerDatabase) { var displaysCollection = mongoDatabse.GetCollection <Display>("displays"); var mongoDisplays = displaysCollection.Find(d => true).ToList(); var displaysTable = sqlServerDatabase.Displays; foreach (var display in mongoDisplays) { var newDisplay = this.mssqlModelsFactory .CreateDisplay(display.Type, display.Size, display.Resolution); displaysTable.Add(newDisplay); } sqlServerDatabase.SaveChanges(); }
public static void SeedDatabase(ISqlServerDb sqlServerDatabase, MySqlDb databaseToSeed) { var allReports = sqlServerDatabase .SalesReports .All() .Select(r => r.Sales.Select(s => new SalesReport() { Employee = s.Employee.Name, Product = s.Product.Model, Shop = s.Shop.Name, Date = s.SaleDate, TotalValue = s.TotalValue })) .SelectMany(x => x) .ToList(); databaseToSeed.SalesRepository.AddMany(allReports); databaseToSeed.SalesRepository.SaveChanges(); }
private void TransferMobileDevices(IMongoDatabase mongoDatabse, ISqlServerDb sqlServerDatabase) { var devicesCollection = mongoDatabse.GetCollection <MobileDevice>("mobileDevices"); var mongoDevices = devicesCollection.Find(b => true).ToList(); var devicesTable = sqlServerDatabase.MobileDevices; foreach (var device in mongoDevices) { var newDevice = this.mssqlModelsFactory .CreateMobileDevice( device.Brand, device.Model, device.Display, device.Battery, device.Processor); devicesTable.Add(newDevice); } sqlServerDatabase.SaveChanges(); }
public static void CreateReports(ISqlServerDb sqlServerDatabase, DirectoryInfo destinationDir) { string nullDatabaseMessage = string.Format(NullObjectMessage, "Database"); string nullDestinationDirectoryMessage = string.Format(NullObjectMessage, "Destination folder"); ValidateIfObjectIsNull(sqlServerDatabase, nullDatabaseMessage); ValidateIfObjectIsNull(destinationDir, nullDestinationDirectoryMessage); var allReports = sqlServerDatabase .SalesReports .All() .Select(r => new { Id = r.Id, Sales = r.Sales.Select(s => new { Employee = s.Employee.Name, SaleDate = s.SaleDate, ShopName = s.Shop.Name, Product = (Brand)s.Product.Brand, TotalValue = s.TotalValue }) .ToList() }) .ToList(); foreach (var report in allReports) { string fileName = $"{destinationDir}\\{report.Id}.json"; var jsonObject = JsonConvert.SerializeObject(report); using (var writer = new StreamWriter(fileName)) { writer.WriteLine(jsonObject); } } }
protected XmlImporter(ISqlServerDb sqlServerDatabase, IMongoDatabase mongoData, XmlSerializer xmlSerializer) { this.SqlServerDatabase = sqlServerDatabase; this.MongoDatabase = mongoData; this.XmlSerializer = xmlSerializer; }
public MsSqlModelsFactory(ISqlServerDb db) { this.db = db; }
public PdfReporter(ISqlServerDb database) { this.database = database; }
public MobileDeviceXmlImporter(ISqlServerDb sqlServerData, IMongoDatabase mongoData, XmlSerializer serializer) : base(sqlServerData, mongoData, serializer) { this.mobileDeviceFactory = new MsSqlModelsFactory(sqlServerData); }
public DataAccessLayer(ISqlServerDb sqlServer) { _sql = sqlServer; }