コード例 #1
0
        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());
        }
コード例 #2
0
        /*
         * 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);
        }
コード例 #3
0
        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();
        }
コード例 #4
0
        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();
        }