public DetailsParameterViewModel(Parameter model, DeviceDetailsViewModel parent) { Model = model; Name = model.DriverParameter.Description; _parent = parent; IsNotReadOnly = !model.DriverParameter.IsReadOnly && (model.DriverParameter.CanWriteInActive || !parent.IsActive); if (IsNotReadOnly) switch (Model.DriverParameter.ParameterType) { case ParameterType.Enum: IsEnum = true; ParameterEnum = new ObservableCollection<ParameterEnumItem>(Model.DriverParameter.ParameterEnumItems); SelectedEnumItem = ParameterEnum.FirstOrDefault(x => x.Value == model.IntValue); if (SelectedEnumItem == null) SelectedEnumItem = ParameterEnum.FirstOrDefault(); break; case ParameterType.String: IsString = true; StringValue = Model.StringValue; break; case ParameterType.Int: IsInt = true; IntValue = Model.IntValue ?? Model.DriverParameter.IntDefaultValue; if (Model.DriverParameter.IsReadOnly) StringValue = IntValue.ToString(); break; case ParameterType.Double: IsDouble = true; var doubleValue = Model.DoubleValue ?? Model.DriverParameter.DoubleDefaultValue; StringValue = doubleValue.ToString(); break; case ParameterType.Bool: IsBool = true; BoolValue = Model.BoolValue ?? Model.DriverParameter.BoolDefaultValue; break; case ParameterType.DateTime: IsDateTime = true; var dateTime = Model.DateTimeValue ?? DateTime.Now; DateTimeValue = new DateTimePairViewModel(dateTime); TimeSpan = dateTime.TimeOfDay; break; default: break; } else ReadOnlyValue = model.GetStringValue(); }
public Device(ResursAPI.DriverType driverType, Device parent = null) : this() { Name = driverType.ToDescription(); Driver = ResursAPI.DriversConfiguration.GetDriver(driverType); DriverUID = Driver.UID; TariffType = Driver.DefaultTariffType; foreach (var item in Driver.DriverParameters) { var parameter = new Parameter { Device = this }; parameter.Initialize(item); Parameters.Add(parameter); } SetParent(parent); }
public static bool IsEqual(Parameter x, Parameter y) { if (x.DriverParameter.ParameterType != y.DriverParameter.ParameterType) return false; switch (x.DriverParameter.ParameterType) { case ParameterType.Enum: case ParameterType.Int: return x.IntValue == y.IntValue; case ParameterType.String: return x.StringValue == y.StringValue; case ParameterType.Double: return x.DoubleValue == y.DoubleValue; case ParameterType.Bool: return x.BoolValue == y.BoolValue; case ParameterType.DateTime: return x.DateTimeValue == y.DateTimeValue; default: return false; } }
public ParameterViewModel(Parameter model) { Model = model; Name = Model.DriverParameter.Description; Value = Model.GetStringValue(); }