コード例 #1
0
		public DeviceParameterTemplateViewModel(XDeviceParameterTemplate deviceParameterTemplate)
		{
			DeviceParameterTemplate = deviceParameterTemplate;
			DeviceParameterViewModel = new DeviceParameterViewModel(deviceParameterTemplate.XDevice);
		}
コード例 #2
0
		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;
					}
				}
			}
		}