chore: player Statistics query added

This commit is contained in:
Mikhail Shabanov committed 2021-05-28 13:39:29 +02:00
1 parent 05d1cb80cb
commit 44c89f2e5d
21 files changed
+1335 -14

No files matched your search

@@ -14,6 +14,7 @@ namespace WotBlitzStatisticsPro.Blazor.Tests.Services
{
private Mock<IFindClansQuery> _findClanQueryMock;
private Mock<IFindPlayersQuery> _findPlayersQueryMock;
private Mock<IPlayerQuery> _playerQueryMock;
private WotBlitzStatisticsProClient _generatedClient;
private Mock<INotificationsService> _notificationServiceMock;
private GraphQlBackendService _service;
@@ -33,12 +34,13 @@ namespace WotBlitzStatisticsPro.Blazor.Tests.Services
{
_findClanQueryMock = new();
_findPlayersQueryMock = new();
_playerQueryMock = new();
await SetUpFindClans();
await SetUpFindPlayers();
_generatedClient =
new WotBlitzStatisticsProClient(_findClanQueryMock.Object, _findPlayersQueryMock.Object);
new WotBlitzStatisticsProClient(_findClanQueryMock.Object, _findPlayersQueryMock.Object, _playerQueryMock.Object);
_notificationServiceMock = new();
@@ -15,8 +15,9 @@ namespace Microsoft.Extensions.DependencyInjection
return new ClientServiceProvider(global::Microsoft.Extensions.DependencyInjection.ServiceCollectionContainerBuilderExtensions.BuildServiceProvider(serviceCollection));
});
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services, sp => new global::WotBlitzStatisticsPro.Blazor.GraphQl.State.WotBlitzStatisticsProClientStoreAccessor(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<global::StrawberryShake.IOperationStore>(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<ClientServiceProvider>(sp)), global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<global::StrawberryShake.IEntityStore>(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<ClientServiceProvider>(sp)), global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<global::StrawberryShake.IEntityIdSerializer>(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<ClientServiceProvider>(sp)), global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<global::System.Collections.Generic.IEnumerable<global::StrawberryShake.IOperationRequestFactory>>(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<ClientServiceProvider>(sp)), global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<global::System.Collections.Generic.IEnumerable<global::StrawberryShake.IOperationResultDataFactory>>(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<ClientServiceProvider>(sp))));
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<global::WotBlitzStatisticsPro.Blazor.GraphQl.FindPlayersQuery>(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<ClientServiceProvider>(sp)));
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<global::WotBlitzStatisticsPro.Blazor.GraphQl.FindClansQuery>(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<ClientServiceProvider>(sp)));
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<global::WotBlitzStatisticsPro.Blazor.GraphQl.FindPlayersQuery>(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<ClientServiceProvider>(sp)));
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<global::WotBlitzStatisticsPro.Blazor.GraphQl.PlayerQuery>(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<ClientServiceProvider>(sp)));
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<global::WotBlitzStatisticsPro.Blazor.GraphQl.WotBlitzStatisticsProClient>(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<ClientServiceProvider>(sp)));
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<global::WotBlitzStatisticsPro.Blazor.GraphQl.IWotBlitzStatisticsProClient>(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<ClientServiceProvider>(sp)));
return new global::StrawberryShake.ClientBuilder<global::WotBlitzStatisticsPro.Blazor.GraphQl.State.WotBlitzStatisticsProClientStoreAccessor>("WotBlitzStatisticsProClient", services, serviceCollection);
@@ -49,13 +50,6 @@ namespace Microsoft.Extensions.DependencyInjection
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::StrawberryShake.Serialization.ISerializer, global::StrawberryShake.Serialization.ByteArraySerializer>(services);
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::StrawberryShake.Serialization.ISerializer, global::StrawberryShake.Serialization.TimeSpanSerializer>(services);
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::StrawberryShake.Serialization.ISerializerResolver>(services, sp => new global::StrawberryShake.Serialization.SerializerResolver(global::System.Linq.Enumerable.Concat(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<global::System.Collections.Generic.IEnumerable<global::StrawberryShake.Serialization.ISerializer>>(parentServices), global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<global::System.Collections.Generic.IEnumerable<global::StrawberryShake.Serialization.ISerializer>>(sp))));
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::StrawberryShake.IOperationResultDataFactory<global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindPlayersResult>, global::WotBlitzStatisticsPro.Blazor.GraphQl.State.FindPlayersResultFactory>(services);
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::StrawberryShake.IOperationResultDataFactory>(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<global::StrawberryShake.IOperationResultDataFactory<global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindPlayersResult>>(sp));
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::StrawberryShake.IOperationRequestFactory>(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindPlayersQuery>(sp));
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::StrawberryShake.IOperationResultBuilder<global::System.Text.Json.JsonDocument, global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindPlayersResult>, global::WotBlitzStatisticsPro.Blazor.GraphQl.State.FindPlayersBuilder>(services);
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::StrawberryShake.IOperationExecutor<global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindPlayersResult>>(services, sp => new global::StrawberryShake.OperationExecutor<global::System.Text.Json.JsonDocument, global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindPlayersResult>(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<global::StrawberryShake.Transport.Http.IHttpConnection>(sp), () => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<global::StrawberryShake.IOperationResultBuilder<global::System.Text.Json.JsonDocument, global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindPlayersResult>>(sp), global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<global::StrawberryShake.IOperationStore>(sp), strategy));
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::WotBlitzStatisticsPro.Blazor.GraphQl.FindPlayersQuery>(services);
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindPlayersQuery>(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<global::WotBlitzStatisticsPro.Blazor.GraphQl.FindPlayersQuery>(sp));
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::StrawberryShake.IOperationResultDataFactory<global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindClansResult>, global::WotBlitzStatisticsPro.Blazor.GraphQl.State.FindClansResultFactory>(services);
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::StrawberryShake.IOperationResultDataFactory>(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<global::StrawberryShake.IOperationResultDataFactory<global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindClansResult>>(sp));
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::StrawberryShake.IOperationRequestFactory>(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindClansQuery>(sp));
@@ -63,6 +57,20 @@ namespace Microsoft.Extensions.DependencyInjection
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::StrawberryShake.IOperationExecutor<global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindClansResult>>(services, sp => new global::StrawberryShake.OperationExecutor<global::System.Text.Json.JsonDocument, global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindClansResult>(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<global::StrawberryShake.Transport.Http.IHttpConnection>(sp), () => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<global::StrawberryShake.IOperationResultBuilder<global::System.Text.Json.JsonDocument, global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindClansResult>>(sp), global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<global::StrawberryShake.IOperationStore>(sp), strategy));
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::WotBlitzStatisticsPro.Blazor.GraphQl.FindClansQuery>(services);
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindClansQuery>(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<global::WotBlitzStatisticsPro.Blazor.GraphQl.FindClansQuery>(sp));
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::StrawberryShake.IOperationResultDataFactory<global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindPlayersResult>, global::WotBlitzStatisticsPro.Blazor.GraphQl.State.FindPlayersResultFactory>(services);
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::StrawberryShake.IOperationResultDataFactory>(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<global::StrawberryShake.IOperationResultDataFactory<global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindPlayersResult>>(sp));
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::StrawberryShake.IOperationRequestFactory>(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindPlayersQuery>(sp));
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::StrawberryShake.IOperationResultBuilder<global::System.Text.Json.JsonDocument, global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindPlayersResult>, global::WotBlitzStatisticsPro.Blazor.GraphQl.State.FindPlayersBuilder>(services);
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::StrawberryShake.IOperationExecutor<global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindPlayersResult>>(services, sp => new global::StrawberryShake.OperationExecutor<global::System.Text.Json.JsonDocument, global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindPlayersResult>(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<global::StrawberryShake.Transport.Http.IHttpConnection>(sp), () => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<global::StrawberryShake.IOperationResultBuilder<global::System.Text.Json.JsonDocument, global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindPlayersResult>>(sp), global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<global::StrawberryShake.IOperationStore>(sp), strategy));
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::WotBlitzStatisticsPro.Blazor.GraphQl.FindPlayersQuery>(services);
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindPlayersQuery>(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<global::WotBlitzStatisticsPro.Blazor.GraphQl.FindPlayersQuery>(sp));
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::StrawberryShake.IOperationResultDataFactory<global::WotBlitzStatisticsPro.Blazor.GraphQl.IPlayerResult>, global::WotBlitzStatisticsPro.Blazor.GraphQl.State.PlayerResultFactory>(services);
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::StrawberryShake.IOperationResultDataFactory>(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<global::StrawberryShake.IOperationResultDataFactory<global::WotBlitzStatisticsPro.Blazor.GraphQl.IPlayerResult>>(sp));
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::StrawberryShake.IOperationRequestFactory>(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<global::WotBlitzStatisticsPro.Blazor.GraphQl.IPlayerQuery>(sp));
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::StrawberryShake.IOperationResultBuilder<global::System.Text.Json.JsonDocument, global::WotBlitzStatisticsPro.Blazor.GraphQl.IPlayerResult>, global::WotBlitzStatisticsPro.Blazor.GraphQl.State.PlayerBuilder>(services);
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::StrawberryShake.IOperationExecutor<global::WotBlitzStatisticsPro.Blazor.GraphQl.IPlayerResult>>(services, sp => new global::StrawberryShake.OperationExecutor<global::System.Text.Json.JsonDocument, global::WotBlitzStatisticsPro.Blazor.GraphQl.IPlayerResult>(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<global::StrawberryShake.Transport.Http.IHttpConnection>(sp), () => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<global::StrawberryShake.IOperationResultBuilder<global::System.Text.Json.JsonDocument, global::WotBlitzStatisticsPro.Blazor.GraphQl.IPlayerResult>>(sp), global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<global::StrawberryShake.IOperationStore>(sp), strategy));
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::WotBlitzStatisticsPro.Blazor.GraphQl.PlayerQuery>(services);
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::WotBlitzStatisticsPro.Blazor.GraphQl.IPlayerQuery>(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<global::WotBlitzStatisticsPro.Blazor.GraphQl.PlayerQuery>(sp));
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::StrawberryShake.IEntityIdSerializer, global::WotBlitzStatisticsPro.Blazor.GraphQl.State.WotBlitzStatisticsProClientEntityIdFactory>(services);
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::WotBlitzStatisticsPro.Blazor.GraphQl.WotBlitzStatisticsProClient>(services);
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::WotBlitzStatisticsPro.Blazor.GraphQl.IWotBlitzStatisticsProClient>(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<global::WotBlitzStatisticsPro.Blazor.GraphQl.WotBlitzStatisticsProClient>(sp));
@@ -0,0 +1,50 @@
// <auto-generated/>
#nullable enable
namespace WotBlitzStatisticsPro.Blazor.GraphQl
{
/// <summary>
/// Represents the operation service of the Player GraphQL operation
/// <code>
/// query Player($accountId: Long!, $realmType: RealmType!, $requestLanguage: RequestLanguage!) {
/// accountInfo(accountId: $accountId, realmType: $realmType, requestLanguage: $requestLanguage) {
/// __typename
/// accountId
/// nickname
/// createdAt
/// lastBattleTime
/// battles
/// winRate
/// avgDamage
/// avgXp
/// avgTier
/// damageCoefficient
/// survivalRate
/// tanks {
/// __typename
/// tankId
/// name
/// tankNation
/// tankType
/// tier
/// isPremium
/// lastBattleTime
/// battles
/// winRate
/// avgDamage
/// avgXp
/// avgBattleLifeTimeInMinutes
/// damageCoefficient
/// survivalRate
/// }
/// }
/// }
/// </code>
/// </summary>
[global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.2.2.0")]
public interface IPlayerQuery : global::StrawberryShake.IOperationRequestFactory
{
global::System.Threading.Tasks.Task<global::StrawberryShake.IOperationResult<IPlayerResult>> ExecuteAsync(global::System.Int64 accountId, global::WotBlitzStatisticsPro.Blazor.GraphQl.RealmType realmType, global::WotBlitzStatisticsPro.Blazor.GraphQl.RequestLanguage requestLanguage, global::System.Threading.CancellationToken cancellationToken = default);
global::System.IObservable<global::StrawberryShake.IOperationResult<IPlayerResult>> Watch(global::System.Int64 accountId, global::WotBlitzStatisticsPro.Blazor.GraphQl.RealmType realmType, global::WotBlitzStatisticsPro.Blazor.GraphQl.RequestLanguage requestLanguage, global::StrawberryShake.ExecutionStrategy? strategy = null);
}
}
@@ -0,0 +1,14 @@
// <auto-generated/>
#nullable enable
namespace WotBlitzStatisticsPro.Blazor.GraphQl
{
[global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.2.2.0")]
public interface IPlayerResult
{
/// <summary>
/// Gathers all account information
/// </summary>
public global::WotBlitzStatisticsPro.Blazor.GraphQl.IPlayer_AccountInfo AccountInfo { get; }
}
}
@@ -0,0 +1,72 @@
// <auto-generated/>
#nullable enable
namespace WotBlitzStatisticsPro.Blazor.GraphQl
{
/// <summary>
/// Information about player
/// </summary>
[global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.2.2.0")]
public interface IPlayer_AccountInfo
{
/// <summary>
/// Player account identifier
/// </summary>
public global::System.Int64 AccountId { get; }
/// <summary>
/// Player's nick
/// </summary>
public global::System.String? Nickname { get; }
/// <summary>
/// Account creation date
/// </summary>
public global::System.DateTimeOffset CreatedAt { get; }
/// <summary>
/// Last battle time
/// </summary>
public global::System.DateTimeOffset LastBattleTime { get; }
/// <summary>
/// Battles count
/// </summary>
public global::System.Int64 Battles { get; }
/// <summary>
/// Player's win rate
/// </summary>
public global::System.Decimal WinRate { get; }
/// <summary>
/// Player's average damage
/// </summary>
public global::System.Decimal AvgDamage { get; }
/// <summary>
/// Player's average XP
/// </summary>
public global::System.Decimal AvgXp { get; }
/// <summary>
/// Average tier
/// </summary>
public global::System.Double AvgTier { get; }
/// <summary>
/// Damage coefficient
/// </summary>
public global::System.Decimal DamageCoefficient { get; }
/// <summary>
/// Rate of survival
/// </summary>
public global::System.Decimal SurvivalRate { get; }
/// <summary>
/// All player's tanks
/// </summary>
public global::System.Collections.Generic.IReadOnlyList<global::WotBlitzStatisticsPro.Blazor.GraphQl.IPlayer_AccountInfo_Tanks>? Tanks { get; }
}
}
@@ -0,0 +1,13 @@
// <auto-generated/>
#nullable enable
namespace WotBlitzStatisticsPro.Blazor.GraphQl
{
/// <summary>
/// Information about player
/// </summary>
[global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.2.2.0")]
public interface IPlayer_AccountInfo_AccountInfoResponse : IPlayer_AccountInfo
{
}
}
@@ -0,0 +1,82 @@
// <auto-generated/>
#nullable enable
namespace WotBlitzStatisticsPro.Blazor.GraphQl
{
/// <summary>
/// Information about player's tank
/// </summary>
[global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.2.2.0")]
public interface IPlayer_AccountInfo_Tanks
{
/// <summary>
/// Tank identifier
/// </summary>
public global::System.Int64 TankId { get; }
/// <summary>
/// Tank name
/// </summary>
public global::System.String? Name { get; }
/// <summary>
/// Localized tank nation name
/// </summary>
public global::System.String? TankNation { get; }
/// <summary>
/// Localized tank type name
/// </summary>
public global::System.String? TankType { get; }
/// <summary>
/// Tank tier
/// </summary>
public global::System.Int32 Tier { get; }
/// <summary>
/// Is it premium tank or not
/// </summary>
public global::System.Boolean IsPremium { get; }
/// <summary>
/// Last battle
/// </summary>
public global::System.DateTimeOffset LastBattleTime { get; }
/// <summary>
/// Battles count
/// </summary>
public global::System.Int64 Battles { get; }
/// <summary>
/// Tank's win rate
/// </summary>
public global::System.Decimal WinRate { get; }
/// <summary>
/// Average tank's damage
/// </summary>
public global::System.Decimal AvgDamage { get; }
/// <summary>
/// Average XP
/// </summary>
public global::System.Decimal AvgXp { get; }
/// <summary>
/// Average life time in battle until tank is killed.
/// </summary>
public global::System.Decimal AvgBattleLifeTimeInMinutes { get; }
/// <summary>
/// Damage coefficient
/// </summary>
public global::System.Decimal DamageCoefficient { get; }
/// <summary>
/// Rate of survival
/// </summary>
public global::System.Decimal SurvivalRate { get; }
}
}
@@ -0,0 +1,13 @@
// <auto-generated/>
#nullable enable
namespace WotBlitzStatisticsPro.Blazor.GraphQl
{
/// <summary>
/// Information about player's tank
/// </summary>
[global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.2.2.0")]
public interface IPlayer_AccountInfo_Tanks_TankInfoResponse : IPlayer_AccountInfo_Tanks
{
}
}
@@ -9,8 +9,10 @@ namespace WotBlitzStatisticsPro.Blazor.GraphQl
[global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.2.2.0")]
public interface IWotBlitzStatisticsProClient
{
global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindClansQuery FindClans { get; }
global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindPlayersQuery FindPlayers { get; }
global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindClansQuery FindClans { get; }
global::WotBlitzStatisticsPro.Blazor.GraphQl.IPlayerQuery Player { get; }
}
}
@@ -0,0 +1,106 @@
// <auto-generated/>
#nullable enable
namespace WotBlitzStatisticsPro.Blazor.GraphQl
{
/// <summary>
/// Represents the operation service of the Player GraphQL operation
/// <code>
/// query Player($accountId: Long!, $realmType: RealmType!, $requestLanguage: RequestLanguage!) {
/// accountInfo(accountId: $accountId, realmType: $realmType, requestLanguage: $requestLanguage) {
/// __typename
/// accountId
/// nickname
/// createdAt
/// lastBattleTime
/// battles
/// winRate
/// avgDamage
/// avgXp
/// avgTier
/// damageCoefficient
/// survivalRate
/// tanks {
/// __typename
/// tankId
/// name
/// tankNation
/// tankType
/// tier
/// isPremium
/// lastBattleTime
/// battles
/// winRate
/// avgDamage
/// avgXp
/// avgBattleLifeTimeInMinutes
/// damageCoefficient
/// survivalRate
/// }
/// }
/// }
/// </code>
/// </summary>
[global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.2.2.0")]
public partial class PlayerQuery : global::WotBlitzStatisticsPro.Blazor.GraphQl.IPlayerQuery
{
private readonly global::StrawberryShake.IOperationExecutor<IPlayerResult> _operationExecutor;
private readonly global::StrawberryShake.Serialization.IInputValueFormatter _longFormatter;
private readonly global::StrawberryShake.Serialization.IInputValueFormatter _realmTypeFormatter;
private readonly global::StrawberryShake.Serialization.IInputValueFormatter _requestLanguageFormatter;
public PlayerQuery(global::StrawberryShake.IOperationExecutor<IPlayerResult> operationExecutor, global::StrawberryShake.Serialization.ISerializerResolver serializerResolver)
{
_operationExecutor = operationExecutor ?? throw new global::System.ArgumentNullException(nameof(operationExecutor));
_longFormatter = serializerResolver.GetInputValueFormatter("Long");
_realmTypeFormatter = serializerResolver.GetInputValueFormatter("RealmType");
_requestLanguageFormatter = serializerResolver.GetInputValueFormatter("RequestLanguage");
}
global::System.Type global::StrawberryShake.IOperationRequestFactory.ResultType => typeof(IPlayerResult);
public async global::System.Threading.Tasks.Task<global::StrawberryShake.IOperationResult<IPlayerResult>> ExecuteAsync(global::System.Int64 accountId, global::WotBlitzStatisticsPro.Blazor.GraphQl.RealmType realmType, global::WotBlitzStatisticsPro.Blazor.GraphQl.RequestLanguage requestLanguage, global::System.Threading.CancellationToken cancellationToken = default)
{
var request = CreateRequest(accountId, realmType, requestLanguage);
return await _operationExecutor.ExecuteAsync(request, cancellationToken).ConfigureAwait(false);
}
public global::System.IObservable<global::StrawberryShake.IOperationResult<IPlayerResult>> Watch(global::System.Int64 accountId, global::WotBlitzStatisticsPro.Blazor.GraphQl.RealmType realmType, global::WotBlitzStatisticsPro.Blazor.GraphQl.RequestLanguage requestLanguage, global::StrawberryShake.ExecutionStrategy? strategy = null)
{
var request = CreateRequest(accountId, realmType, requestLanguage);
return _operationExecutor.Watch(request, strategy);
}
private global::StrawberryShake.OperationRequest CreateRequest(global::System.Int64 accountId, global::WotBlitzStatisticsPro.Blazor.GraphQl.RealmType realmType, global::WotBlitzStatisticsPro.Blazor.GraphQl.RequestLanguage requestLanguage)
{
var variables = new global::System.Collections.Generic.Dictionary<global::System.String, global::System.Object?>();
variables.Add("accountId", FormatAccountId(accountId));
variables.Add("realmType", FormatRealmType(realmType));
variables.Add("requestLanguage", FormatRequestLanguage(requestLanguage));
return CreateRequest(variables);
}
private global::StrawberryShake.OperationRequest CreateRequest(global::System.Collections.Generic.IReadOnlyDictionary<global::System.String, global::System.Object?>? variables)
{
return new global::StrawberryShake.OperationRequest(id: PlayerQueryDocument.Instance.Hash.Value, name: "Player", document: PlayerQueryDocument.Instance, strategy: global::StrawberryShake.RequestStrategy.Default, variables: variables);
}
private global::System.Object? FormatAccountId(global::System.Int64 value)
{
return _longFormatter.Format(value);
}
private global::System.Object? FormatRealmType(global::WotBlitzStatisticsPro.Blazor.GraphQl.RealmType value)
{
return _realmTypeFormatter.Format(value);
}
private global::System.Object? FormatRequestLanguage(global::WotBlitzStatisticsPro.Blazor.GraphQl.RequestLanguage value)
{
return _requestLanguageFormatter.Format(value);
}
global::StrawberryShake.OperationRequest global::StrawberryShake.IOperationRequestFactory.Create(global::System.Collections.Generic.IReadOnlyDictionary<global::System.String, global::System.Object?>? variables)
{
return CreateRequest(variables!);
}
}
}
@@ -0,0 +1,64 @@
// <auto-generated/>
#nullable enable
namespace WotBlitzStatisticsPro.Blazor.GraphQl
{
/// <summary>
/// Represents the operation service of the Player GraphQL operation
/// <code>
/// query Player($accountId: Long!, $realmType: RealmType!, $requestLanguage: RequestLanguage!) {
/// accountInfo(accountId: $accountId, realmType: $realmType, requestLanguage: $requestLanguage) {
/// __typename
/// accountId
/// nickname
/// createdAt
/// lastBattleTime
/// battles
/// winRate
/// avgDamage
/// avgXp
/// avgTier
/// damageCoefficient
/// survivalRate
/// tanks {
/// __typename
/// tankId
/// name
/// tankNation
/// tankType
/// tier
/// isPremium
/// lastBattleTime
/// battles
/// winRate
/// avgDamage
/// avgXp
/// avgBattleLifeTimeInMinutes
/// damageCoefficient
/// survivalRate
/// }
/// }
/// }
/// </code>
/// </summary>
[global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.2.2.0")]
public partial class PlayerQueryDocument : global::StrawberryShake.IDocument
{
private PlayerQueryDocument()
{
}
public static PlayerQueryDocument Instance { get; } = new PlayerQueryDocument();
public global::StrawberryShake.OperationKind Kind => global::StrawberryShake.OperationKind.Query;
public global::System.ReadOnlySpan<global::System.Byte> Body => new global::System.Byte[]{0x71, 0x75, 0x65, 0x72, 0x79, 0x20, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x28, 0x24, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x3a, 0x20, 0x4c, 0x6f, 0x6e, 0x67, 0x21, 0x2c, 0x20, 0x24, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x21, 0x2c, 0x20, 0x24, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x3a, 0x20, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x21, 0x29, 0x20, 0x7b, 0x20, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x28, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x3a, 0x20, 0x24, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x2c, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x24, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x2c, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x3a, 0x20, 0x24, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x29, 0x20, 0x7b, 0x20, 0x5f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x20, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x20, 0x6c, 0x61, 0x73, 0x74, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x20, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x73, 0x20, 0x77, 0x69, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x20, 0x61, 0x76, 0x67, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x20, 0x61, 0x76, 0x67, 0x58, 0x70, 0x20, 0x61, 0x76, 0x67, 0x54, 0x69, 0x65, 0x72, 0x20, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x65, 0x66, 0x66, 0x69, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x20, 0x73, 0x75, 0x72, 0x76, 0x69, 0x76, 0x61, 0x6c, 0x52, 0x61, 0x74, 0x65, 0x20, 0x74, 0x61, 0x6e, 0x6b, 0x73, 0x20, 0x7b, 0x20, 0x5f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x74, 0x61, 0x6e, 0x6b, 0x49, 0x64, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x74, 0x61, 0x6e, 0x6b, 0x4e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x20, 0x74, 0x69, 0x65, 0x72, 0x20, 0x69, 0x73, 0x50, 0x72, 0x65, 0x6d, 0x69, 0x75, 0x6d, 0x20, 0x6c, 0x61, 0x73, 0x74, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x20, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x73, 0x20, 0x77, 0x69, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x20, 0x61, 0x76, 0x67, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x20, 0x61, 0x76, 0x67, 0x58, 0x70, 0x20, 0x61, 0x76, 0x67, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x4c, 0x69, 0x66, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x49, 0x6e, 0x4d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x73, 0x20, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x65, 0x66, 0x66, 0x69, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x20, 0x73, 0x75, 0x72, 0x76, 0x69, 0x76, 0x61, 0x6c, 0x52, 0x61, 0x74, 0x65, 0x20, 0x7d, 0x20, 0x7d, 0x20, 0x7d};
public global::StrawberryShake.DocumentHash Hash { get; } = new global::StrawberryShake.DocumentHash("md5Hash", "d87965bc71ef355d4d296088704d4d40");
public override global::System.String ToString()
{
#if NETSTANDARD2_0
return global::System.Text.Encoding.UTF8.GetString(Body.ToArray());
#else
return global::System.Text.Encoding.UTF8.GetString(Body);
#endif
}
}
}
@@ -0,0 +1,69 @@
// <auto-generated/>
#nullable enable
namespace WotBlitzStatisticsPro.Blazor.GraphQl
{
[global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.2.2.0")]
public partial class PlayerResult : global::System.IEquatable<PlayerResult>, IPlayerResult
{
public PlayerResult(global::WotBlitzStatisticsPro.Blazor.GraphQl.IPlayer_AccountInfo accountInfo)
{
AccountInfo = accountInfo;
}
/// <summary>
/// Gathers all account information
/// </summary>
public global::WotBlitzStatisticsPro.Blazor.GraphQl.IPlayer_AccountInfo AccountInfo { get; }
public virtual global::System.Boolean Equals(PlayerResult? other)
{
if (ReferenceEquals(null, other))
{
return false;
}
if (ReferenceEquals(this, other))
{
return true;
}
if (other.GetType() != GetType())
{
return false;
}
return (AccountInfo.Equals(other.AccountInfo));
}
public override global::System.Boolean Equals(global::System.Object? obj)
{
if (ReferenceEquals(null, obj))
{
return false;
}
if (ReferenceEquals(this, obj))
{
return true;
}
if (obj.GetType() != GetType())
{
return false;
}
return Equals((PlayerResult)obj);
}
public override global::System.Int32 GetHashCode()
{
unchecked
{
int hash = 5;
hash ^= 397 * AccountInfo.GetHashCode();
return hash;
}
}
}
}
@@ -0,0 +1,160 @@
// <auto-generated/>
#nullable enable
namespace WotBlitzStatisticsPro.Blazor.GraphQl
{
/// <summary>
/// Information about player
/// </summary>
[global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.2.2.0")]
public partial class Player_AccountInfo_AccountInfoResponse : global::System.IEquatable<Player_AccountInfo_AccountInfoResponse>, IPlayer_AccountInfo_AccountInfoResponse
{
public Player_AccountInfo_AccountInfoResponse(global::System.Int64 accountId, global::System.String? nickname, global::System.DateTimeOffset createdAt, global::System.DateTimeOffset lastBattleTime, global::System.Int64 battles, global::System.Decimal winRate, global::System.Decimal avgDamage, global::System.Decimal avgXp, global::System.Double avgTier, global::System.Decimal damageCoefficient, global::System.Decimal survivalRate, global::System.Collections.Generic.IReadOnlyList<global::WotBlitzStatisticsPro.Blazor.GraphQl.IPlayer_AccountInfo_Tanks>? tanks)
{
AccountId = accountId;
Nickname = nickname;
CreatedAt = createdAt;
LastBattleTime = lastBattleTime;
Battles = battles;
WinRate = winRate;
AvgDamage = avgDamage;
AvgXp = avgXp;
AvgTier = avgTier;
DamageCoefficient = damageCoefficient;
SurvivalRate = survivalRate;
Tanks = tanks;
}
/// <summary>
/// Player account identifier
/// </summary>
public global::System.Int64 AccountId { get; }
/// <summary>
/// Player's nick
/// </summary>
public global::System.String? Nickname { get; }
/// <summary>
/// Account creation date
/// </summary>
public global::System.DateTimeOffset CreatedAt { get; }
/// <summary>
/// Last battle time
/// </summary>
public global::System.DateTimeOffset LastBattleTime { get; }
/// <summary>
/// Battles count
/// </summary>
public global::System.Int64 Battles { get; }
/// <summary>
/// Player's win rate
/// </summary>
public global::System.Decimal WinRate { get; }
/// <summary>
/// Player's average damage
/// </summary>
public global::System.Decimal AvgDamage { get; }
/// <summary>
/// Player's average XP
/// </summary>
public global::System.Decimal AvgXp { get; }
/// <summary>
/// Average tier
/// </summary>
public global::System.Double AvgTier { get; }
/// <summary>
/// Damage coefficient
/// </summary>
public global::System.Decimal DamageCoefficient { get; }
/// <summary>
/// Rate of survival
/// </summary>
public global::System.Decimal SurvivalRate { get; }
/// <summary>
/// All player's tanks
/// </summary>
public global::System.Collections.Generic.IReadOnlyList<global::WotBlitzStatisticsPro.Blazor.GraphQl.IPlayer_AccountInfo_Tanks>? Tanks { get; }
public virtual global::System.Boolean Equals(Player_AccountInfo_AccountInfoResponse? other)
{
if (ReferenceEquals(null, other))
{
return false;
}
if (ReferenceEquals(this, other))
{
return true;
}
if (other.GetType() != GetType())
{
return false;
}
return (AccountId == other.AccountId) && ((Nickname is null && other.Nickname is null) || Nickname != null && Nickname.Equals(other.Nickname)) && CreatedAt.Equals(other.CreatedAt) && LastBattleTime.Equals(other.LastBattleTime) && Battles == other.Battles && WinRate == other.WinRate && AvgDamage == other.AvgDamage && AvgXp == other.AvgXp && AvgTier == other.AvgTier && DamageCoefficient == other.DamageCoefficient && SurvivalRate == other.SurvivalRate && global::StrawberryShake.Helper.ComparisonHelper.SequenceEqual(Tanks, other.Tanks);
}
public override global::System.Boolean Equals(global::System.Object? obj)
{
if (ReferenceEquals(null, obj))
{
return false;
}
if (ReferenceEquals(this, obj))
{
return true;
}
if (obj.GetType() != GetType())
{
return false;
}
return Equals((Player_AccountInfo_AccountInfoResponse)obj);
}
public override global::System.Int32 GetHashCode()
{
unchecked
{
int hash = 5;
hash ^= 397 * AccountId.GetHashCode();
if (Nickname != null)
{
hash ^= 397 * Nickname.GetHashCode();
}
hash ^= 397 * CreatedAt.GetHashCode();
hash ^= 397 * LastBattleTime.GetHashCode();
hash ^= 397 * Battles.GetHashCode();
hash ^= 397 * WinRate.GetHashCode();
hash ^= 397 * AvgDamage.GetHashCode();
hash ^= 397 * AvgXp.GetHashCode();
hash ^= 397 * AvgTier.GetHashCode();
hash ^= 397 * DamageCoefficient.GetHashCode();
hash ^= 397 * SurvivalRate.GetHashCode();
if (Tanks != null)
{
foreach (var Tanks_elm in Tanks)
{
hash ^= 397 * Tanks_elm.GetHashCode();
}
}
return hash;
}
}
}
}
@@ -0,0 +1,175 @@
// <auto-generated/>
#nullable enable
namespace WotBlitzStatisticsPro.Blazor.GraphQl
{
/// <summary>
/// Information about player's tank
/// </summary>
[global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.2.2.0")]
public partial class Player_AccountInfo_Tanks_TankInfoResponse : global::System.IEquatable<Player_AccountInfo_Tanks_TankInfoResponse>, IPlayer_AccountInfo_Tanks_TankInfoResponse
{
public Player_AccountInfo_Tanks_TankInfoResponse(global::System.Int64 tankId, global::System.String? name, global::System.String? tankNation, global::System.String? tankType, global::System.Int32 tier, global::System.Boolean isPremium, global::System.DateTimeOffset lastBattleTime, global::System.Int64 battles, global::System.Decimal winRate, global::System.Decimal avgDamage, global::System.Decimal avgXp, global::System.Decimal avgBattleLifeTimeInMinutes, global::System.Decimal damageCoefficient, global::System.Decimal survivalRate)
{
TankId = tankId;
Name = name;
TankNation = tankNation;
TankType = tankType;
Tier = tier;
IsPremium = isPremium;
LastBattleTime = lastBattleTime;
Battles = battles;
WinRate = winRate;
AvgDamage = avgDamage;
AvgXp = avgXp;
AvgBattleLifeTimeInMinutes = avgBattleLifeTimeInMinutes;
DamageCoefficient = damageCoefficient;
SurvivalRate = survivalRate;
}
/// <summary>
/// Tank identifier
/// </summary>
public global::System.Int64 TankId { get; }
/// <summary>
/// Tank name
/// </summary>
public global::System.String? Name { get; }
/// <summary>
/// Localized tank nation name
/// </summary>
public global::System.String? TankNation { get; }
/// <summary>
/// Localized tank type name
/// </summary>
public global::System.String? TankType { get; }
/// <summary>
/// Tank tier
/// </summary>
public global::System.Int32 Tier { get; }
/// <summary>
/// Is it premium tank or not
/// </summary>
public global::System.Boolean IsPremium { get; }
/// <summary>
/// Last battle
/// </summary>
public global::System.DateTimeOffset LastBattleTime { get; }
/// <summary>
/// Battles count
/// </summary>
public global::System.Int64 Battles { get; }
/// <summary>
/// Tank's win rate
/// </summary>
public global::System.Decimal WinRate { get; }
/// <summary>
/// Average tank's damage
/// </summary>
public global::System.Decimal AvgDamage { get; }
/// <summary>
/// Average XP
/// </summary>
public global::System.Decimal AvgXp { get; }
/// <summary>
/// Average life time in battle until tank is killed.
/// </summary>
public global::System.Decimal AvgBattleLifeTimeInMinutes { get; }
/// <summary>
/// Damage coefficient
/// </summary>
public global::System.Decimal DamageCoefficient { get; }
/// <summary>
/// Rate of survival
/// </summary>
public global::System.Decimal SurvivalRate { get; }
public virtual global::System.Boolean Equals(Player_AccountInfo_Tanks_TankInfoResponse? other)
{
if (ReferenceEquals(null, other))
{
return false;
}
if (ReferenceEquals(this, other))
{
return true;
}
if (other.GetType() != GetType())
{
return false;
}
return (TankId == other.TankId) && ((Name is null && other.Name is null) || Name != null && Name.Equals(other.Name)) && ((TankNation is null && other.TankNation is null) || TankNation != null && TankNation.Equals(other.TankNation)) && ((TankType is null && other.TankType is null) || TankType != null && TankType.Equals(other.TankType)) && Tier == other.Tier && IsPremium == other.IsPremium && LastBattleTime.Equals(other.LastBattleTime) && Battles == other.Battles && WinRate == other.WinRate && AvgDamage == other.AvgDamage && AvgXp == other.AvgXp && AvgBattleLifeTimeInMinutes == other.AvgBattleLifeTimeInMinutes && DamageCoefficient == other.DamageCoefficient && SurvivalRate == other.SurvivalRate;
}
public override global::System.Boolean Equals(global::System.Object? obj)
{
if (ReferenceEquals(null, obj))
{
return false;
}
if (ReferenceEquals(this, obj))
{
return true;
}
if (obj.GetType() != GetType())
{
return false;
}
return Equals((Player_AccountInfo_Tanks_TankInfoResponse)obj);
}
public override global::System.Int32 GetHashCode()
{
unchecked
{
int hash = 5;
hash ^= 397 * TankId.GetHashCode();
if (Name != null)
{
hash ^= 397 * Name.GetHashCode();
}
if (TankNation != null)
{
hash ^= 397 * TankNation.GetHashCode();
}
if (TankType != null)
{
hash ^= 397 * TankType.GetHashCode();
}
hash ^= 397 * Tier.GetHashCode();
hash ^= 397 * IsPremium.GetHashCode();
hash ^= 397 * LastBattleTime.GetHashCode();
hash ^= 397 * Battles.GetHashCode();
hash ^= 397 * WinRate.GetHashCode();
hash ^= 397 * AvgDamage.GetHashCode();
hash ^= 397 * AvgXp.GetHashCode();
hash ^= 397 * AvgBattleLifeTimeInMinutes.GetHashCode();
hash ^= 397 * DamageCoefficient.GetHashCode();
hash ^= 397 * SurvivalRate.GetHashCode();
return hash;
}
}
}
}
@@ -0,0 +1,65 @@
// <auto-generated/>
#nullable enable
namespace WotBlitzStatisticsPro.Blazor.GraphQl.State
{
///<summary>Information about player</summary>
[global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.2.2.0")]
public partial class AccountInfoResponseData
{
public AccountInfoResponseData(global::System.String __typename, global::System.Int64? accountId = default !, global::System.String? nickname = default !, global::System.DateTimeOffset? createdAt = default !, global::System.DateTimeOffset? lastBattleTime = default !, global::System.Int64? battles = default !, global::System.Decimal? winRate = default !, global::System.Decimal? avgDamage = default !, global::System.Decimal? avgXp = default !, global::System.Double? avgTier = default !, global::System.Decimal? damageCoefficient = default !, global::System.Decimal? survivalRate = default !, global::System.Collections.Generic.IReadOnlyList<global::WotBlitzStatisticsPro.Blazor.GraphQl.State.TankInfoResponseData>? tanks = default !)
{
this.__typename = __typename ?? throw new global::System.ArgumentNullException(nameof(__typename));
AccountId = accountId;
Nickname = nickname;
CreatedAt = createdAt;
LastBattleTime = lastBattleTime;
Battles = battles;
WinRate = winRate;
AvgDamage = avgDamage;
AvgXp = avgXp;
AvgTier = avgTier;
DamageCoefficient = damageCoefficient;
SurvivalRate = survivalRate;
Tanks = tanks;
}
public global::System.String __typename { get; }
///<summary>Player account identifier</summary>
public global::System.Int64? AccountId { get; }
///<summary>Player's nick</summary>
public global::System.String? Nickname { get; }
///<summary>Account creation date</summary>
public global::System.DateTimeOffset? CreatedAt { get; }
///<summary>Last battle time</summary>
public global::System.DateTimeOffset? LastBattleTime { get; }
///<summary>Battles count</summary>
public global::System.Int64? Battles { get; }
///<summary>Player's win rate</summary>
public global::System.Decimal? WinRate { get; }
///<summary>Player's average damage</summary>
public global::System.Decimal? AvgDamage { get; }
///<summary>Player's average XP</summary>
public global::System.Decimal? AvgXp { get; }
///<summary>Average tier</summary>
public global::System.Double? AvgTier { get; }
///<summary>Damage coefficient</summary>
public global::System.Decimal? DamageCoefficient { get; }
///<summary>Rate of survival</summary>
public global::System.Decimal? SurvivalRate { get; }
///<summary>All player's tanks</summary>
public global::System.Collections.Generic.IReadOnlyList<global::WotBlitzStatisticsPro.Blazor.GraphQl.State.TankInfoResponseData>? Tanks { get; }
}
}
@@ -0,0 +1,201 @@
// <auto-generated/>
#nullable enable
namespace WotBlitzStatisticsPro.Blazor.GraphQl.State
{
[global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.2.2.0")]
public partial class PlayerBuilder : global::StrawberryShake.IOperationResultBuilder<global::System.Text.Json.JsonDocument, global::WotBlitzStatisticsPro.Blazor.GraphQl.IPlayerResult>
{
private readonly global::StrawberryShake.IEntityStore _entityStore;
private readonly global::StrawberryShake.IEntityIdSerializer _idSerializer;
private readonly global::StrawberryShake.IOperationResultDataFactory<global::WotBlitzStatisticsPro.Blazor.GraphQl.IPlayerResult> _resultDataFactory;
private readonly global::StrawberryShake.Serialization.ILeafValueParser<global::System.String, global::WotBlitzStatisticsPro.Blazor.GraphQl.RealmType> _realmTypeParser;
private readonly global::StrawberryShake.Serialization.ILeafValueParser<global::System.String, global::WotBlitzStatisticsPro.Blazor.GraphQl.RequestLanguage> _requestLanguageParser;
private readonly global::StrawberryShake.Serialization.ILeafValueParser<global::System.Int64, global::System.Int64> _longParser;
private readonly global::StrawberryShake.Serialization.ILeafValueParser<global::System.String, global::System.String> _stringParser;
private readonly global::StrawberryShake.Serialization.ILeafValueParser<global::System.String, global::System.DateTimeOffset> _dateTimeParser;
private readonly global::StrawberryShake.Serialization.ILeafValueParser<global::System.Decimal, global::System.Decimal> _decimalParser;
private readonly global::StrawberryShake.Serialization.ILeafValueParser<global::System.Double, global::System.Double> _floatParser;
private readonly global::StrawberryShake.Serialization.ILeafValueParser<global::System.Int32, global::System.Int32> _intParser;
private readonly global::StrawberryShake.Serialization.ILeafValueParser<global::System.Boolean, global::System.Boolean> _booleanParser;
public PlayerBuilder(global::StrawberryShake.IEntityStore entityStore, global::StrawberryShake.IEntityIdSerializer idSerializer, global::StrawberryShake.IOperationResultDataFactory<global::WotBlitzStatisticsPro.Blazor.GraphQl.IPlayerResult> resultDataFactory, global::StrawberryShake.Serialization.ISerializerResolver serializerResolver)
{
_entityStore = entityStore ?? throw new global::System.ArgumentNullException(nameof(entityStore));
_idSerializer = idSerializer ?? throw new global::System.ArgumentNullException(nameof(idSerializer));
_resultDataFactory = resultDataFactory ?? throw new global::System.ArgumentNullException(nameof(resultDataFactory));
_realmTypeParser = serializerResolver.GetLeafValueParser<global::System.String, global::WotBlitzStatisticsPro.Blazor.GraphQl.RealmType>("RealmType") ?? throw new global::System.ArgumentException("No serializer for type `RealmType` found.");
_requestLanguageParser = serializerResolver.GetLeafValueParser<global::System.String, global::WotBlitzStatisticsPro.Blazor.GraphQl.RequestLanguage>("RequestLanguage") ?? throw new global::System.ArgumentException("No serializer for type `RequestLanguage` found.");
_longParser = serializerResolver.GetLeafValueParser<global::System.Int64, global::System.Int64>("Long") ?? throw new global::System.ArgumentException("No serializer for type `Long` found.");
_stringParser = serializerResolver.GetLeafValueParser<global::System.String, global::System.String>("String") ?? throw new global::System.ArgumentException("No serializer for type `String` found.");
_dateTimeParser = serializerResolver.GetLeafValueParser<global::System.String, global::System.DateTimeOffset>("DateTime") ?? throw new global::System.ArgumentException("No serializer for type `DateTime` found.");
_decimalParser = serializerResolver.GetLeafValueParser<global::System.Decimal, global::System.Decimal>("Decimal") ?? throw new global::System.ArgumentException("No serializer for type `Decimal` found.");
_floatParser = serializerResolver.GetLeafValueParser<global::System.Double, global::System.Double>("Float") ?? throw new global::System.ArgumentException("No serializer for type `Float` found.");
_intParser = serializerResolver.GetLeafValueParser<global::System.Int32, global::System.Int32>("Int") ?? throw new global::System.ArgumentException("No serializer for type `Int` found.");
_booleanParser = serializerResolver.GetLeafValueParser<global::System.Boolean, global::System.Boolean>("Boolean") ?? throw new global::System.ArgumentException("No serializer for type `Boolean` found.");
}
public global::StrawberryShake.IOperationResult<IPlayerResult> Build(global::StrawberryShake.Response<global::System.Text.Json.JsonDocument> response)
{
(IPlayerResult Result, PlayerResultInfo Info)? data = null;
global::System.Collections.Generic.IReadOnlyList<global::StrawberryShake.IClientError>? errors = null;
if (response.Exception is null)
{
try
{
if (response.Body != null)
{
if (response.Body.RootElement.TryGetProperty("data", out global::System.Text.Json.JsonElement dataElement) && dataElement.ValueKind == global::System.Text.Json.JsonValueKind.Object)
{
data = BuildData(dataElement);
}
if (response.Body.RootElement.TryGetProperty("errors", out global::System.Text.Json.JsonElement errorsElement))
{
errors = global::StrawberryShake.Json.JsonErrorParser.ParseErrors(errorsElement);
}
}
}
catch (global::System.Exception ex)
{
errors = new global::StrawberryShake.IClientError[]{new global::StrawberryShake.ClientError(ex.Message, exception: ex, extensions: new global::System.Collections.Generic.Dictionary<global::System.String, global::System.Object?>{{"body", response.Body?.RootElement.ToString()}})};
}
}
else
{
errors = new global::StrawberryShake.IClientError[]{new global::StrawberryShake.ClientError(response.Exception.Message, exception: response.Exception, extensions: new global::System.Collections.Generic.Dictionary<global::System.String, global::System.Object?>{{"body", response.Body?.RootElement.ToString()}})};
}
return new global::StrawberryShake.OperationResult<IPlayerResult>(data?.Result, data?.Info, _resultDataFactory, errors);
}
private (IPlayerResult, PlayerResultInfo) BuildData(global::System.Text.Json.JsonElement obj)
{
var entityIds = new global::System.Collections.Generic.HashSet<global::StrawberryShake.EntityId>();
global::StrawberryShake.IEntityStoreSnapshot snapshot = default !;
_entityStore.Update(session =>
{
snapshot = session.CurrentSnapshot;
});
var resultInfo = new PlayerResultInfo(DeserializeNonNullableIPlayer_AccountInfo(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "accountInfo")), entityIds, snapshot.Version);
return (_resultDataFactory.Create(resultInfo), resultInfo);
}
private global::WotBlitzStatisticsPro.Blazor.GraphQl.State.AccountInfoResponseData DeserializeNonNullableIPlayer_AccountInfo(global::System.Text.Json.JsonElement? obj)
{
if (!obj.HasValue)
{
throw new global::System.ArgumentNullException();
}
var typename = obj.Value.GetProperty("__typename").GetString();
if (typename?.Equals("AccountInfoResponse", global::System.StringComparison.Ordinal) ?? false)
{
return new global::WotBlitzStatisticsPro.Blazor.GraphQl.State.AccountInfoResponseData(typename, accountId: DeserializeNonNullableInt64(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "accountId")), nickname: DeserializeString(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "nickname")), createdAt: DeserializeNonNullableDateTimeOffset(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "createdAt")), lastBattleTime: DeserializeNonNullableDateTimeOffset(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "lastBattleTime")), battles: DeserializeNonNullableInt64(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "battles")), winRate: DeserializeNonNullableDecimal(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "winRate")), avgDamage: DeserializeNonNullableDecimal(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "avgDamage")), avgXp: DeserializeNonNullableDecimal(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "avgXp")), avgTier: DeserializeNonNullableDouble(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "avgTier")), damageCoefficient: DeserializeNonNullableDecimal(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "damageCoefficient")), survivalRate: DeserializeNonNullableDecimal(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "survivalRate")), tanks: DeserializeIPlayer_AccountInfo_TanksNonNullableArray(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "tanks")));
}
throw new global::System.NotSupportedException();
}
private global::System.Int64 DeserializeNonNullableInt64(global::System.Text.Json.JsonElement? obj)
{
if (!obj.HasValue)
{
throw new global::System.ArgumentNullException();
}
return _longParser.Parse(obj.Value.GetInt64()!);
}
private global::System.String? DeserializeString(global::System.Text.Json.JsonElement? obj)
{
if (!obj.HasValue)
{
return null;
}
return _stringParser.Parse(obj.Value.GetString()!);
}
private global::System.DateTimeOffset DeserializeNonNullableDateTimeOffset(global::System.Text.Json.JsonElement? obj)
{
if (!obj.HasValue)
{
throw new global::System.ArgumentNullException();
}
return _dateTimeParser.Parse(obj.Value.GetString()!);
}
private global::System.Decimal DeserializeNonNullableDecimal(global::System.Text.Json.JsonElement? obj)
{
if (!obj.HasValue)
{
throw new global::System.ArgumentNullException();
}
return _decimalParser.Parse(obj.Value.GetDecimal()!);
}
private global::System.Double DeserializeNonNullableDouble(global::System.Text.Json.JsonElement? obj)
{
if (!obj.HasValue)
{
throw new global::System.ArgumentNullException();
}
return _floatParser.Parse(obj.Value.GetDouble()!);
}
private global::System.Collections.Generic.IReadOnlyList<global::WotBlitzStatisticsPro.Blazor.GraphQl.State.TankInfoResponseData>? DeserializeIPlayer_AccountInfo_TanksNonNullableArray(global::System.Text.Json.JsonElement? obj)
{
if (!obj.HasValue)
{
return null;
}
var tankInfoResponses = new global::System.Collections.Generic.List<global::WotBlitzStatisticsPro.Blazor.GraphQl.State.TankInfoResponseData>();
foreach (global::System.Text.Json.JsonElement child in obj.Value.EnumerateArray())
{
tankInfoResponses.Add(DeserializeNonNullableIPlayer_AccountInfo_Tanks(child));
}
return tankInfoResponses;
}
private global::WotBlitzStatisticsPro.Blazor.GraphQl.State.TankInfoResponseData DeserializeNonNullableIPlayer_AccountInfo_Tanks(global::System.Text.Json.JsonElement? obj)
{
if (!obj.HasValue)
{
throw new global::System.ArgumentNullException();
}
var typename = obj.Value.GetProperty("__typename").GetString();
if (typename?.Equals("TankInfoResponse", global::System.StringComparison.Ordinal) ?? false)
{
return new global::WotBlitzStatisticsPro.Blazor.GraphQl.State.TankInfoResponseData(typename, tankId: DeserializeNonNullableInt64(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "tankId")), name: DeserializeString(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "name")), tankNation: DeserializeString(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "tankNation")), tankType: DeserializeString(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "tankType")), tier: DeserializeNonNullableInt32(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "tier")), isPremium: DeserializeNonNullableBoolean(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "isPremium")), lastBattleTime: DeserializeNonNullableDateTimeOffset(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "lastBattleTime")), battles: DeserializeNonNullableInt64(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "battles")), winRate: DeserializeNonNullableDecimal(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "winRate")), avgDamage: DeserializeNonNullableDecimal(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "avgDamage")), avgXp: DeserializeNonNullableDecimal(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "avgXp")), avgBattleLifeTimeInMinutes: DeserializeNonNullableDecimal(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "avgBattleLifeTimeInMinutes")), damageCoefficient: DeserializeNonNullableDecimal(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "damageCoefficient")), survivalRate: DeserializeNonNullableDecimal(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "survivalRate")));
}
throw new global::System.NotSupportedException();
}
private global::System.Int32 DeserializeNonNullableInt32(global::System.Text.Json.JsonElement? obj)
{
if (!obj.HasValue)
{
throw new global::System.ArgumentNullException();
}
return _intParser.Parse(obj.Value.GetInt32()!);
}
private global::System.Boolean DeserializeNonNullableBoolean(global::System.Text.Json.JsonElement? obj)
{
if (!obj.HasValue)
{
throw new global::System.ArgumentNullException();
}
return _booleanParser.Parse(obj.Value.GetBoolean()!);
}
}
}
@@ -0,0 +1,82 @@
// <auto-generated/>
#nullable enable
namespace WotBlitzStatisticsPro.Blazor.GraphQl.State
{
[global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.2.2.0")]
public partial class PlayerResultFactory : global::StrawberryShake.IOperationResultDataFactory<global::WotBlitzStatisticsPro.Blazor.GraphQl.PlayerResult>
{
private readonly global::StrawberryShake.IEntityStore _entityStore;
public PlayerResultFactory(global::StrawberryShake.IEntityStore entityStore)
{
_entityStore = entityStore ?? throw new global::System.ArgumentNullException(nameof(entityStore));
}
global::System.Type global::StrawberryShake.IOperationResultDataFactory.ResultType => typeof(global::WotBlitzStatisticsPro.Blazor.GraphQl.IPlayerResult);
public PlayerResult Create(global::StrawberryShake.IOperationResultDataInfo dataInfo, global::StrawberryShake.IEntityStoreSnapshot? snapshot = null)
{
if (snapshot is null)
{
snapshot = _entityStore.CurrentSnapshot;
}
if (dataInfo is PlayerResultInfo info)
{
return new PlayerResult(MapNonNullableIPlayer_AccountInfo(info.AccountInfo, snapshot));
}
throw new global::System.ArgumentException("PlayerResultInfo expected.");
}
private global::WotBlitzStatisticsPro.Blazor.GraphQl.IPlayer_AccountInfo MapNonNullableIPlayer_AccountInfo(global::WotBlitzStatisticsPro.Blazor.GraphQl.State.AccountInfoResponseData data, global::StrawberryShake.IEntityStoreSnapshot snapshot)
{
IPlayer_AccountInfo returnValue = default !;
if (data.__typename.Equals("AccountInfoResponse", global::System.StringComparison.Ordinal))
{
returnValue = new Player_AccountInfo_AccountInfoResponse(data.AccountId ?? throw new global::System.ArgumentNullException(), data.Nickname, data.CreatedAt ?? throw new global::System.ArgumentNullException(), data.LastBattleTime ?? throw new global::System.ArgumentNullException(), data.Battles ?? throw new global::System.ArgumentNullException(), data.WinRate ?? throw new global::System.ArgumentNullException(), data.AvgDamage ?? throw new global::System.ArgumentNullException(), data.AvgXp ?? throw new global::System.ArgumentNullException(), data.AvgTier ?? throw new global::System.ArgumentNullException(), data.DamageCoefficient ?? throw new global::System.ArgumentNullException(), data.SurvivalRate ?? throw new global::System.ArgumentNullException(), MapIPlayer_AccountInfo_TanksNonNullableArray(data.Tanks, snapshot));
}
else
{
throw new global::System.NotSupportedException();
}
return returnValue;
}
private global::System.Collections.Generic.IReadOnlyList<global::WotBlitzStatisticsPro.Blazor.GraphQl.IPlayer_AccountInfo_Tanks>? MapIPlayer_AccountInfo_TanksNonNullableArray(global::System.Collections.Generic.IReadOnlyList<global::WotBlitzStatisticsPro.Blazor.GraphQl.State.TankInfoResponseData>? list, global::StrawberryShake.IEntityStoreSnapshot snapshot)
{
if (list is null)
{
return null;
}
var tankInfoResponses = new global::System.Collections.Generic.List<global::WotBlitzStatisticsPro.Blazor.GraphQl.IPlayer_AccountInfo_Tanks>();
foreach (global::WotBlitzStatisticsPro.Blazor.GraphQl.State.TankInfoResponseData child in list)
{
tankInfoResponses.Add(MapNonNullableIPlayer_AccountInfo_Tanks(child, snapshot));
}
return tankInfoResponses;
}
private global::WotBlitzStatisticsPro.Blazor.GraphQl.IPlayer_AccountInfo_Tanks MapNonNullableIPlayer_AccountInfo_Tanks(global::WotBlitzStatisticsPro.Blazor.GraphQl.State.TankInfoResponseData data, global::StrawberryShake.IEntityStoreSnapshot snapshot)
{
IPlayer_AccountInfo_Tanks returnValue = default !;
if (data.__typename.Equals("TankInfoResponse", global::System.StringComparison.Ordinal))
{
returnValue = new Player_AccountInfo_Tanks_TankInfoResponse(data.TankId ?? throw new global::System.ArgumentNullException(), data.Name, data.TankNation, data.TankType, data.Tier ?? throw new global::System.ArgumentNullException(), data.IsPremium ?? throw new global::System.ArgumentNullException(), data.LastBattleTime ?? throw new global::System.ArgumentNullException(), data.Battles ?? throw new global::System.ArgumentNullException(), data.WinRate ?? throw new global::System.ArgumentNullException(), data.AvgDamage ?? throw new global::System.ArgumentNullException(), data.AvgXp ?? throw new global::System.ArgumentNullException(), data.AvgBattleLifeTimeInMinutes ?? throw new global::System.ArgumentNullException(), data.DamageCoefficient ?? throw new global::System.ArgumentNullException(), data.SurvivalRate ?? throw new global::System.ArgumentNullException());
}
else
{
throw new global::System.NotSupportedException();
}
return returnValue;
}
global::System.Object global::StrawberryShake.IOperationResultDataFactory.Create(global::StrawberryShake.IOperationResultDataInfo dataInfo, global::StrawberryShake.IEntityStoreSnapshot? snapshot)
{
return Create(dataInfo, snapshot);
}
}
}
@@ -0,0 +1,30 @@
// <auto-generated/>
#nullable enable
namespace WotBlitzStatisticsPro.Blazor.GraphQl.State
{
[global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.2.2.0")]
public partial class PlayerResultInfo : global::StrawberryShake.IOperationResultDataInfo
{
private readonly global::System.Collections.Generic.IReadOnlyCollection<global::StrawberryShake.EntityId> _entityIds;
private readonly global::System.UInt64 _version;
public PlayerResultInfo(global::WotBlitzStatisticsPro.Blazor.GraphQl.State.AccountInfoResponseData accountInfo, global::System.Collections.Generic.IReadOnlyCollection<global::StrawberryShake.EntityId> entityIds, global::System.UInt64 version)
{
AccountInfo = accountInfo;
_entityIds = entityIds ?? throw new global::System.ArgumentNullException(nameof(entityIds));
_version = version;
}
/// <summary>
/// Gathers all account information
/// </summary>
public global::WotBlitzStatisticsPro.Blazor.GraphQl.State.AccountInfoResponseData AccountInfo { get; }
public global::System.Collections.Generic.IReadOnlyCollection<global::StrawberryShake.EntityId> EntityIds => _entityIds;
public global::System.UInt64 Version => _version;
public global::StrawberryShake.IOperationResultDataInfo WithVersion(global::System.UInt64 version)
{
return new PlayerResultInfo(AccountInfo, _entityIds, version);
}
}
}
@@ -0,0 +1,73 @@
// <auto-generated/>
#nullable enable
namespace WotBlitzStatisticsPro.Blazor.GraphQl.State
{
///<summary>Information about player's tank</summary>
[global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.2.2.0")]
public partial class TankInfoResponseData
{
public TankInfoResponseData(global::System.String __typename, global::System.Int64? tankId = default !, global::System.String? name = default !, global::System.String? tankNation = default !, global::System.String? tankType = default !, global::System.Int32? tier = default !, global::System.Boolean? isPremium = default !, global::System.DateTimeOffset? lastBattleTime = default !, global::System.Int64? battles = default !, global::System.Decimal? winRate = default !, global::System.Decimal? avgDamage = default !, global::System.Decimal? avgXp = default !, global::System.Decimal? avgBattleLifeTimeInMinutes = default !, global::System.Decimal? damageCoefficient = default !, global::System.Decimal? survivalRate = default !)
{
this.__typename = __typename ?? throw new global::System.ArgumentNullException(nameof(__typename));
TankId = tankId;
Name = name;
TankNation = tankNation;
TankType = tankType;
Tier = tier;
IsPremium = isPremium;
LastBattleTime = lastBattleTime;
Battles = battles;
WinRate = winRate;
AvgDamage = avgDamage;
AvgXp = avgXp;
AvgBattleLifeTimeInMinutes = avgBattleLifeTimeInMinutes;
DamageCoefficient = damageCoefficient;
SurvivalRate = survivalRate;
}
public global::System.String __typename { get; }
///<summary>Tank identifier</summary>
public global::System.Int64? TankId { get; }
///<summary>Tank name</summary>
public global::System.String? Name { get; }
///<summary>Localized tank nation name</summary>
public global::System.String? TankNation { get; }
///<summary>Localized tank type name</summary>
public global::System.String? TankType { get; }
///<summary>Tank tier</summary>
public global::System.Int32? Tier { get; }
///<summary>Is it premium tank or not</summary>
public global::System.Boolean? IsPremium { get; }
///<summary>Last battle</summary>
public global::System.DateTimeOffset? LastBattleTime { get; }
///<summary>Battles count</summary>
public global::System.Int64? Battles { get; }
///<summary>Tank's win rate</summary>
public global::System.Decimal? WinRate { get; }
///<summary>Average tank's damage</summary>
public global::System.Decimal? AvgDamage { get; }
///<summary>Average XP</summary>
public global::System.Decimal? AvgXp { get; }
///<summary>Average life time in battle until tank is killed.</summary>
public global::System.Decimal? AvgBattleLifeTimeInMinutes { get; }
///<summary>Damage coefficient</summary>
public global::System.Decimal? DamageCoefficient { get; }
///<summary>Rate of survival</summary>
public global::System.Decimal? SurvivalRate { get; }
}
}
@@ -9,16 +9,19 @@ namespace WotBlitzStatisticsPro.Blazor.GraphQl
[global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.2.2.0")]
public partial class WotBlitzStatisticsProClient : global::WotBlitzStatisticsPro.Blazor.GraphQl.IWotBlitzStatisticsProClient
{
private readonly global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindPlayersQuery _findPlayers;
private readonly global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindClansQuery _findClans;
public WotBlitzStatisticsProClient(global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindPlayersQuery findPlayers, global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindClansQuery findClans)
private readonly global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindPlayersQuery _findPlayers;
private readonly global::WotBlitzStatisticsPro.Blazor.GraphQl.IPlayerQuery _player;
public WotBlitzStatisticsProClient(global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindClansQuery findClans, global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindPlayersQuery findPlayers, global::WotBlitzStatisticsPro.Blazor.GraphQl.IPlayerQuery player)
{
_findPlayers = findPlayers ?? throw new global::System.ArgumentNullException(nameof(findPlayers));
_findClans = findClans ?? throw new global::System.ArgumentNullException(nameof(findClans));
_findPlayers = findPlayers ?? throw new global::System.ArgumentNullException(nameof(findPlayers));
_player = player ?? throw new global::System.ArgumentNullException(nameof(player));
}
public static global::System.String ClientName => "WotBlitzStatisticsProClient";
public global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindPlayersQuery FindPlayers => _findPlayers;
public global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindClansQuery FindClans => _findClans;
public global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindPlayersQuery FindPlayers => _findPlayers;
public global::WotBlitzStatisticsPro.Blazor.GraphQl.IPlayerQuery Player => _player;
}
}
@@ -0,0 +1,37 @@
query player(
$accountId: Long!,
$realmType: RealmType!,
$requestLanguage: RequestLanguage! ) {
accountInfo(
accountId: $accountId,
realmType: $realmType,
requestLanguage: $requestLanguage) {
accountId
nickname
createdAt
lastBattleTime
battles
winRate
avgDamage
avgXp
avgTier
damageCoefficient
survivalRate
tanks {
tankId
name
tankNation
tankType
tier
isPremium
lastBattleTime
battles
winRate
avgDamage
avgXp
avgBattleLifeTimeInMinutes
damageCoefficient
survivalRate
}
}
}