@page "/pvgen"
@using InverterMon.Shared.Models
@inject HttpClient Http
PV Generation For Day
@if(day == null)
{
}
else
{
@day.DayName
Total Generation: @day.TotalKiloWattHours kWh
}
@code{
private PVDay? day;
private AreaConfig aConf = new()
{
Padding = "auto",
AutoFit = true,
XField = "Time",
YField = "Watts",
Smooth = false,
Line = new()
{
Size = 1,
Color = "#5598d7"
},
AreaStyle = new()
{
Fill = "l(270) 0:#ffffff 0.5:#7ec2f3 1:#1890ff",
}
};
protected override async Task OnInitializedAsync()
{
await FetchForDay();
}
private async Task FetchForDay(int? dayNumber = null)
{
try
{
day = await Http.GetFromJsonAsync($"api/pv-log/get-pv-for-day/{dayNumber ?? DateOnly.FromDateTime(DateTime.Now).DayNumber}");
aConf.XAxis = new()
{
Range = day?.GraphRange,
TickCount = day?.GraphTickCount
};
//StateHasChanged();
}
catch (Exception)
{
//ignore
}
}
private async Task GetNextDay()
{
var dayNum = this.day?.DayNumber+1;
day = null;
await FetchForDay(dayNum);
if (day is null)
await FetchForDay(dayNum - 1);
StateHasChanged();
}
private async Task GetPrevDay()
{
var dayNum = this.day?.DayNumber-1;
day = null;
await FetchForDay(dayNum);
if (day is null)
await FetchForDay(dayNum + 1);
StateHasChanged();
}
}