public WindowTask(TaskQueueItemsService taskQueueItemsService, int maxOrder, Logger logger) { InitializeComponent(); NewTaskViewModel = new NewTaskViewModel(taskQueueItemsService, maxOrder, logger); NewTaskViewModel.Close += NewTaskViewModelOnClose; DataContext = NewTaskViewModel; }
public NewTaskViewModel(TaskQueueItemsService taskQueueItemsService, int maxOrder, Logger logger) { Logger = logger; Task = new ApiTask(); MixerVolume = GetMixerVolume(); Volume = (decimal)0.2; MaxOrder = maxOrder; TaskQueueItemsService = taskQueueItemsService; UpdateRecipes(); UpdateCustomers(); }
public ElTaskQueueViewModel(TaskQueueItemsService service, Logger logger) { Logger = logger; Service = service; Service.Updated += ServiceOnUpdate; StopLoadTasks = true; var loadTaskHandler = new LoadTaskHandler(Service, logger); CheckAndLoadTask += loadTaskHandler.CheckAndLoadTask; ServiceOnUpdate(); }
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("Отсутствуют задания в очереди."); } }
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 void Initialize(Logger logger) { _opcName = OpcServer.OpcList.Rbu; ViewModelScreenRbu = new ViewModelScreenRbu(_opcName); DataContext = ViewModelScreenRbu; ElArchiversViewModel = new ElArchiversViewModel(); Closed += ElArchiversViewModel.OnClosed; ViewModelScreenRbu.IsUpdating = true; #region Init foreach (var item in ElGrid.Children) { if (item.GetType() == typeof(Mechs.ElConveyor)) { var conveyor = (Mechs.ElConveyor)item; conveyor.Initialize(_opcName); _elementList.Add(conveyor); } if (item.GetType() == typeof(Mechs.ElGate)) { var gate = (Mechs.ElGate)item; gate.Initialize(_opcName); _elementList.Add(gate); } if (item.GetType() == typeof(Mechs.ElMixer)) { var mixer = (Mechs.ElMixer)item; mixer.Initialize(_opcName); _elementList.Add(mixer); } if (item.GetType() == typeof(Mechs.ElMotor)) { var motor = (Mechs.ElMotor)item; motor.Initialize(_opcName); _elementList.Add(motor); } if (item.GetType() == typeof(Mechs.ElPump)) { var pump = (Mechs.ElPump)item; pump.Initialize(_opcName); _elementList.Add(pump); } if (item.GetType() == typeof(Indicators.ElValueBox)) { var valuebox = (Indicators.ElValueBox)item; valuebox.Initialize(_opcName); _elementList.Add(valuebox); } if (item.GetType() == typeof(Indicators.ElValueBar)) { var valuebar = (Indicators.ElValueBar)item; valuebar.Initialize(_opcName); _elementList.Add(valuebar); } if (item.GetType() == typeof(Indicators.ElDone)) { var done = (Indicators.ElDone)item; done.Initialize(_opcName); _elementList.Add(done); } if (item.GetType() == typeof(Indicators.ElAnim)) { var anim = (Indicators.ElAnim)item; anim.Initialize(_opcName); _elementList.Add(anim); } if (item.GetType() == typeof(Indicators.ElWarning)) { var warning = (Indicators.ElWarning)item; warning.Initialize(_opcName); _elementList.Add(warning); } if (item.GetType() == typeof(Control.ElDosingWait)) { var dosingWait = (Control.ElDosingWait)item; dosingWait.Initialize(_opcName); _elementList.Add(dosingWait); } if (item.GetType() == typeof(Control.ElManualDosing)) { var manualDosing = (Control.ElManualDosing)item; manualDosing.Initialize(_opcName); _elementList.Add(manualDosing); } if (item.GetType() == typeof(Control.ElEvent)) { var elEvent = (Control.ElEvent)item; elEvent.Initialize(_opcName); _elementList.Add(elEvent); } if (item.GetType() == typeof(Indicators.ElContainer)) { var container = (Indicators.ElContainer)item; container.Initialize(_opcName); _elementList.Add(container); _containerList.Add(container); } } ElControlTabl.Initialize(_opcName); _elementList.Add(ElControlTabl); ElControlControl.Initialize(_opcName); _elementList.Add(ElControlControl); ElControlZamesDosing.Initialize(_opcName); _elementList.Add(ElControlZamesDosing); ElControlZamesMixer.Initialize(_opcName); _elementList.Add(ElControlZamesMixer); ElControlStatus.Initialize(_opcName); _elementList.Add(ElControlStatus); var taskQueueItemsService = new TaskQueueItemsService(); var recipeQueueViewModel = new ElQueueViewModel(taskQueueItemsService, logger); ElControlQueue.DataContext = recipeQueueViewModel; #endregion #region Timer LinkTimer = new DispatcherTimer(); LinkTimer.Interval = new TimeSpan(0, 0, 0, 0, 500); LinkTimer.Tick += new EventHandler(TimerTick500Ms); #endregion ViewModelScreenRbu.IsUpdating = false; Subscribe(); }