private void VerifyEveryMachineHasOnlyOneOperationAtAnyTime(IAggregator aggregator)
        {
            IDbMasterDataCache dbMasterDataCache =
                ZppConfiguration.CacheManager.GetMasterDataCache();

            foreach (var resource in dbMasterDataCache.ResourceGetAll())
            {
                List <ProductionOrderOperation> operations =
                    aggregator.GetAllOperationsOnResource(resource.GetValue());
                T_ProductionOrderOperation lastOperation = null;
                foreach (var operation in operations.OrderBy(x => x.GetValue().Start))
                {
                    T_ProductionOrderOperation tOperation = operation.GetValue();
                    if (lastOperation == null)
                    {
                        lastOperation = operation.GetValue();
                    }
                    else
                    {
                        Assert.True(lastOperation.End <= tOperation.Start,
                                    $"Operations are overlapping: '{lastOperation}' and {tOperation}'.");
                    }
                }
            }
        }
Ejemplo n.º 2
0
        public List <Resource> GetResourcesByResourceSkillId(Id resourceSkillId)
        {
            var setupIds = _dbMasterDataCache.M_ResourceSetupGetAll()
                           .Where(x => x.ResourceSkillId.Equals(resourceSkillId.GetValue()))
                           .Select(i => i.ResourceId);
            var resources = _dbMasterDataCache.ResourceGetAll()
                            .Where(x => setupIds.Contains(x.GetValue().Id)).ToList();

            return(resources);
        }