using Avalonia.Controls; using Shaker.Models; using System.Collections.Generic; namespace ShakerApp.ViewModels { public class OilSourceAnalogViewModel : ViewModelBase { public OilSourceAnalogViewModel() { Content = typeof(Views.OilAnalogView); } public OilSourceAnalogViewModel(OilSourceAnalogModel model) : this() { UpDateModel(model); } public override bool CanCancel => false; [PropertyAssociation(nameof(OilSourceAnalogModel.Name))] public bool IsVisible => !string.IsNullOrEmpty(Name); [PropertyAssociation(nameof(OilSourceAnalogModel.Name))] public string Name => Model.Name; [PropertyAssociation(nameof(OilSourceAnalogModel.Value))] public float Value { get => Model.Value; set => SetProperty(ref Model.Value, value); } [PropertyAssociation(nameof(OilSourceAnalogModel.IsUpperWarn))] public bool IsUpperWarn { get => Model.IsUpperWarn; set => SetProperty(ref Model.IsUpperWarn, value); } [PropertyAssociation(nameof(OilSourceAnalogModel.IsUpperError))] public bool IsUpperError { get => Model.IsUpperError; set => SetProperty(ref Model.IsUpperError, value); } [PropertyAssociation(nameof(OilSourceAnalogModel.IsLowerWarn))] public bool IsLowerWarn { get => Model.IsLowerWarn; set => SetProperty(ref Model.IsLowerWarn, value); } [PropertyAssociation(nameof(OilSourceAnalogModel.IsLowerError))] public bool IsLowerError { get => Model.IsLowerError; set => SetProperty(ref Model.IsLowerError, value); } [PropertyAssociation(nameof(OilSourceAnalogModel.Unit))] public string Unit { get => Model.Unit; set => SetProperty(ref Model.Unit, value); } [PropertyAssociation(nameof(OilSourceAnalogModel.IsUpperError),nameof(OilSourceAnalogModel.IsLowerError))] public bool IsError => IsUpperError || IsLowerError; [PropertyAssociation(nameof(OilSourceAnalogModel.IsLowerError),nameof(OilSourceAnalogModel.IsUpperError),nameof(OilSourceAnalogModel.IsLowerWarn),nameof(OilSourceAnalogModel.IsUpperWarn))] public bool IsWarn => !IsError && (IsLowerWarn || IsUpperWarn); [PropertyAssociation(nameof(OilSourceAnalogModel.IsUpperError), nameof(OilSourceAnalogModel.IsUpperWarn))] public bool IsUpper => IsUpperError || IsUpperWarn; [PropertyAssociation(nameof(OilSourceAnalogModel.IsLowerWarn), nameof(OilSourceAnalogModel.IsLowerError))] public bool IsLower => IsLowerError || IsLowerWarn; private readonly string[] errornames = new string[4] { "UpperWarn", "LowerWarn", "UpperError", "LowerError" }; public override void UpDateModel(OilSourceAnalogModel model) { bool[] laststate = new bool[4] { IsUpperWarn, IsLowerWarn, IsUpperError, IsLowerError }; base.UpDateModel(model); bool[] currentstate = new bool[4] { IsUpperWarn, IsLowerWarn, IsUpperError, IsLowerError }; for(int i=0;i= 2 ? LogType.Error : LogType.Warn); } } } } }