|
|
|
@ -5,6 +5,7 @@ using System.Linq;
|
|
|
|
using System.Runtime.CompilerServices;
|
|
|
|
using System.Runtime.CompilerServices;
|
|
|
|
using System.Text;
|
|
|
|
using System.Text;
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
|
|
|
using OxyPlot.Axes;
|
|
|
|
using SmartAquaViewer.DataAnalysis;
|
|
|
|
using SmartAquaViewer.DataAnalysis;
|
|
|
|
using SmartAquaViewer.Model;
|
|
|
|
using SmartAquaViewer.Model;
|
|
|
|
|
|
|
|
|
|
|
|
@ -13,9 +14,164 @@ namespace SmartAquaViewer.ViewModel
|
|
|
|
public class EnergyViewModel : INotifyPropertyChanged
|
|
|
|
public class EnergyViewModel : INotifyPropertyChanged
|
|
|
|
{
|
|
|
|
{
|
|
|
|
public List<WaterQualityVO> WaterQualityList { get; set; }
|
|
|
|
public List<WaterQualityVO> WaterQualityList { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private double _totalEnergy;
|
|
|
|
|
|
|
|
public double TotalEnergy
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
get => _totalEnergy;
|
|
|
|
|
|
|
|
set
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
if (_totalEnergy != value)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
_totalEnergy = value;
|
|
|
|
|
|
|
|
OnPropertyChanged();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private double _totalSandFilterEnergy;
|
|
|
|
|
|
|
|
public double TotalSandFilterEnergy
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
get => _totalSandFilterEnergy;
|
|
|
|
|
|
|
|
set
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
if (_totalSandFilterEnergy != value)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
_totalSandFilterEnergy = value;
|
|
|
|
|
|
|
|
OnPropertyChanged();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private double _totalCirculationPumpEnergy;
|
|
|
|
|
|
|
|
public double TotalCirculationPumpEnergy
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
get => _totalCirculationPumpEnergy;
|
|
|
|
|
|
|
|
set
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
if (_totalCirculationPumpEnergy != value)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
_totalCirculationPumpEnergy = value;
|
|
|
|
|
|
|
|
OnPropertyChanged();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private double _totalHeatPumpEnergy;
|
|
|
|
|
|
|
|
public double TotalHeatPumpEnergy
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
get => _totalHeatPumpEnergy;
|
|
|
|
|
|
|
|
set
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
if (_totalHeatPumpEnergy != value)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
_totalHeatPumpEnergy = value;
|
|
|
|
|
|
|
|
OnPropertyChanged();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private double _totalAirBlowerEnergy;
|
|
|
|
|
|
|
|
public double TotalAirBlowerEnergy
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
get => _totalAirBlowerEnergy;
|
|
|
|
|
|
|
|
set
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
if (_totalAirBlowerEnergy != value)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
_totalAirBlowerEnergy = value;
|
|
|
|
|
|
|
|
OnPropertyChanged();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private double _totalOzoneGeneratorEnergy;
|
|
|
|
|
|
|
|
public double TotalOzoneGeneratorEnergy
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
get => _totalOzoneGeneratorEnergy;
|
|
|
|
|
|
|
|
set
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
if (_totalOzoneGeneratorEnergy != value)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
_totalOzoneGeneratorEnergy = value;
|
|
|
|
|
|
|
|
OnPropertyChanged();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private double _totalUVSterilizerEnergy;
|
|
|
|
|
|
|
|
public double TotalUVSterilizerEnergy
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
get => _totalUVSterilizerEnergy;
|
|
|
|
|
|
|
|
set
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
if (_totalUVSterilizerEnergy != value)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
_totalUVSterilizerEnergy = value;
|
|
|
|
|
|
|
|
OnPropertyChanged();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private double _totalOzoneDissolverEnergy;
|
|
|
|
|
|
|
|
public double TotalOzoneDissolverEnergy
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
get => _totalOzoneDissolverEnergy;
|
|
|
|
|
|
|
|
set
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
if (_totalOzoneDissolverEnergy != value)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
_totalOzoneDissolverEnergy = value;
|
|
|
|
|
|
|
|
OnPropertyChanged();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private double _totalExcessOzoneDestroyerEnergy;
|
|
|
|
|
|
|
|
public double TotalExcessOzoneDestroyerEnergy
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
get => _totalExcessOzoneDestroyerEnergy;
|
|
|
|
|
|
|
|
set
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
if (_totalExcessOzoneDestroyerEnergy != value)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
_totalExcessOzoneDestroyerEnergy = value;
|
|
|
|
|
|
|
|
OnPropertyChanged();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public EnergyViewModel()
|
|
|
|
public EnergyViewModel()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
WaterQualityList = Datas.GetWaterQualityVO();
|
|
|
|
WaterQualityList = Datas.GetWaterQualityVO();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TotalSandFilterEnergy = WaterQualityList.Sum(vo => ResolveEnergyField(vo, "Filtering.SandFilterEnergy") ?? 0);
|
|
|
|
|
|
|
|
TotalCirculationPumpEnergy = WaterQualityList.Sum(vo => ResolveEnergyField(vo, "Filtering.CirculationPumpEnergy") ?? 0);
|
|
|
|
|
|
|
|
TotalHeatPumpEnergy = WaterQualityList.Sum(vo => ResolveEnergyField(vo, "Filtering.HeatPumpEnergy") ?? 0);
|
|
|
|
|
|
|
|
TotalAirBlowerEnergy = WaterQualityList.Sum(vo => ResolveEnergyField(vo, "Filtering.AirBlowerEnergy") ?? 0);
|
|
|
|
|
|
|
|
TotalOzoneGeneratorEnergy = WaterQualityList.Sum(vo => ResolveEnergyField(vo, "Sterilizing.OzoneGeneratorEnergy") ?? 0);
|
|
|
|
|
|
|
|
TotalUVSterilizerEnergy = WaterQualityList.Sum(vo => ResolveEnergyField(vo, "Sterilizing.UVSterilizerEnergy") ?? 0);
|
|
|
|
|
|
|
|
TotalOzoneDissolverEnergy = WaterQualityList.Sum(vo => ResolveEnergyField(vo, "Sterilizing.OzoneDissolverEnergy") ?? 0);
|
|
|
|
|
|
|
|
TotalExcessOzoneDestroyerEnergy = WaterQualityList.Sum(vo => ResolveEnergyField(vo, "Sterilizing.ExcessOzoneDestroyerEnergy") ?? 0);
|
|
|
|
|
|
|
|
TotalEnergy = WaterQualityList.Sum(vo => ResolveEnergyField(vo, "TotalEnergy") ?? 0);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private double? ResolveEnergyField(WaterQualityVO vo, string fieldName)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
return fieldName switch
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"Filtering.SandFilterEnergy" => vo.Filtering.SandFilterEnergy,
|
|
|
|
|
|
|
|
"Filtering.CirculationPumpEnergy" => vo.Filtering.CirculationPumpEnergy,
|
|
|
|
|
|
|
|
"Filtering.HeatPumpEnergy" => vo.Filtering.HeatPumpEnergy,
|
|
|
|
|
|
|
|
"Filtering.AirBlowerEnergy" => vo.Filtering.AirBlowerEnergy,
|
|
|
|
|
|
|
|
"Sterilizing.OzoneGeneratorEnergy" => vo.Sterilizing.OzoneGeneratorEnergy,
|
|
|
|
|
|
|
|
"Sterilizing.UVSterilizerEnergy" => vo.Sterilizing.UVSterilizerEnergy,
|
|
|
|
|
|
|
|
"Sterilizing.OzoneDissolverEnergy" => vo.Sterilizing.OzoneDissolverEnergy,
|
|
|
|
|
|
|
|
"Sterilizing.ExcessOzoneDestroyerEnergy" => vo.Sterilizing.ExcessOzoneDestroyerEnergy,
|
|
|
|
|
|
|
|
"TotalEnergy" => vo.TotalEnergy,
|
|
|
|
|
|
|
|
_ => null
|
|
|
|
|
|
|
|
};
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public event PropertyChangedEventHandler? PropertyChanged;
|
|
|
|
public event PropertyChangedEventHandler? PropertyChanged;
|
|
|
|
|