private string GetText(BatterySatus value)
 {
     if (value is null)
     {
         return("");
     }
     return($"Battery {GetStatus(value.Status)}, {0.1 * value.SOC} [%]");
 }
        private PackIconKind GetView(BatterySatus value)
        {
            if (value is null)
            {
                return(PackIconKind.BatteryUnknown);
            }
            var soc = (int)(value.SOC / 10);

            if (soc < 10)
            {
                return(value.Status == BatteryStatusType.Charging ? PackIconKind.BatteryCharging20 : PackIconKind.Battery10);
            }
            else if (soc < 20)
            {
                return(value.Status == BatteryStatusType.Charging ? PackIconKind.BatteryCharging20 : PackIconKind.Battery20);
            }
            else if (soc < 30)
            {
                return(value.Status == BatteryStatusType.Charging ? PackIconKind.BatteryCharging30 : PackIconKind.Battery30);
            }
            else if (soc < 40)
            {
                return(value.Status == BatteryStatusType.Charging ? PackIconKind.BatteryCharging40 : PackIconKind.Battery40);
            }
            else if (soc < 50)
            {
                return(value.Status == BatteryStatusType.Charging ? PackIconKind.BatteryCharging60 : PackIconKind.Battery50);
            }
            else if (soc < 60)
            {
                return(value.Status == BatteryStatusType.Charging ? PackIconKind.BatteryCharging60 : PackIconKind.Battery60);
            }
            else if (soc < 70)
            {
                return(value.Status == BatteryStatusType.Charging ? PackIconKind.BatteryCharging80 : PackIconKind.Battery70);
            }
            else if (soc < 80)
            {
                return(value.Status == BatteryStatusType.Charging ? PackIconKind.BatteryCharging80 : PackIconKind.Battery80);
            }
            else if (soc < 90)
            {
                return(value.Status == BatteryStatusType.Charging ? PackIconKind.BatteryCharging90 : PackIconKind.Battery90);
            }
            else
            {
                return(value.Status == BatteryStatusType.Charging ? PackIconKind.BatteryCharging100 : PackIconKind.Battery);
            }
        }
 internal async void Activate()
 {
     Source.Enable();
     this.BatterySatus = await Source.GetValue();
 }
 public BatteryStatusViewModel(ISource <BatterySatus> source)
 {
     Source           = source;
     Source.OnChange += (BatterySatus value) => BatterySatus = value;
 }