public static void Main() { var context = new FactoryDbContext(); context.Database.CreateIfNotExists(); var mongoData = GetDataFromMongoDb(Constants.DataName, Constants.CollectionName); var reports = GetReportsDataFromExcel(Constants.ZipFilePath, Constants.UnzipedFilesPath); var productData = ProductMigrator.Instance.GetProductData(mongoData, context); PopulateSQLDbWithProducts(productData, context); var reportsData = ReportMigrator.Instance.GetReports(reports); PopulateSqlDbWithReports(reportsData, context); ImportXmlToMongoDb(); ImportXMLToSqlServer(); GenerateXMLReport(context, Constants.XmlReportsPath); GeneratePDFReport(context, Constants.PdfReportsPath); GenerateJSONReports(context, Constants.JsonReportsPath); var mySqlContext = new FactoryMySqlDbContext(); mySqlContext.UpdateDatabase(); PopulateMySQLDataBase(context, mySqlContext); // var expensesPerModel = GetDataFromSQLite(); // var incomesPerModel = GetIncomePerModel(mySqlContext); // CreateExcelYearlyFinancialResult(expensesPerModel, incomesPerModel); }
public static Guid?GetProjectId(string projectNumber, string fullPath) { if (_excludedPath.Any(x => x.Equals(fullPath, StringComparison.InvariantCultureIgnoreCase))) { return(Guid.Empty); } if (_projects == null) { using (var context = FactoryDbContext.Create()) { _projects = context.Projects.Select(x => new { x.Id, x.ProjectNumber }).ToDictionary(x => x.ProjectNumber.Trim(), x => x.Id); } } if (_projects.ContainsKey(projectNumber)) { return(_projects[projectNumber]); } foreach (var x in _replaceEnd) { var match = _projects.Where(p => ReplaceEnd(p.Key, x).Equals(ReplaceEnd(projectNumber, x), StringComparison.InvariantCultureIgnoreCase)).Select(p => p.Value).FirstOrDefault(); if (match != Guid.Empty) { return(match); } } ; return(null); }
protected override int Execute() { ILogger logger = GetLogger(); Hashtable args = GetArguments(); string defaultHost = Environment.GetEnvironmentVariable("ONIX_ERP_DB_HOST"); string defaultPassword = Environment.GetEnvironmentVariable("ONIX_ERP_DB_PASSWORD"); string user = Environment.GetEnvironmentVariable("ONIX_ERP_DB_USER"); string dbname = Environment.GetEnvironmentVariable("ONIX_ERP_DB_NAME"); string host = GetOptionValue(args, "host", defaultHost); int port = Int32.Parse(GetOptionValue(args, "port", "5432")); string db = GetOptionValue(args, "database", dbname);; string uname = GetOptionValue(args, "user", user); string passwd = GetOptionValue(args, "password", defaultPassword); string provider = GetOptionValue(args, "provider", "pgsql"); string msg = "Migrating data : host=[{0}] port=[{1}] db=[{2}] provider=[{3}]..."; LogUtils.LogInformation(logger, msg, host, port, db, provider); DbCredential crd = new DbCredential(host, port, db, uname, passwd); var ctx = (OnixErpDbContextPgSql)FactoryDbContext.CreateDbContextObject("OnixErpDbContextPgSql", crd); ctx.Database.Migrate(); LogUtils.LogInformation(logger, "Migrating done"); return(0); }
public static void Test() { var builder = new DbContextOptionsBuilder <FactoryDbContext>(); builder.UseInMemoryDatabase(Guid.NewGuid().ToString()); var options = builder.Options; var db = new FactoryDbContext(options); var productsRepository = new Repository <Product>(db); var product = new Product { Name = "Test PP", ManufacturerId = 1, Price = 9.99m }; var id = productsRepository.Create(product); product.Price = 19m; productsRepository.Update(product); var productAfterChanges = productsRepository.Get(id); Console.WriteLine($"Id: {productAfterChanges.Id}, " + $"Name: {productAfterChanges.Name}, " + $"Price: {productAfterChanges.Price}"); var productToDelete = new Product { Name = "Test PP 2", ManufacturerId = 1, Price = 9.99m }; var idToDelete = productsRepository.Create(productToDelete); var countBeforeDelete = productsRepository.Get().Count(); productsRepository.Delete(idToDelete); var countAfter = productsRepository.Get().Count(); Console.WriteLine($"Before: {countBeforeDelete}, after: {countAfter}"); }
private static void ImportXMLToSqlServer() { Console.WriteLine("Importing Data from Xml to Sql Server..."); var db = new FactoryDbContext(); var collection = FactoryXmlImporter.ImportSpaceships(Constants.XmlDataToImport); foreach (var spaceship in collection) { var sp = new SpaceshipMission { SpaceshipName = spaceship.SpaceshipName, Captain = spaceship.Captain, HomePlanet = spaceship.HomePlanet, NumberOfCrewMembers = spaceship.NumberOfCrewMembers, MissionType = spaceship.MissionType, Commision = spaceship.Commission, MissionStatus = spaceship.MissionStatus }; db.SpaceshipMissions.Add(sp); db.SaveChanges(); db = new FactoryDbContext(); } db.SaveChanges(); }
private static void Init() { var serviceCollection = new ServiceCollection(); serviceCollection.AddLogging(builder => builder.AddSerilog()); var serviceProvider = serviceCollection.BuildServiceProvider(); Log.Logger = new LoggerConfiguration() .Enrich.FromLogContext() .WriteTo.Console() .CreateLogger(); var loggerFactory = serviceProvider.GetService <ILoggerFactory>(); FactoryApplication.SetLoggerFactory(loggerFactory); FactoryBusinessOperation.ClearRegisteredItems(); FactoryBusinessOperation.RegisterBusinessOperations(BusinessErpOperations.GetInstance().ExportedServicesList()); string host = Environment.GetEnvironmentVariable("ONIX_ERP_DB_HOST"); string dbname = Environment.GetEnvironmentVariable("ONIX_ERP_DB_NAME"); string user = Environment.GetEnvironmentVariable("ONIX_ERP_DB_USER"); string password = Environment.GetEnvironmentVariable("ONIX_ERP_DB_PASSWORD"); DbCredential crd = new DbCredential(host, 5432, dbname, user, password, "pgsql"); OnixErpDbContext ctx = new OnixErpDbContext(crd); ctx.SetLoggerFactory(loggerFactory); FactoryBusinessOperation.SetDatabaseContext(ctx); FactoryBusinessOperation.SetLoggerFactory(loggerFactory); Assembly asm = Assembly.GetExecutingAssembly(); FactoryDbContext.RegisterDbContext(asm, "OnixErpDbContextPgSql", "OnixBusinessErpApp.OnixErpDbContextPgSql"); }
private static void GeneratePDFReport(FactoryDbContext context, string resultFilePath) { Console.WriteLine("Generating Pdf Reports..."); var salesReports = context.Reports.OrderBy(r => r.Date).ToList(); var pdfWriter = new PdfReportsWriter(salesReports); pdfWriter.WriteAggregatedSalesReportsToPdf(resultFilePath); }
public static void Execute() { var manager = DocumentManagerProvider.Get() as SharepointDocumentManager; if (manager != null && manager.SharepointUseInternalTagFolder) { using (var db = FactoryDbContext.Create()) { var sql = @"WITH Folders (Id, Name, FullPath, EntityId, ReferenceId, InternalTag, IsProcessed, Level) AS ( SELECT F.Id, F.Name, F.FullPath, EF.EntityId, EF.ReferenceId, CAST(InternalId AS NVARCHAR(MAX)) AS InternalTag, EF.IsProcessed, 0 AS Level FROM Folder F INNER JOIN EntityFolder EF ON F.Id = EF.Id WHERE F.ParentId IS NULL UNION ALL SELECT F.Id, F.Name, F.FullPath, EF.EntityId, EF.ReferenceId, CAST(F.InternalId AS NVARCHAR(MAX)) AS InternalTag, EF.IsProcessed, P.Level + 1 FROM Folder F INNER JOIN Folders P ON F.ParentId = P.Id INNER JOIN EntityFolder EF ON F.Id = EF.Id ) SELECT Id, Name, FullPath, EntityId, ReferenceId, InternalTag AS Tag, IsProcessed FROM Folders ORDER BY EntityId, ReferenceId, Level DESC;"; var folders = db.Database.SqlQuery <FolderImport>(sql).ToList().Where(x => !x.IsProcessed).ToList(); var errors = new List <string>(); var i = 0; var count = folders.Count; folders.ForEach(folder => { try { manager.RenameFolder(folder.EntityId, folder.ReferenceId, folder.Tag, folder.Name, folder.FullPath.HasValue() ? folder.FullPath : folder.Name, db); db.Database.ExecuteSqlCommand("UPDATE EntityFolder SET IsProcessed = 1 WHERE Id = {0}", folder.Id); i++; } catch (Exception ex) { errors.Add(string.Format("Id: {0}; Name: {1}; FullPath: {2}", folder.Id, folder.Name, folder.FullPath) + Environment.NewLine + ex.Message); Console.WriteLine(ex.Message); } }); if (errors.HasValue()) { var message = errors.JoinBy(Environment.NewLine); MailUtilities.SendMail(new List <string>() { ConfigurationManager.AppSettings["AlertRecipient"] }, "ERROR Rename Folder SharePoint", message); } } } }
private static void GenerateXMLReport(FactoryDbContext context, string resultFilePath) { Console.WriteLine("Generating Xml Reports..."); var shipModels = context.Spaceships.Select(sh => sh.Model).ToList(); var reports = context.Reports.OrderBy(r => r.Date).ToList(); var xmlWriter = new XmlReportsWriter(shipModels, reports); xmlWriter.WriteReportsToXml(resultFilePath); }
private static void GenerateJSONReports(FactoryDbContext context, string resultFilesPath) { Console.WriteLine("Generating Json Reports..."); var spaceships = context.Spaceships.ToList(); var sales = context.Sales.ToList(); var reports = new List <ProductReport>(); var jsonWriter = new JsonReportsHandler(spaceships, sales, reports); jsonWriter.WriteReportsToJson(resultFilesPath); }
public void Setup() { var builder = new DbContextOptionsBuilder <FactoryDbContext>(); builder.UseInMemoryDatabase(Guid.NewGuid().ToString()); var options = builder.Options; _db = new FactoryDbContext(options); _manufacturersRepository = new ManufacturersRepository(_db); }
private static void Init() { var container = UnityContainerProvider.Initialize(); ModuleLoader.Initialize(container); var catalog = new ModuleCatalog(); container.RegisterInstance <IModuleCatalog>(catalog, new ContainerControlledLifetimeManager()); ModuleLoader.Run(container); FactoryDbContext.InitDatabase(false); }
public static Guid GetProjectProgramId(string programName) { if (_programs == null) { _programs = new Dictionary <string, Guid>(); using (var context = FactoryDbContext.Create()) { var program = context.Lookups.Include("Items.Descriptions").Where(x => x.Tag == "LST_PROJECT_PROGRAM").FirstOrDefault(); if (program != null) { _programs = program.Items.Select(x => new { x.Id, x.Descriptions.First(d => d.CultureId == Constants.Culture.Francais).Text }).ToDictionary(x => x.Text, x => x.Id); } } } return(_programs.First(x => x.Key.ToUpper().Contains(programName.ToUpper())).Value); }
private static void PopulateMySQLDataBase(FactoryDbContext sqlContext, FactoryMySqlDbContext mySqlContext) { Console.WriteLine("Populating MySql Database..."); var spaceships = sqlContext.Spaceships.ToList(); var sales = sqlContext.Sales.ToList(); var reports = new List <ProductReport>(); var jsonHandler = new JsonReportsHandler(spaceships, sales, reports); var jsonData = jsonHandler.GetReportsInJsonFormat(); if (mySqlContext.ProductsReports.Count() == 0) { foreach (var json in jsonData) { var report = JsonConvert.DeserializeObject <MySqlReport>(json); mySqlContext.Add(report); } mySqlContext.SaveChanges(); } }
private void UpdateProjectProgram(Guid projectId, string programName) { var projectNeedsToBeUpdated = false; var programId = Cache.GetProjectProgramId(programName); using (var context = FactoryDbContext.Create()) { projectNeedsToBeUpdated = context.Projects.Any(x => x.Id == projectId && x.ProgramId != programId); } if (projectNeedsToBeUpdated) { var project = Project.Get(projectId); project.ProgramId = programId; project.CurrentUserId = Constants.User.Admin; project.IsModifiedByImport = true; project.Save(); CLLogger.LogVerbose(string.Format("The project '{0}' program as been updated to '{1}'", project.Name, programName)); project = null; } }
public BackUpServiceDB(FactoryDbContext context) { this.context = context; }
public ReportServiceDB(FactoryDbContext context) { this.context = context; }
public TankRepository(FactoryDbContext context) { this._context = context; }
private void ProcessFile(FileInfo file, Guid projectId, string comboxPath) { CLLogger.LogVerbose(string.Format("The file '{0}' --> '{2}' will be associated to project '{1}'", file.FullName.Substring(_rootFolder.Length), Cache.GetProjectName(projectId), comboxPath)); totalSize += (file.Length * 1d) / 1024 / 1024; var cleanPath = comboxPath.TrimEnd('\\').Split('\\'); Guid?folderId = null; using (var context = FactoryDbContext.Create()) { for (var i = 0; i < cleanPath.Length; i++) { var currentFolder = CleanStringForWeb(cleanPath[i]); var existingFolderId = context.EntityFolders.Where(x => x.ReferenceId == projectId && x.ParentId == folderId && x.Name == currentFolder).Select(x => x.Id).FirstOrDefault(); if (existingFolderId == Guid.Empty) { var folder = EntityFolder.New(); folder.CurrentUserId = Constants.User.Admin; folder.Id = Guid.NewGuid(); folder.EntityId = Constants.EntityType.Project; folder.ReferenceId = projectId; folder.ParentId = folderId; folder.Name = currentFolder; folder.Save(); folderId = folder.Id; } else { folderId = existingFolderId; } } } var document = Document.New(); document.ReferenceId = projectId; document.EntityId = Constants.EntityType.Project; document.CurrentUserId = Constants.User.Admin; document.CreatedOn = DateTime.Now; document.LastUpdatedOn = DateTime.Now; document.CreatedById = Constants.User.Admin; document.LastUpdatedById = Constants.User.Admin; document.Id = Guid.NewGuid(); document.FolderId = folderId; document.DocumentTypeId = LookupServices.GetLookupItemIdFromTag("LST_DOCUMENT_TYPE_NOT_CLASSIFIED"); document.Filename = CleanStringForWeb(file.Name).Replace("..", "."); document.FileExtension = file.Extension; document.FileContentType = ContentTypes.GetContentTypeFromFileExtension(document.FileExtension); try { using (var stream = file.OpenRead()) { document.Insert <JMSL.Framework.DAL.Entities.Document, Document>(DocumentManagerProvider.Get(), new TransferDocument() { FileName = document.Filename, FileLength = file.Length, FileByteStream = stream }); } } catch (Exception ex) { CLLogger.LogError(ex); } }
public UnitRepository(FactoryDbContext context) { this._context = context; }
public ICollection <Spaceship> GetProductData(ICollection <SpaceshipMap> maps, FactoryDbContext context) { var categories = this.GetCategories(maps); context.Categories.AddRange(categories); context.SaveChanges(); var countries = this.GetCountries(maps); context.Countries.AddRange(countries); context.SaveChanges(); var cities = this.GetCities(maps, context.Countries); context.Cities.AddRange(cities); context.SaveChanges(); var partTypes = this.GetPartTypes(maps); context.PartTypes.AddRange(partTypes); context.SaveChanges(); var suppliers = this.GetSuppliers(maps, context.Cities); context.Suppliers.AddRange(suppliers); context.SaveChanges(); var parts = this.GetParts(maps, context.Suppliers, context.PartTypes).ToList(); context.Parts.AddRange(parts); context.SaveChanges(); var products = new Collection <Spaceship>(); foreach (var spaceshipMap in maps) { var existingParts = spaceshipMap.Parts.Select(x => new { Supplier = x.Supplier.Name, x.Name, Part = x.PartType.Name, Price = (decimal)x.Price, x.Quantity }); var spaceshipParts = context.Parts .ToList() .Select(x => new { Supplier = x.Supplier.Name, x.Name, Part = x.PartType.Name, x.Price, x.Quantity }) .Where(x => existingParts.Contains(x)) .Select(x => x.Name); var currentShipParts = context.Parts.Where(x => spaceshipParts.Contains(x.Name)).ToList(); var spaceship = new Spaceship { Category = context.Categories.FirstOrDefault(x => x.Name.Equals(spaceshipMap.Category)), Color = spaceshipMap.Color, Model = spaceshipMap.Model, Price = (decimal)spaceshipMap.Price, Year = spaceshipMap.Year, Parts = currentShipParts }; products.Add(spaceship); } return(products); }
private static void PopulateSQLDbWithProducts(IEnumerable <Spaceship> productData, FactoryDbContext context) { Console.WriteLine("Populating Sql Database with Models..."); context.Spaceships.AddRange(productData); context.SaveChanges(); }
public OrderServiceDB(FactoryDbContext context) { this.context = context; }
public ProductServiceDB(FactoryDbContext context) { this.context = context; }
public ClientMainServiceDB(FactoryDbContext context) { this.context = context; }
public AuthRepository(FactoryDbContext context, IConfiguration config) { _config = config; _context = context; }
public MaterialServiceDB(FactoryDbContext context) { this.context = context; }
private static void PopulateSqlDbWithReports(IEnumerable <Report> reportsForSql, FactoryDbContext context) { Console.WriteLine("Populating Sql Database with Reports..."); context.Reports.AddRange(reportsForSql); context.SaveChanges(); }
public GlobalFactoryService(FactoryDbContext context) { _context = context; }
public ProductRepository(FactoryDbContext db) { this.db = db; }