示例#1
0
        public IBaseValuesViewModel CreateBaseValuesViewModel(IConfigurationBaseValues configurationBaseValues)
        {
            if (configurationBaseValues == null)
            {
                return(new BaseValuesViewModel());
            }
            var res = new BaseValuesViewModel();

            res.BaseValuesViewModels.AddCollection(configurationBaseValues.BaseValues.Select(value =>
                                                                                             new BaseValueViewModel()
            {
                Name             = value.Name,
                BaseValuesMemory =
                    Result <Dictionary <ushort, ushort> > .Create(value.LocalMemoryValues, true),
                IsBaseValuesMemoryFilled = true
            }));
            return(res);
        }
示例#2
0
        public IRuntimeBaseValuesViewModel CreateRuntimeBaseValuesViewModel(
            IConfigurationBaseValues configurationBaseValues, DeviceContext deviceContext)
        {
            if (configurationBaseValues == null)
            {
                return(new RuntimeBaseValuesViewModel(new List <IRuntimeBaseValueViewModel>()));
            }

            return(new RuntimeBaseValuesViewModel(configurationBaseValues.BaseValues.Select(value =>
                                                                                            new RuntimeBaseValueViewModel(value.Name, new RelayCommand(
                                                                                                                              () =>
            {
                if (_applicationGlobalCommands.AskUserGlobal(
                        _localizerService.GetLocalizedString(ApplicationGlobalNames.DialogStrings
                                                             .ARE_YOU_SURE_TO_APPLY_VALUES) + ": " + value.Name,
                        _localizerService.GetLocalizedString("BasicValues")))
                {
                    var addresses = value.LocalMemoryValues.Keys.ToArray();
                    foreach (var address in addresses)
                    {
                        if (deviceContext.DeviceMemory.LocalMemoryValues.ContainsKey(address))
                        {
                            deviceContext.DeviceMemory.LocalMemoryValues[address] =
                                value.LocalMemoryValues[address];
                        }
                        else
                        {
                            deviceContext.DeviceMemory.LocalMemoryValues.Add(address,
                                                                             value.LocalMemoryValues[address]);
                        }
                    }

                    foreach (var address in addresses)
                    {
                        deviceContext.DeviceEventsDispatcher.TriggerLocalAddressSubscription(
                            address, 1, MemoryKind.UshortMemory);
                    }
                }
            }
                                                                                                                              ))).Cast <IRuntimeBaseValueViewModel>().ToList()));
        }