Example #1
0
		public DateTimeViewModel(Filter filter)
		{
			StateTypes = new ObservableCollection<StateType>(Enum.GetValues(typeof(StateType)).Cast<StateType>());
			SelectedStateType = filter.StateType;
			Count = filter.Count;
			IsSortAsc = filter.IsSortAsc;
			PageSize = filter.PageSize;
			StartDateTime = new DateTimePairViewModel(filter.StartDate);
			EndDateTime = new DateTimePairViewModel(filter.EndDate);
		}
		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();
		}