chore: infrastructure code

This commit is contained in:
Mikhail Shabanov committed 2021-05-28 15:27:36 +02:00
1 parent 44c89f2e5d
commit 14aae034af
7 files changed
+63 -3

No files matched your search

@@ -0,0 +1,12 @@
using System.Text.Json;
namespace WotBlitzStatisticsPro.Blazor.Helpers
{
public static class Formatter
{
public static string Json<T>(this T data)
{
return JsonSerializer.Serialize(data, new JsonSerializerOptions { WriteIndented = true });
}
}
}
@@ -1,5 +1,13 @@
@page "/player/{AccountId:long}" @page "/player/{AccountId:long}"
@using WotBlitzStatisticsPro.Blazor.Helpers
@inherits PlayerInfoLayoutBase @inherits PlayerInfoLayoutBase
<h3>PlayerInfoLayout</h3> <h3>PlayerInfoLayout</h3>
AccountId: @AccountId AccountId: @AccountId
@if (AccountInfo != null)
{
<p>
Player:
@AccountInfo.Json()
</p>
}
@@ -1,11 +1,34 @@
using Microsoft.AspNetCore.Components; using System.Threading.Tasks;
using Microsoft.AspNetCore.Components;
using WotBlitzStatisticsPro.Blazor.GraphQl;
using WotBlitzStatisticsPro.Blazor.Services;
namespace WotBlitzStatisticsPro.Blazor.Pages namespace WotBlitzStatisticsPro.Blazor.Pages
{ {
public class PlayerInfoLayoutBase: ComponentBase public class PlayerInfoLayoutBase: ComponentBase
{ {
[Inject]
public IGraphQlBackendService GraphQlBackendService { get; set; }
[Inject]
public ILocalStorageService LocalStorageService { get; set; }
[Parameter] [Parameter]
public long AccountId { get; set; } public long AccountId { get; set; }
public RealmType CurrentRealmType { get; set; } = RealmType.Eu;
public IPlayer_AccountInfo AccountInfo { get; set; }
protected override async Task OnInitializedAsync()
{
var settings = await LocalStorageService.ReadSettings();
CurrentRealmType = settings.RealmType;
AccountInfo = await GraphQlBackendService.GetPlayerInfo(AccountId, CurrentRealmType);
await base.OnInitializedAsync();
}
} }
} }
+2 -2
View File
@@ -42,11 +42,11 @@ namespace WotBlitzStatisticsPro.Blazor
//var useMock = Environment.GetEnvironmentVariable("USE_GRAPH_QL_MOCK"); //var useMock = Environment.GetEnvironmentVariable("USE_GRAPH_QL_MOCK");
//if (useMock != null && useMock == "true") //if (useMock != null && useMock == "true")
//{ //{
builder.Services.AddTransient<IGraphQlBackendService, GraphQlBackendMockService>(); //builder.Services.AddTransient<IGraphQlBackendService, GraphQlBackendMockService>();
//} //}
//else //else
//{ //{
//builder.Services.AddTransient<IGraphQlBackendService, GraphQlBackendService>(); builder.Services.AddTransient<IGraphQlBackendService, GraphQlBackendService>();
//} //}
var host = builder.Build(); var host = builder.Build();
@@ -74,6 +74,11 @@ namespace WotBlitzStatisticsPro.Blazor.Services
return result; return result;
} }
public Task<IPlayer_AccountInfo> GetPlayerInfo(long accountId, RealmType realmType)
{
throw new NotImplementedException();
}
private string FakerLanguage(RequestLanguage language) private string FakerLanguage(RequestLanguage language)
{ {
switch (language) switch (language)
@@ -38,6 +38,14 @@ namespace WotBlitzStatisticsPro.Blazor.Services
return clans.Data?.Clans; return clans.Data?.Clans;
} }
public async Task<IPlayer_AccountInfo> GetPlayerInfo(long accountId, RealmType realmType)
{
var playerInfo = await _client.Player.ExecuteAsync(accountId, realmType, GetLanguage());
CheckErrors(playerInfo.Errors);
return playerInfo.Data?.AccountInfo;
}
private RequestLanguage GetLanguage() private RequestLanguage GetLanguage()
{ {
var culture = CultureInfo.CurrentCulture; var culture = CultureInfo.CurrentCulture;
@@ -13,5 +13,9 @@ namespace WotBlitzStatisticsPro.Blazor.Services
Task<IReadOnlyList<IFindClans_Clans>?> FindClans( Task<IReadOnlyList<IFindClans_Clans>?> FindClans(
string clanNameOrTag, string clanNameOrTag,
RealmType realmType); RealmType realmType);
Task<IPlayer_AccountInfo> GetPlayerInfo(
long accountId,
RealmType realmType);
} }
} }