diff --git a/WotBlitzStatisticsPro.Blazor/Model/ElementDimensions.cs b/WotBlitzStatisticsPro.Blazor/Model/ElementDimensions.cs
new file mode 100644
index 0000000..d626ee2
--- /dev/null
+++ b/WotBlitzStatisticsPro.Blazor/Model/ElementDimensions.cs
@@ -0,0 +1,8 @@
+namespace WotBlitzStatisticsPro.Blazor.Model
+{
+ public class ElementDimensions
+ {
+ public int Width { get; set; }
+ public int Height { get; set; }
+ }
+}
diff --git a/WotBlitzStatisticsPro.Blazor/Pages/PlayerInfoTanksTree.razor b/WotBlitzStatisticsPro.Blazor/Pages/PlayerInfoTanksTree.razor
index ff79a7d..8743b04 100644
--- a/WotBlitzStatisticsPro.Blazor/Pages/PlayerInfoTanksTree.razor
+++ b/WotBlitzStatisticsPro.Blazor/Pages/PlayerInfoTanksTree.razor
@@ -30,7 +30,7 @@
-
+
@TanksList.ToArray()[i].Tier.RomanNumber()
@@ -40,9 +40,51 @@
@TanksList.ToArray()[i].Name
-
-
+
+ @if(i == 0 || i == 2)
+ {
+
+
+
+
+
+
+ @(TanksList.ToArray()[i].WinRate.ToString("N0"))%
+
+
+
+
+
+ @TanksList.ToArray()[i].AvgDamage.ToString("N0")
+
+
+
+
+ @TanksList.ToArray()[i].Battles.ToString("N0")
+
+
+
+
+ @TanksList.ToArray()[i].LastBattleTime.ToString("d")
+
+
+ }
+ @if(i == 1)
+ {
+
+
+
+
+ 203.5 K
+
+
+
+
+ 8 500 K
+
+
+ }
}
diff --git a/WotBlitzStatisticsPro.Blazor/Pages/PlayerInfoTanksTreeBase.cs b/WotBlitzStatisticsPro.Blazor/Pages/PlayerInfoTanksTreeBase.cs
index 995781f..3c3b23f 100644
--- a/WotBlitzStatisticsPro.Blazor/Pages/PlayerInfoTanksTreeBase.cs
+++ b/WotBlitzStatisticsPro.Blazor/Pages/PlayerInfoTanksTreeBase.cs
@@ -3,8 +3,10 @@ using Microsoft.AspNetCore.Components;
using Microsoft.Extensions.Localization;
using System;
using System.Collections.Generic;
+using System.Linq;
using System.Threading.Tasks;
using WotBlitzStatisticsPro.Blazor.GraphQl;
+using WotBlitzStatisticsPro.Blazor.Model;
using WotBlitzStatisticsPro.Blazor.Services;
namespace WotBlitzStatisticsPro.Blazor.Pages
@@ -23,11 +25,17 @@ namespace WotBlitzStatisticsPro.Blazor.Pages
[Inject]
public IMediaQueriesService MediaQueriesService { get; set; }
+ [Inject]
+ public ISvgHelper SvgHelper { get; set; }
+
public int FrameHeigth { get; set; }
public int CardWidth { get; } = 200;
public int CardHeigth { get; } = 120;
+ //[Obsolete("Just temporary. In the future, add this into tankTree DTO")]
+ //public ElementDimensions[] BattlesTextSize { get; set; }
+
public string FrameStyle
{
get
@@ -43,8 +51,22 @@ namespace WotBlitzStatisticsPro.Blazor.Pages
//FrameWidth = Convert.ToInt32(((decimal)screenWidth) * 0.94m);
FrameHeigth = screenHeight - 390;
+ // TODO: This is temporary
+ //var dd = new List();
+ //var tt = TanksList.ToArray();
+ //for (int i = 0; i < 3; i++)
+ //{
+ // var d = await SvgHelper.CalculateTextBlockSizeAsync(tt[i].Battles.ToString("N0"), "Segoe UI", 12);
+ // dd.Add(d);
+ //}
+ //BattlesTextSize = dd.ToArray();
+ //---
+
}
-
+ public int GetTextWidth(string text, string fontFace, int fontSize)
+ {
+ return SvgHelper.CalculateTextBlockSize(text, fontFace, fontSize).Width;
+ }
}
}
diff --git a/WotBlitzStatisticsPro.Blazor/Program.cs b/WotBlitzStatisticsPro.Blazor/Program.cs
index 9c940d1..472ac37 100644
--- a/WotBlitzStatisticsPro.Blazor/Program.cs
+++ b/WotBlitzStatisticsPro.Blazor/Program.cs
@@ -33,6 +33,7 @@ namespace WotBlitzStatisticsPro.Blazor
builder.Services.AddScoped();
builder.Services.AddScoped();
builder.Services.AddScoped();
+ builder.Services.AddScoped();
builder.Services.AddMediatR(typeof(Program));
diff --git a/WotBlitzStatisticsPro.Blazor/Services/ISvgHelper.cs b/WotBlitzStatisticsPro.Blazor/Services/ISvgHelper.cs
new file mode 100644
index 0000000..47f127f
--- /dev/null
+++ b/WotBlitzStatisticsPro.Blazor/Services/ISvgHelper.cs
@@ -0,0 +1,10 @@
+using System.Threading.Tasks;
+using WotBlitzStatisticsPro.Blazor.Model;
+
+namespace WotBlitzStatisticsPro.Blazor.Services
+{
+ public interface ISvgHelper
+ {
+ ElementDimensions CalculateTextBlockSize(string text, string fontFace, int fontSize);
+ }
+}
diff --git a/WotBlitzStatisticsPro.Blazor/Services/SvgHelper.cs b/WotBlitzStatisticsPro.Blazor/Services/SvgHelper.cs
new file mode 100644
index 0000000..639a1c2
--- /dev/null
+++ b/WotBlitzStatisticsPro.Blazor/Services/SvgHelper.cs
@@ -0,0 +1,28 @@
+using Microsoft.JSInterop;
+using System.Threading.Tasks;
+using WotBlitzStatisticsPro.Blazor.Model;
+using System.Text.Json;
+
+namespace WotBlitzStatisticsPro.Blazor.Services
+{
+ public class SvgHelper : ISvgHelper
+ {
+ private readonly IJSRuntime _jsRuntime;
+
+ public SvgHelper(IJSRuntime jsRuntime)
+ {
+ _jsRuntime = jsRuntime;
+ }
+
+ public ElementDimensions CalculateTextBlockSize(string text, string fontFace, int fontSize)
+ {
+ var jsInProcess = (IJSInProcessRuntime)_jsRuntime;
+ return jsInProcess.Invoke("svgHelper.CalculateTextBlockDimensions", new
+ {
+ Text = text,
+ Font = fontFace,
+ Size = fontSize
+ });
+ }
+ }
+}
diff --git a/WotBlitzStatisticsPro.Blazor/wwwroot/icons/encyclopedia.vehicle.credits.scale-200.png b/WotBlitzStatisticsPro.Blazor/wwwroot/icons/encyclopedia.vehicle.credits.scale-200.png
new file mode 100644
index 0000000..87f4bb2
Binary files /dev/null and b/WotBlitzStatisticsPro.Blazor/wwwroot/icons/encyclopedia.vehicle.credits.scale-200.png differ
diff --git a/WotBlitzStatisticsPro.Blazor/wwwroot/index.html b/WotBlitzStatisticsPro.Blazor/wwwroot/index.html
index d70d6e4..4bb8474 100644
--- a/WotBlitzStatisticsPro.Blazor/wwwroot/index.html
+++ b/WotBlitzStatisticsPro.Blazor/wwwroot/index.html
@@ -27,6 +27,7 @@
+