/// <summary> /// /// </summary> /// <returns></returns> public virtual async Task InitializeAsync() { ResistorsOnDevice.Clear(); ResistorsOnDevice.AddRange(_resistorFactory.CreateResistorsOnDevice(this.DeviceMomento.State.SchemeTable, this)); _deviceCustomItems = _customItemsFactory.CreateDeviceCustomItems(_deviceMomento.State); DeviceInitialized?.Invoke(); _isDeviceInitialized = true; }
public ICustomItemsViewModel CreateCustomItemsViewModel(object deviceCustomItems) { IDeviceCustomItems deviceCustomItemsModel = deviceCustomItems as IDeviceCustomItems; ICustomItemsViewModel customItemsViewModel = _container.Resolve <ICustomItemsViewModel>(); if (deviceCustomItemsModel.IsCascadeEnabled) { customItemsViewModel.IsCascadeEnabled = true; List <ICascadeViewModel> cascadeViewModels = new List <ICascadeViewModel>(); deviceCustomItemsModel.Cascades.ForEach((cascade => { ICascadeViewModel cascadeViewModel = _container.Resolve <ICascadeViewModel>(); cascadeViewModel.Model = cascade; cascadeViewModels.Add(cascadeViewModel); })); customItemsViewModel.CascadeViewModels = cascadeViewModels; } if (deviceCustomItemsModel.IsSignalsEnabled) { customItemsViewModel.IsSignalsEnabled = true; List <ISignalViewModel> signalViewModels = new List <ISignalViewModel>(); deviceCustomItemsModel.Signals.ForEach((signal => { ISignalViewModel signalViewModel = _container.Resolve <ISignalViewModel>(); signalViewModel.Model = signal; signalViewModels.Add(signalViewModel); })); customItemsViewModel.SignalViewModels = signalViewModels; } if (deviceCustomItemsModel.IsIndicatorsEnabled) { customItemsViewModel.IsIndicatorsEnabled = true; List <IIndicatorViewModel> indicatorViewModels = new List <IIndicatorViewModel>(); deviceCustomItemsModel.Indicators.ForEach((indicator => { IIndicatorViewModel indicatorViewModel = _container.Resolve <IIndicatorViewModel>(); indicatorViewModel.Model = indicator; indicatorViewModels.Add(indicatorViewModel); })); customItemsViewModel.IndicatorViewModels = indicatorViewModels; } return(customItemsViewModel); }
public IDeviceCustomItems CreateDeviceCustomItems(IDeviceContext deviceContext) { IDeviceCustomItems deviceCustomItems = _container.Resolve <IDeviceCustomItems>(); var cascades = deviceContext.CustomDeviceSchemeTable.CascadeIndicatorsTable.GetEnumeratorObjects(); if (cascades.Any()) { deviceCustomItems.IsCascadeEnabled = true; cascades.ForEach((indicator => { if (deviceContext.DataTable.IsObjectExists(AddressesStrings.MODUL_STR + indicator.ResistorModule + AddressesStrings.SPLITTER_STR + AddressesStrings.DISKRET_STR + (indicator.ResistorNumber - 1) + AddressesStrings.SPLITTER_STR + AddressesStrings.STATE_STR)) { ICascade cascade = _container.Resolve <ICascade>(); cascade.SignalDescription = indicator.Tag; deviceCustomItems.Cascades.Add(cascade); } })); } var indicators = deviceContext.CustomDeviceSchemeTable.IndicatorsTable.GetEnumeratorObjects(); if (indicators.Any()) { deviceCustomItems.IsIndicatorsEnabled = true; indicators.ForEach((indicator => { if (deviceContext.DataTable.IsObjectExists(AddressesStrings.MODUL_STR + indicator.ResistorModule + AddressesStrings.SPLITTER_STR + AddressesStrings.DISKRET_STR + (indicator.ResistorNumber - 1) + AddressesStrings.SPLITTER_STR + AddressesStrings.STATE_STR)) { IIndicator indicatorModel = _container.Resolve <IIndicator>(); indicatorModel.SignalDescription = indicator.Tag; deviceCustomItems.Indicators.Add(indicatorModel); } })); } var signals = deviceContext.CustomDeviceSchemeTable.SignalsTable.GetEnumeratorObjects(); if (signals.Any()) { deviceCustomItems.IsSignalsEnabled = true; signals.ForEach((signal => { if (deviceContext.DataTable.IsObjectExists(AddressesStrings.MODUL_STR + signal.ResistorModule + AddressesStrings.SPLITTER_STR + AddressesStrings.DISKRET_STR + (signal.ResistorNumber - 1) + AddressesStrings.SPLITTER_STR + AddressesStrings.STATE_STR)) { ISignal signalModel = _container.Resolve <ISignal>(); signalModel.SignalDescription = signal.Tag; deviceCustomItems.Signals.Add(signalModel); } })); } return(deviceCustomItems); }