public ConfigurationCompareViewModel(XDeviceConfiguration localConfiguration, XDeviceConfiguration remoteConfiguration, XDevice device, bool configFromFile) { Title = "Сравнение конфигураций " + device.PresentationName; ConfigFromFile = configFromFile; ChangeCommand = new RelayCommand(OnChange); NextDifferenceCommand = new RelayCommand(OnNextDifference, CanNextDifference); PreviousDifferenceCommand = new RelayCommand(OnPreviousDifference, CanPreviousDifference); LocalConfiguration = localConfiguration; RemoteConfiguration = remoteConfiguration; RemoteConfiguration.Update(); UpdateConfigurationHelper.Update(RemoteConfiguration); LocalDevice = localConfiguration.Devices.FirstOrDefault(x => x.DriverType == device.DriverType && x.Address == device.Address); RemoteDevice = remoteConfiguration.Devices.FirstOrDefault(x => x.DriverType == device.DriverType && x.Address == device.Address); if (RemoteDevice == null) { Error = "ГК в удаленной конфигурации имеет невалидный IP адрес"; return; } LocalObjectsViewModel = new ObjectsListViewModel(LocalDevice, localConfiguration); RemoteObjectsViewModel = new ObjectsListViewModel(RemoteDevice, remoteConfiguration); CompareObjectLists(); InitializeMismatchedIndexes(); }
public ConfigurationCompareViewModel(GKDeviceConfiguration localConfiguration, GKDeviceConfiguration remoteConfiguration, GKDevice device, string configFileName = "") { Title = "Сравнение конфигураций " + device.PresentationName; ChangeCurrentGkCommand = new RelayCommand(OnChangeCurrentGk); LoadConfigurationFromFileCommand = new RelayCommand(OnLoadConfigurationFromFile); NextDifferenceCommand = new RelayCommand(OnNextDifference, CanNextDifference); PreviousDifferenceCommand = new RelayCommand(OnPreviousDifference, CanPreviousDifference); ConfigFileName = configFileName; ConfigFromFile = CanChangeOrOpenConfiguration = !string.IsNullOrEmpty(configFileName); var remoteConfig = new ZipFile(ConfigFileName); OnlyGKDeviceConfiguration = remoteConfig.Entries.Count == 1; LocalConfiguration = localConfiguration; RemoteConfiguration = remoteConfiguration; RemoteConfiguration.Update(); RemoteConfiguration.UpdateConfiguration(); LocalDevice = localConfiguration.Devices.FirstOrDefault(x => x.DriverType == device.DriverType && x.Address == device.Address); RemoteDevice = remoteConfiguration.Devices.FirstOrDefault(x => x.DriverType == device.DriverType && x.Address == device.Address); if (RemoteDevice == null) { Error = "ГК в удаленной конфигурации имеет невалидный IP адрес"; return; } LocalObjectsViewModel = new ObjectsListViewModel(LocalDevice, localConfiguration); RemoteObjectsViewModel = new ObjectsListViewModel(RemoteDevice, remoteConfiguration); CompareObjectLists(); InitializeMismatchedIndexes(); }