public DeviceParameterTemplateViewModel(XDeviceParameterTemplate deviceParameterTemplate) { DeviceParameterTemplate = deviceParameterTemplate; DeviceParameterViewModel = new DeviceParameterViewModel(deviceParameterTemplate.XDevice); }
void Invalidate() { if (XManager.ParameterTemplates.Count == 0) { var parameterTemplate = new XParameterTemplate() { Name = "По умолчанию" }; XManager.ParameterTemplates.Add(parameterTemplate); } foreach (var parameterTemplate in XManager.ParameterTemplates) { foreach (var deviceParameterTemplate in parameterTemplate.DeviceParameterTemplates) { deviceParameterTemplate.XDevice.Driver = XManager.Drivers.FirstOrDefault(x => x.UID == deviceParameterTemplate.XDevice.DriverUID); } parameterTemplate.DeviceParameterTemplates.RemoveAll(x => x.XDevice.Driver == null); foreach (var driver in XManager.Drivers) { if (driver.Properties.Any(x => x.IsAUParameter)) { var deviceParameterTemplate = parameterTemplate.DeviceParameterTemplates.FirstOrDefault(x => x.XDevice.DriverUID == driver.UID); if (deviceParameterTemplate == null) { deviceParameterTemplate = new XDeviceParameterTemplate() { XDevice = new XDevice() { DriverUID = driver.UID, Driver = driver } }; parameterTemplate.DeviceParameterTemplates.Add(deviceParameterTemplate); } var properties = new List<XProperty>(); foreach (var driverProperty in driver.Properties) { if (driverProperty.IsAUParameter) { var property = deviceParameterTemplate.XDevice.Properties.FirstOrDefault(x => x.Name == driverProperty.Name); if (property == null || parameterTemplate.Name == "По умолчанию") { property = new XProperty() { Name = driverProperty.Name, Value = driverProperty.Default, DriverProperty = driverProperty }; deviceParameterTemplate.XDevice.Properties.Add(property); } property.DriverProperty = driverProperty; properties.Add(property); } } deviceParameterTemplate.XDevice.Properties = properties; } } } }