public int GetEarliestStart(ProductionDomainContext kpiContext, SimulationWorkschedule simulationWorkschedule, SimulationType simulationType, int simulationId, List <SimulationWorkschedule> schedules = null) { if (simulationType == SimulationType.Central) { var orderId = simulationWorkschedule.OrderId.Replace("[", "").Replace("]", ""); var start = kpiContext.SimulationWorkschedules .Where(x => x.SimulationConfigurationId == simulationId && x.SimulationType == simulationType) .Where(a => a.OrderId.Equals("[" + orderId.ToString() + ",") || a.OrderId.Equals("," + orderId.ToString() + "]") || a.OrderId.Equals("[" + orderId.ToString() + "]") || a.OrderId.Equals("," + orderId.ToString() + ",")).Min(b => b.Start); return(start); } var children = new List <SimulationWorkschedule>(); children = schedules.Where(x => x.SimulationConfigurationId == simulationId && x.SimulationType == simulationType).Where(a => a.ParentId.Equals(simulationWorkschedule.ProductionOrderId.ToString())).ToList(); if (!children.Any()) { return(simulationWorkschedule.Start); } var startTimes = children.Select(child => GetEarliestStart(kpiContext, child, simulationType, simulationId, schedules)).ToList(); return(startTimes.Min()); }
/* * protected override void OnModelCreating(ModelBuilder modelBuilder) * { * base.OnModelCreating(modelBuilder); * /* * modelBuilder.Entity<ArticleType>().Property(p => p.Id).ValueGeneratedNever(); * modelBuilder.Entity<Article>().Property(p => p.Id).ValueGeneratedNever(); * modelBuilder.Entity<ArticleBom>().Property(p => p.Id).ValueGeneratedNever(); * modelBuilder.Entity<ArticleToBusinessPartner>().Property(p => p.Id).ValueGeneratedNever(); * modelBuilder.Entity<BusinessPartner>().Property(p => p.Id).ValueGeneratedNever(); * modelBuilder.Entity<DemandToProvider>().Property(p => p.Id).ValueGeneratedNever(); * modelBuilder.Entity<Kpi>().Property(p => p.Id).ValueGeneratedNever(); * modelBuilder.Entity<Machine>().Property(p => p.Id).ValueGeneratedNever(); * modelBuilder.Entity<MachineTool>().Property(p => p.Id).ValueGeneratedNever(); * modelBuilder.Entity<MachineGroup>().Property(p => p.Id).ValueGeneratedNever(); * modelBuilder.Entity<Order>().Property(p => p.Id).ValueGeneratedNever(); * modelBuilder.Entity<OrderPart>().Property(p => p.Id).ValueGeneratedNever(); * modelBuilder.Entity<ProductionOrder>().Property(p => p.Id).ValueGeneratedNever(); * modelBuilder.Entity<ProductionOrderBom>().Property(p => p.Id).ValueGeneratedNever(); * modelBuilder.Entity<ProductionOrderWorkSchedule>().Property(p => p.Id).ValueGeneratedNever(); * modelBuilder.Entity<Purchase>().Property(p => p.Id).ValueGeneratedNever(); * modelBuilder.Entity<PurchasePart>().Property(p => p.Id).ValueGeneratedNever(); * modelBuilder.Entity<Stock>().Property(p => p.Id).ValueGeneratedNever(); * modelBuilder.Entity<Unit>().Property(p => p.Id).ValueGeneratedNever(); * modelBuilder.Entity<WorkSchedule>().Property(p => p.Id).ValueGeneratedNever(); * } */ public static ProductionDomainContext CreateInMemoryContext() { // In-memory database only exists while the connection is open var connectionStringBuilder = new SqliteConnectionStringBuilder { DataSource = ":memory:" }; var connection = new SqliteConnection(connectionStringBuilder.ToString()); // create OptionsBuilder with InMemmory Context var builder = new DbContextOptionsBuilder <MasterDBContext>(); builder.UseSqlite(connection); var c = new ProductionDomainContext(builder.Options); c.Database.OpenConnection(); c.Database.EnsureCreated(); return(c); }
public static void SaveData(ProductionDomainContext source, ProductionDomainContext target) { foreach (var item in source.Kpis) { target.Kpis.Add(item.CopyProperties()); } target.SaveChanges(); foreach (var item in source.SimulationWorkschedules) { target.SimulationWorkschedules.Add(item.CopyProperties()); } target.SaveChanges(); foreach (var item in source.StockExchanges) { target.StockExchanges.Add(item.CopyProperties()); } target.SaveChanges(); }
public static void LoadData(ProductionDomainContext source, ProductionDomainContext target) { foreach (var item in source.ArticleTypes) { target.ArticleTypes.Add(item.CopyProperties()); } target.SaveChanges(); foreach (var item in source.Units) { target.Units.Add(item.CopyProperties()); } target.SaveChanges(); foreach (var item in source.MachineGroups) { target.MachineGroups.Add(item.CopyProperties()); } target.SaveChanges(); foreach (var item in source.Machines) { target.Machines.Add(item.CopyProperties()); } target.SaveChanges(); foreach (var item in source.MachineTools) { target.MachineTools.Add(item.CopyProperties()); } target.SaveChanges(); foreach (var item in source.Articles) { target.Articles.Add(item.CopyProperties()); } target.SaveChanges(); foreach (var item in source.Stocks) { target.Stocks.Add(item.CopyProperties()); } target.SaveChanges(); foreach (var item in source.WorkSchedules) { target.WorkSchedules.Add(item.CopyProperties()); } target.SaveChanges(); foreach (var item in source.ArticleBoms) { target.ArticleBoms.Add(item.CopyProperties()); } target.SaveChanges(); foreach (var item in source.BusinessPartners) { target.BusinessPartners.Add(item.CopyProperties()); } target.SaveChanges(); foreach (var item in source.ArticleToBusinessPartners) { target.ArticleToBusinessPartners.Add(item.CopyProperties()); } target.SaveChanges(); foreach (var item in source.Orders) { target.Orders.Add(item.CopyProperties()); } target.SaveChanges(); foreach (var item in source.OrderParts) { target.OrderParts.Add(item.CopyProperties()); } target.SaveChanges(); foreach (var item in source.SimulationConfigurations) { target.SimulationConfigurations.Add(item.CopyProperties()); } target.SaveChanges(); }
public static void LoadData(ProductionDomainContext source, ProductionDomainContext target) { foreach (var item in source.ArticleTypes) { target.ArticleTypes.Add(entity: item.CopyProperties()); } target.SaveChanges(); foreach (var item in source.Units) { target.Units.Add(entity: item.CopyProperties()); } target.SaveChanges(); foreach (var item in source.ResourceSkills) { target.ResourceSkills.Add(entity: item.CopyProperties()); } target.SaveChanges(); foreach (var item in source.ResourceTools) { target.ResourceTools.Add(entity: item.CopyProperties()); } target.SaveChanges(); foreach (var item in source.Resources) { target.Resources.Add(entity: item.CopyProperties()); } target.SaveChanges(); foreach (var item in source.ResourceSetups) { target.ResourceSetups.Add(entity: item.CopyProperties()); } target.SaveChanges(); foreach (var item in source.Articles) { target.Articles.Add(entity: item.CopyProperties()); } target.SaveChanges(); foreach (var item in source.Stocks) { target.Stocks.Add(entity: item.CopyProperties()); } target.SaveChanges(); foreach (var item in source.Operations) { target.Operations.Add(entity: item.CopyProperties()); } target.SaveChanges(); foreach (var item in source.ArticleBoms) { target.ArticleBoms.Add(entity: item.CopyProperties()); } target.SaveChanges(); foreach (var item in source.BusinessPartners) { target.BusinessPartners.Add(entity: item.CopyProperties()); } target.SaveChanges(); foreach (var item in source.ArticleToBusinessPartners) { target.ArticleToBusinessPartners.Add(entity: item.CopyProperties()); } target.SaveChanges(); foreach (var item in source.CustomerOrders) { target.CustomerOrders.Add(entity: item.CopyProperties()); } target.SaveChanges(); foreach (var item in source.CustomerOrderParts) { target.CustomerOrderParts.Add(entity: item.CopyProperties()); } target.SaveChanges(); foreach (var item in source.ProductionOrders) { target.ProductionOrders.Add(entity: item.CopyProperties()); } target.SaveChanges(); }