コード例 #1
0
        private List <ContainerMaterialsViewModel> GetContainerMaterialsViewModels()
        {
            var recipeMaterials = new List <ContainerMaterialsViewModel>();
            var containers      = ContainersReader.ListContainers();

            foreach (var container in containers)
            {
                if (container.ContainerType?.MaterialType != null)
                {
                    var materialTypeId = container.ContainerType.MaterialType.Id;
                    var materials      =
                        new ObservableCollection <ApiMaterial>(
                            MaterialsReader.ListMaterialsByMaterialTypeId(materialTypeId));
                    materials.Insert(0, new ApiMaterial {
                        Name = "Нет материала"
                    });
                    var comboboxViewModel = new ContainerMaterialsViewModel()
                    {
                        Container   = container,
                        Materials   = materials,
                        SelMaterial = materials.FirstOrDefault(x => container.CurrentMaterial != null && x.Id == container.CurrentMaterial.Id)
                                      ?? materials.First(),
                    };
                    recipeMaterials.Add(comboboxViewModel);
                }
            }

            return(recipeMaterials);
        }
コード例 #2
0
        private void GetMaterials()
        {
            var recipes   = new ObservableCollection <ApiRecipe>(RecipesReader.ListRecipes());
            var selRecipe = recipes.FirstOrDefault(x => x.Id == ViewModelTabl.CurrentSelTask.Recipe.Id);

            _materials  = new ObservableCollection <ApiRecipeMaterial>(selRecipe.RecipeMaterials);
            _containers = new ObservableCollection <ApiContainer>(ContainersReader.ListContainers());

            DosingTask    = new ObservableCollection <ViewDosingTask>();
            _materialTags = new string[_materials.Count, 4];

            for (int i = 0; i < _materials.Count; i++)
            {
                DosingTask.Add(new ViewDosingTask());

                if (_materials[i].Material.Name != null)
                {
                    DosingTask[i].MaterialName = _materials[i].Material.Name;
                }
                else
                {
                    DosingTask[i].MaterialName = "";
                }
            }
        }
コード例 #3
0
 public LoadTaskHandler(TaskQueueItemsService taskQueueItemsService, Logger logger)
 {
     _opcName = NewOpcServer.OpcList.Rbu;
     TaskQueueItemsService = taskQueueItemsService;
     Logger                    = logger;
     ReportsService            = new ReportsService();
     TasksReader               = new TasksReader();
     ContainersReader          = new ContainersReader();
     BatchersReader            = new BatchersReader();
     RecipesReader             = new RecipesReader();
     CommonOpcParametersReader = new CommonOpcParametersReader();
     CreateSubscribe();
 }
コード例 #4
0
        public static void GetContainerMaterial()
        {
            try
            {
                var containers = new ObservableCollection <ApiContainer>(ContainersReader.ListContainers());

                foreach (var item in containers)
                {
                    if (Static.IdСontainerDictionary.ContainsValue(item.Id))
                    {
                        Static.СontainerMaterialDictionary[Static.IdСontainerDictionary.FirstOrDefault(x => x.Value == item.Id).Key] = item.CurrentMaterial != null ? (item.CurrentMaterial.Name != null ? item.CurrentMaterial.Name : "") : "";
                    }
                }
            }
            catch (Exception e)
            {
            }
        }
コード例 #5
0
        private Dictionary <long, ApiRecipeMaterial> CheckMaterials(ApiRecipe recipe)
        {
            var result               = new Dictionary <long, ApiRecipeMaterial>();
            var containers           = ContainersReader.ListContainers();
            var containersDictionary = containers.Where(x => x.CurrentMaterial != null).ToDictionary(x => x.CurrentMaterial.Id);

            foreach (var recipeMaterial in recipe.RecipeMaterials)
            {
                containersDictionary.TryGetValue(recipeMaterial.Material.Id, out var container);
                if (container != null)
                {
                    result.Add(container.Id, recipeMaterial);
                }
                else
                {
                    Logger.Error($"В контейнерах отсутствует материал - {recipeMaterial.Material.Name}");
                    MessageBox.Show($"В контейнерах отсутствует материал - {recipeMaterial.Material.Name}");
                }
            }

            return(result.Count == recipe.RecipeMaterials.Count ? result : null);
        }