Exemplo n.º 1
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 = "";
                }
            }
        }
Exemplo n.º 2
0
        private void UpdateRecipes()
        {
            var recipes = RecipesReader.ListRecipes();

            RecipeGroups = new ObservableCollection <ApiRecipeGroup>(recipes.GroupBy(x => x.Group.Name)
                                                                     .Select(x => new ApiRecipeGroup
            {
                Name    = x.Key,
                Recipes = x.Select(p => p).ToList()
            }).ToList());
        }
Exemplo n.º 3
0
        private void GetTaskToDosing()
        {
            var taskQueueItems = TaskQueueItemsService.ListTaskQueueItems();

            if (taskQueueItems.Any())
            {
                var taskQueueItem = taskQueueItems.OrderBy(x => x.Order).First();
                var task          = TasksReader.GetById(taskQueueItem.Task.Id);
                var recipe        = RecipesReader.GetById(task.Recipe.Id);
                var containers    = CheckMaterials(recipe);
                if (containers != null)
                {
                    var parameters = GetValues(task, recipe, containers);
                    if (parameters != null)
                    {
                        var isOk = LoadValues(parameters);
                        if (isOk)
                        {
                            var taskId = new Dictionary <ApiOpcParameter, string> {
                                { CurrentTaskIdParameter, task.Id.ToString() }
                            };
                            var taskIdLoadOk = LoadValues(taskId);
                            if (taskIdLoadOk)
                            {
                                ReportsService.CreateReport(task);
                                TaskQueueItemsService.Delete(taskQueueItem.Id);
                            }
                            else
                            {
                                Logger.Error("Ошибка записи CurrentTaskId.");
                            }
                        }
                        else
                        {
                            Logger.Error("Ошибка записи параметров.");
                        }
                    }
                    else
                    {
                        Logger.Error("Отсутствуют некоторые параметры.");
                    }
                }
                else
                {
                    Logger.Error("Отсутствуют некоторые материалы в контейнерах.");
                    MessageBox.Show("Отсутствуют некоторые материалы в контейнерах");
                }
            }
            else
            {
                Logger.Error("Отсутствуют задания в очереди.");
            }
        }
Exemplo n.º 4
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();
 }
Exemplo n.º 5
0
        private void GetTask(long id)
        {
            Tasks   = new ObservableCollection <ApiTask>(TasksReader.ListTasks());
            SelTask = Tasks.FirstOrDefault(x => x?.Id == id);
            var recipes   = new ObservableCollection <ApiRecipe>(RecipesReader.ListRecipes());
            var selRecipe = recipes.FirstOrDefault(x => x?.Id == SelTask.Recipe.Id);

            SelTaskGroupName = selRecipe.Group.Name;
            SelTaskName      = SelTask.Id + " - " + SelTask.Recipe.Name;
            var ending = SelTask.BatchesAmount == 1 ? "замес" : SelTask.BatchesAmount > 4 ? "замесов" : "замеса";

            SelTaskVolume  = SelTask.Volume + " м³" + " (" + SelTask.BatchesAmount + " " + ending + " × " + SelTask.BatchVolume + " м³)";
            CurrentSelTask = SelTask;
        }
Exemplo n.º 6
0
        /// <summary>
        /// アイテム・レシピ一覧を読み込む。
        /// </summary>
        /// <param name="path"></param>
        private void load(string path)
        {
            var reader = new RecipesReader(path);

            reader.ReadAll();
            allItems.Clear();
            foreach (var item in reader.Items)
            {
                allItems.Add(item.Name, item);
            }
            allRecipes.Clear();
            foreach (var recipe in reader.Recipes)
            {
                recipe.Requires.Sort((a, b) => a.Item.Name.CompareTo(b.Item.Name));
                if (!allRecipes.ContainsKey(recipe.Target.Name))
                {
                    allRecipes.Add(recipe.Target.Name, new List <Recipe>());
                }
                allRecipes[recipe.Target.Name].Add(recipe);
            }
            update();
        }