diff --git a/WotBlitzStatisticsPro.Blazor/Messages/ChangeCurrentRealmTypeMessage.cs b/WotBlitzStatisticsPro.Blazor/Messages/ChangeCurrentRealmTypeMessage.cs
new file mode 100644
index 0000000..7d49d83
--- /dev/null
+++ b/WotBlitzStatisticsPro.Blazor/Messages/ChangeCurrentRealmTypeMessage.cs
@@ -0,0 +1,15 @@
+using MediatR;
+using WotBlitzStatisticsPro.Blazor.GraphQl;
+
+namespace WotBlitzStatisticsPro.Blazor.Messages
+{
+ public class ChangeCurrentRealmTypeMessage: INotification
+ {
+ public RealmType RealmType { get; }
+
+ public ChangeCurrentRealmTypeMessage(RealmType realmType)
+ {
+ RealmType = realmType;
+ }
+ }
+}
\ No newline at end of file
diff --git a/WotBlitzStatisticsPro.Blazor/Model/UserSettings.cs b/WotBlitzStatisticsPro.Blazor/Model/UserSettings.cs
index 2f768ae..01428bd 100644
--- a/WotBlitzStatisticsPro.Blazor/Model/UserSettings.cs
+++ b/WotBlitzStatisticsPro.Blazor/Model/UserSettings.cs
@@ -1,9 +1,13 @@
-namespace WotBlitzStatisticsPro.Blazor.Model
+using WotBlitzStatisticsPro.Blazor.GraphQl;
+
+namespace WotBlitzStatisticsPro.Blazor.Model
{
public class UserSettings
{
public const string UserSettingsLocalStorageKey = "user-settings";
public string Culture { get; set; } = "en-US";
+
+ public RealmType RealmType { get; set; } = RealmType.Eu;
}
}
\ No newline at end of file
diff --git a/WotBlitzStatisticsPro.Blazor/Pages/FindPlayerListItem.razor b/WotBlitzStatisticsPro.Blazor/Pages/FindPlayerListItem.razor
index eb4c327..d844a9f 100644
--- a/WotBlitzStatisticsPro.Blazor/Pages/FindPlayerListItem.razor
+++ b/WotBlitzStatisticsPro.Blazor/Pages/FindPlayerListItem.razor
@@ -8,7 +8,7 @@
[@Player.ClanTag]
}
-
+
@Player.WinRate%
diff --git a/WotBlitzStatisticsPro.Blazor/Pages/SearchDialog.razor b/WotBlitzStatisticsPro.Blazor/Pages/SearchDialog.razor
index 3d18d54..f4ea583 100644
--- a/WotBlitzStatisticsPro.Blazor/Pages/SearchDialog.razor
+++ b/WotBlitzStatisticsPro.Blazor/Pages/SearchDialog.razor
@@ -5,7 +5,8 @@
+ Style="width: 87px"
+ Change="@OnRealmChanged">
diff --git a/WotBlitzStatisticsPro.Blazor/Pages/SearchDialogTypeBase.cs b/WotBlitzStatisticsPro.Blazor/Pages/SearchDialogTypeBase.cs
index c067be7..45a67c5 100644
--- a/WotBlitzStatisticsPro.Blazor/Pages/SearchDialogTypeBase.cs
+++ b/WotBlitzStatisticsPro.Blazor/Pages/SearchDialogTypeBase.cs
@@ -26,6 +26,9 @@ namespace WotBlitzStatisticsPro.Blazor.Pages
[Inject]
public IGraphQlBackendService GraphQlBackendService { get; set; }
+ [Inject]
+ public ILocalStorageService LocalStorageService { get; set; }
+
[Parameter]
public DialogType DialogType { get; set; }
@@ -52,6 +55,23 @@ namespace WotBlitzStatisticsPro.Blazor.Pages
}
+ protected override async Task OnInitializedAsync()
+ {
+ var settings = await LocalStorageService.ReadSettings();
+ CurrentRealmType = settings.RealmType;
+
+ await base.OnInitializedAsync();
+ }
+
+ public async Task OnRealmChanged(object value)
+ {
+ if (value is RealmType realm)
+ {
+ await Mediator.Publish(new ChangeCurrentRealmTypeMessage(realm));
+ }
+ }
+
+
public async Task OnSearchTextChange(string value)
{
if (DialogType == DialogType.FindPlayer && value.Length < 3)
diff --git a/WotBlitzStatisticsPro.Blazor/Resources/App.de.resx b/WotBlitzStatisticsPro.Blazor/Resources/App.de.resx
index b9ca076..dbccd7c 100644
--- a/WotBlitzStatisticsPro.Blazor/Resources/App.de.resx
+++ b/WotBlitzStatisticsPro.Blazor/Resources/App.de.resx
@@ -117,6 +117,9 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ Schlachten
+
Erstellt
@@ -129,6 +132,9 @@
vor Stunden
+
+ Letzte Schlacht
+
Anmelden mit WG.net-ID
@@ -153,6 +159,9 @@
Willkommen bei der WOT Blitz statistics!
+
+ Gewinnrate
+
vor Jahren
diff --git a/WotBlitzStatisticsPro.Blazor/Resources/App.ru.resx b/WotBlitzStatisticsPro.Blazor/Resources/App.ru.resx
index 9191665..e384d34 100644
--- a/WotBlitzStatisticsPro.Blazor/Resources/App.ru.resx
+++ b/WotBlitzStatisticsPro.Blazor/Resources/App.ru.resx
@@ -117,6 +117,9 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ Количество боёв
+
Создан
@@ -129,6 +132,9 @@
часов назад
+
+ Последний бой
+
Войти с WG.net ID
@@ -153,6 +159,9 @@
Добро пожаловать в WOT Blitz statistics!
+
+ Процент побед
+
лет назад
diff --git a/WotBlitzStatisticsPro.Blazor/Services/ILocalStorageService.cs b/WotBlitzStatisticsPro.Blazor/Services/ILocalStorageService.cs
index 49c53ab..6a97086 100644
--- a/WotBlitzStatisticsPro.Blazor/Services/ILocalStorageService.cs
+++ b/WotBlitzStatisticsPro.Blazor/Services/ILocalStorageService.cs
@@ -1,4 +1,5 @@
using System.Threading.Tasks;
+using WotBlitzStatisticsPro.Blazor.Model;
namespace WotBlitzStatisticsPro.Blazor.Services
{
@@ -7,5 +8,7 @@ namespace WotBlitzStatisticsPro.Blazor.Services
Task SetItemAsync(string key, T item);
Task GetItemAsync(string key);
+
+ Task ReadSettings();
}
}
\ No newline at end of file
diff --git a/WotBlitzStatisticsPro.Blazor/Services/LocalStorageService.cs b/WotBlitzStatisticsPro.Blazor/Services/LocalStorageService.cs
index 33f4a8b..b1a55d5 100644
--- a/WotBlitzStatisticsPro.Blazor/Services/LocalStorageService.cs
+++ b/WotBlitzStatisticsPro.Blazor/Services/LocalStorageService.cs
@@ -9,7 +9,7 @@ using WotBlitzStatisticsPro.Blazor.Model;
namespace WotBlitzStatisticsPro.Blazor.Services
{
- public class LocalStorageService: ILocalStorageService, INotificationHandler
+ public class LocalStorageService: ILocalStorageService, INotificationHandler, INotificationHandler
{
private readonly IJSRuntime _jsRuntime;
private readonly NavigationManager _navigationManager;
@@ -36,12 +36,24 @@ namespace WotBlitzStatisticsPro.Blazor.Services
: JsonSerializer.Deserialize(json);
}
+ public async Task ReadSettings()
+ {
+ return await GetItemAsync(UserSettings.UserSettingsLocalStorageKey) ?? new UserSettings();
+ }
+
public async Task Handle(ChangeCurrentCultureMessage notification, CancellationToken cancellationToken)
{
- var currentSettings = await GetItemAsync(UserSettings.UserSettingsLocalStorageKey) ?? new UserSettings();
+ var currentSettings = await ReadSettings();
currentSettings.Culture = notification.CultureName;
await SetItemAsync(UserSettings.UserSettingsLocalStorageKey, currentSettings);
_navigationManager.NavigateTo(_navigationManager.Uri, forceLoad: true);
}
+
+ public async Task Handle(ChangeCurrentRealmTypeMessage notification, CancellationToken cancellationToken)
+ {
+ var currentSettings = await ReadSettings();
+ currentSettings.RealmType = notification.RealmType;
+ await SetItemAsync(UserSettings.UserSettingsLocalStorageKey, currentSettings);
+ }
}
}
\ No newline at end of file
diff --git a/WotBlitzStatisticsPro.Blazor/wwwroot/index.html b/WotBlitzStatisticsPro.Blazor/wwwroot/index.html
index 808e263..80f6c1f 100644
--- a/WotBlitzStatisticsPro.Blazor/wwwroot/index.html
+++ b/WotBlitzStatisticsPro.Blazor/wwwroot/index.html
@@ -7,6 +7,7 @@
WotBlitzStatisticsPro
+