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); }
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 = ""; } } }
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(); }
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) { } }
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); }