Files

119 lines
4.9 KiB
Plaintext

@using WotBlitzStatisticsPro.Blazor.Helpers
@using MediatR
@using WotBlitzStatisticsPro.Blazor.Messages
@inject IStringLocalizer<App> Localize;
@inject IMediator Mediator
<div class="row">
<RadzenCard class="m-3" style="width: 350px;">
<table class="table" width="100%">
<tbody>
<tr>
<td>@Localize["Battles"]:</td>
<td align="right"><b>@AccountInfo.Battles.ToString("N0")</b></td>
</tr>
<tr>
<td>@Localize["Win rate"]:</td>
<td align="right">
<b>@AccountInfo.WinRate.ToString("N2")%</b>
<div style="background-color: @AccountInfo.WinRate.ScaleColor(); width: 100%; height: 5px; margin-left: 2px; margin-right: 2px;"></div>
</td>
</tr>
<tr>
<td>@Localize["Wn7"]:</td>
<td align="right">
<b>@AccountInfo.Wn7.ToString("N2")</b>
<div style="background-color: @AccountInfo.Wn7.Wn7ScaleColor(); width: 100%; height: 5px; margin-left: 2px; margin-right: 2px;"></div>
</td>
</tr>
<tr>
<td>@Localize["Average XP"]:</td>
<td align="right"><b>@AccountInfo.AvgXp.ToString("N0")</b></td>
</tr>
<tr>
<td>@Localize["Average Damage"]:</td>
<td align="right"><b>@AccountInfo.AvgDamage.ToString("N0")</b></td>
</tr>
<tr>
<td>@Localize["Damage coefficient"]:</td>
<td align="right"><b>@AccountInfo.DamageCoefficient.ToString("N2")</b></td>
</tr>
<tr>
<td>@Localize["Survival rate"]:</td>
<td align="right"><b>@AccountInfo.SurvivalRate.ToString("N0")%</b></td>
</tr>
<tr>
<td>@Localize["Avg tier"]:</td>
<td align="right"><b>@AccountInfo.AvgTier.ToString("N2")</b></td>
</tr>
</tbody>
</table>
</RadzenCard>
<RadzenCard class="m-3" style="width: 350px;">
<h3 class="h5">@Localize["Most effective tank"]</h3>
<div class="row">
<div class="col col-sm col-md col-lg col-xl">
</div>
<div class="col col-sm col-md col-lg col-xl" @onclick="@(async (e) => { await Mediator.Publish(new OpenTankDialogMessage(MostRelevantTank)); })">
@if (MostRelevantTank != null)
{
<TankCard Tank=@MostRelevantTank></TankCard>
}
</div>
<div class="col col-sm col-md col-lg col-xl">
</div>
</div>
</RadzenCard>
<RadzenCard class="m-3" style="width: 350px;">
<h3 class="h5">@Localize["Tank with Max XP"] (@AccountInfo.MaxXp.ToString("N0"))</h3>
<div class="row">
<div class="col col-sm col-md col-lg col-xl">
</div>
<div class="col col-sm col-md col-lg col-xl" @onclick="@(async (e) => { await Mediator.Publish(new OpenTankDialogMessage(MaxXpTank)); })">
@if (MaxXpTank != null)
{
<TankCard Tank=@MaxXpTank></TankCard>
}
</div>
<div class="col col-sm col-md col-lg col-xl">
</div>
</div>
</RadzenCard>
<RadzenCard class="m-3" style="width: 350px;">
<h3 class="h5">@Localize["Tank with Max frags"] (@AccountInfo.MaxFrags)</h3>
<div class="row">
<div class="col col-sm col-md col-lg col-xl">
</div>
<div class="col col-sm col-md col-lg col-xl" @onclick="@(async (e) => { await Mediator.Publish(new OpenTankDialogMessage(MaxFragsTank)); })">
@if (MaxFragsTank != null)
{
<TankCard Tank=@MaxFragsTank></TankCard>
}
</div>
<div class="col col-sm col-md col-lg col-xl">
</div>
</div>
</RadzenCard>
<OverallStatisticsCard Statistics="@AccountInfo"></OverallStatisticsCard>
</div>
@code {
[Parameter]
public IAccount AccountInfo { get; set; }
public ITank? MostRelevantTank;
public ITank? MaxXpTank;
public ITank? MaxFragsTank;
protected override void OnInitialized()
{
MostRelevantTank = AccountInfo?.Tanks?.FindMostRelevantTank();
MaxXpTank = AccountInfo?.Tanks?.FirstOrDefault(t => t.TankId == AccountInfo.MaxXpTankId);
MaxFragsTank = AccountInfo?.Tanks?.FirstOrDefault(t => t.TankId == AccountInfo.MaxFragsTankId);
}
}