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); }
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())); }