Пример #1
0
 /// <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;
 }
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }