feat: charts by nations ready
No files matched your search
@@ -15,9 +15,9 @@ namespace Microsoft.Extensions.DependencyInjection
|
|||||||
return new ClientServiceProvider(global::Microsoft.Extensions.DependencyInjection.ServiceCollectionContainerBuilderExtensions.BuildServiceProvider(serviceCollection));
|
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 => 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.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.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.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.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.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)));
|
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);
|
return new global::StrawberryShake.ClientBuilder<global::WotBlitzStatisticsPro.Blazor.GraphQl.State.WotBlitzStatisticsProClientStoreAccessor>("WotBlitzStatisticsProClient", services, serviceCollection);
|
||||||
@@ -52,6 +52,13 @@ 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.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.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.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.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.IOperationResultDataFactory<global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindClansResult>, global::WotBlitzStatisticsPro.Blazor.GraphQl.State.FindClansResultFactory>(services);
|
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.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));
|
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::StrawberryShake.IOperationRequestFactory>(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindClansQuery>(sp));
|
||||||
@@ -66,13 +73,6 @@ namespace Microsoft.Extensions.DependencyInjection
|
|||||||
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::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.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::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::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.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));
|
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));
|
||||||
|
|||||||
@@ -9,10 +9,10 @@ namespace WotBlitzStatisticsPro.Blazor.GraphQl
|
|||||||
[global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.2.2.0")]
|
[global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.2.2.0")]
|
||||||
public interface IWotBlitzStatisticsProClient
|
public interface IWotBlitzStatisticsProClient
|
||||||
{
|
{
|
||||||
|
global::WotBlitzStatisticsPro.Blazor.GraphQl.IPlayerQuery Player { get; }
|
||||||
|
|
||||||
global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindClansQuery FindClans { get; }
|
global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindClansQuery FindClans { get; }
|
||||||
|
|
||||||
global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindPlayersQuery FindPlayers { get; }
|
global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindPlayersQuery FindPlayers { get; }
|
||||||
|
|
||||||
global::WotBlitzStatisticsPro.Blazor.GraphQl.IPlayerQuery Player { get; }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -9,19 +9,19 @@ namespace WotBlitzStatisticsPro.Blazor.GraphQl
|
|||||||
[global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.2.2.0")]
|
[global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.2.2.0")]
|
||||||
public partial class WotBlitzStatisticsProClient : global::WotBlitzStatisticsPro.Blazor.GraphQl.IWotBlitzStatisticsProClient
|
public partial class WotBlitzStatisticsProClient : global::WotBlitzStatisticsPro.Blazor.GraphQl.IWotBlitzStatisticsProClient
|
||||||
{
|
{
|
||||||
|
private readonly global::WotBlitzStatisticsPro.Blazor.GraphQl.IPlayerQuery _player;
|
||||||
private readonly global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindClansQuery _findClans;
|
private readonly global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindClansQuery _findClans;
|
||||||
private readonly global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindPlayersQuery _findPlayers;
|
private readonly global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindPlayersQuery _findPlayers;
|
||||||
private readonly global::WotBlitzStatisticsPro.Blazor.GraphQl.IPlayerQuery _player;
|
public WotBlitzStatisticsProClient(global::WotBlitzStatisticsPro.Blazor.GraphQl.IPlayerQuery player, global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindClansQuery findClans, global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindPlayersQuery findPlayers)
|
||||||
public WotBlitzStatisticsProClient(global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindClansQuery findClans, global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindPlayersQuery findPlayers, global::WotBlitzStatisticsPro.Blazor.GraphQl.IPlayerQuery player)
|
|
||||||
{
|
{
|
||||||
|
_player = player ?? throw new global::System.ArgumentNullException(nameof(player));
|
||||||
_findClans = findClans ?? throw new global::System.ArgumentNullException(nameof(findClans));
|
_findClans = findClans ?? throw new global::System.ArgumentNullException(nameof(findClans));
|
||||||
_findPlayers = findPlayers ?? throw new global::System.ArgumentNullException(nameof(findPlayers));
|
_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 static global::System.String ClientName => "WotBlitzStatisticsProClient";
|
||||||
|
public global::WotBlitzStatisticsPro.Blazor.GraphQl.IPlayerQuery Player => _player;
|
||||||
public global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindClansQuery FindClans => _findClans;
|
public global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindClansQuery FindClans => _findClans;
|
||||||
public global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindPlayersQuery FindPlayers => _findPlayers;
|
public global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindPlayersQuery FindPlayers => _findPlayers;
|
||||||
public global::WotBlitzStatisticsPro.Blazor.GraphQl.IPlayerQuery Player => _player;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -4,5 +4,10 @@
|
|||||||
<div id="battlesByTankType" style="width: 33%; min-width: 300px; height:300px; margin-top: 10px;"></div>
|
<div id="battlesByTankType" style="width: 33%; min-width: 300px; height:300px; margin-top: 10px;"></div>
|
||||||
<div id="winRateByTankType" style="width: 33%; min-width: 300px; height: 300px; margin-top: 10px; "></div>
|
<div id="winRateByTankType" style="width: 33%; min-width: 300px; height: 300px; margin-top: 10px; "></div>
|
||||||
<div id="avgDmgByTankType" style="width: 33%; min-width: 300px; height: 300px; margin-top: 10px; "></div>
|
<div id="avgDmgByTankType" style="width: 33%; min-width: 300px; height: 300px; margin-top: 10px; "></div>
|
||||||
|
</div>
|
||||||
|
<div class="chartsRow">
|
||||||
|
<div id="battlesByNation" style="width: 33%; min-width: 300px; height:500px; margin-top: 10px;"></div>
|
||||||
|
<div id="winRateByNation" style="width: 33%; min-width: 300px; height: 500px; margin-top: 10px; "></div>
|
||||||
|
<div id="avgDmgByNation" style="width: 33%; min-width: 300px; height: 500px; margin-top: 10px; "></div>
|
||||||
</div>
|
</div>
|
||||||
@*<div id="stacked" style="width:300px; height:500px; margin-top: 20px"></div>*@
|
@*<div id="stacked" style="width:300px; height:500px; margin-top: 20px"></div>*@
|
||||||
@@ -23,6 +23,11 @@ namespace WotBlitzStatisticsPro.Blazor.Pages
|
|||||||
await ChartsService.BuildBarChartBattlesByTankType("battlesByTankType", TanksList);
|
await ChartsService.BuildBarChartBattlesByTankType("battlesByTankType", TanksList);
|
||||||
await ChartsService.BuildBarChartWinRatesByTankType("winRateByTankType", TanksList);
|
await ChartsService.BuildBarChartWinRatesByTankType("winRateByTankType", TanksList);
|
||||||
await ChartsService.BuildBarChartAvgDmgByTankType("avgDmgByTankType", TanksList);
|
await ChartsService.BuildBarChartAvgDmgByTankType("avgDmgByTankType", TanksList);
|
||||||
|
|
||||||
|
await ChartsService.BuildBarChartBattlesByNation("battlesByNation", TanksList);
|
||||||
|
await ChartsService.BuildBarChartWinRatesByNation("winRateByNation", TanksList);
|
||||||
|
await ChartsService.BuildBarChartAvgDmgByNation("avgDmgByNation", TanksList);
|
||||||
|
|
||||||
//await ChartsService.BuildStackedBarChart("stacked");
|
//await ChartsService.BuildStackedBarChart("stacked");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -123,12 +123,18 @@
|
|||||||
<data name="Average XP" xml:space="preserve">
|
<data name="Average XP" xml:space="preserve">
|
||||||
<value>Mittlere EP</value>
|
<value>Mittlere EP</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="Avg damage by nation" xml:space="preserve">
|
||||||
|
<value>Mittlerer Schaden dem Nation</value>
|
||||||
|
</data>
|
||||||
<data name="Avg damage by tank types" xml:space="preserve">
|
<data name="Avg damage by tank types" xml:space="preserve">
|
||||||
<value>Mittlerer Schaden dem Panzertype</value>
|
<value>Mittlerer Schaden dem Panzertype</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Battles" xml:space="preserve">
|
<data name="Battles" xml:space="preserve">
|
||||||
<value>Gefechte</value>
|
<value>Gefechte</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="Battles by nation" xml:space="preserve">
|
||||||
|
<value>Gefechte dem Nation</value>
|
||||||
|
</data>
|
||||||
<data name="Battles by tank types" xml:space="preserve">
|
<data name="Battles by tank types" xml:space="preserve">
|
||||||
<value>Gefechte dem Panzertype</value>
|
<value>Gefechte dem Panzertype</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -222,6 +228,9 @@
|
|||||||
<data name="Win rate" xml:space="preserve">
|
<data name="Win rate" xml:space="preserve">
|
||||||
<value>Sieg</value>
|
<value>Sieg</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="Win rate by nation" xml:space="preserve">
|
||||||
|
<value>Sieg dem Nation</value>
|
||||||
|
</data>
|
||||||
<data name="Win rate by tank types" xml:space="preserve">
|
<data name="Win rate by tank types" xml:space="preserve">
|
||||||
<value>Panzertypensieg</value>
|
<value>Panzertypensieg</value>
|
||||||
</data>
|
</data>
|
||||||
|
|||||||
@@ -123,12 +123,18 @@
|
|||||||
<data name="Average XP" xml:space="preserve">
|
<data name="Average XP" xml:space="preserve">
|
||||||
<value>Средний опыт</value>
|
<value>Средний опыт</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="Avg damage by nation" xml:space="preserve">
|
||||||
|
<value>Средний урон по нациям</value>
|
||||||
|
</data>
|
||||||
<data name="Avg damage by tank types" xml:space="preserve">
|
<data name="Avg damage by tank types" xml:space="preserve">
|
||||||
<value>Средний урон по типу танка</value>
|
<value>Средний урон по типу танка</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Battles" xml:space="preserve">
|
<data name="Battles" xml:space="preserve">
|
||||||
<value>Количество боёв</value>
|
<value>Количество боёв</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="Battles by nation" xml:space="preserve">
|
||||||
|
<value>Количество боёв по нациям</value>
|
||||||
|
</data>
|
||||||
<data name="Battles by tank types" xml:space="preserve">
|
<data name="Battles by tank types" xml:space="preserve">
|
||||||
<value>Количество боёв по типу танка</value>
|
<value>Количество боёв по типу танка</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -222,6 +228,9 @@
|
|||||||
<data name="Win rate" xml:space="preserve">
|
<data name="Win rate" xml:space="preserve">
|
||||||
<value>Процент побед</value>
|
<value>Процент побед</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="Win rate by nation" xml:space="preserve">
|
||||||
|
<value>Процент побед по нациям</value>
|
||||||
|
</data>
|
||||||
<data name="Win rate by tank types" xml:space="preserve">
|
<data name="Win rate by tank types" xml:space="preserve">
|
||||||
<value>Процент побед по типу танка</value>
|
<value>Процент побед по типу танка</value>
|
||||||
</data>
|
</data>
|
||||||
|
|||||||
@@ -201,6 +201,289 @@ namespace WotBlitzStatisticsPro.Blazor.Services
|
|||||||
await _jsRuntime.InvokeVoidAsync("eChartsInterop.BuildBarChartByTankType", elementId, _localize.GetString("Avg damage by tank types").Value, chartData);
|
await _jsRuntime.InvokeVoidAsync("eChartsInterop.BuildBarChartByTankType", elementId, _localize.GetString("Avg damage by tank types").Value, chartData);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async Task BuildBarChartBattlesByNation(string elementId, IEnumerable<ITank> tanks)
|
||||||
|
{
|
||||||
|
var battlesCountByNation = new Dictionary<string, long>();
|
||||||
|
|
||||||
|
foreach (var tank in tanks)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(tank.TankNationId))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (battlesCountByNation.ContainsKey(tank.TankNationId))
|
||||||
|
{
|
||||||
|
battlesCountByNation[tank.TankNationId] += tank.Battles;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
battlesCountByNation.Add(tank.TankNationId, tank.Battles);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int chinaData = 0;
|
||||||
|
int euData = 0;
|
||||||
|
int franceData = 0;
|
||||||
|
int germanyData = 0;
|
||||||
|
int japanData = 0;
|
||||||
|
int otherData = 0;
|
||||||
|
int ukData = 0;
|
||||||
|
int usaData = 0;
|
||||||
|
int ussrData = 0;
|
||||||
|
if (battlesCountByNation.ContainsKey(Constants.CountryChina))
|
||||||
|
{
|
||||||
|
chinaData = Convert.ToInt32(battlesCountByNation[Constants.CountryChina]);
|
||||||
|
}
|
||||||
|
if (battlesCountByNation.ContainsKey(Constants.CountryEuropean))
|
||||||
|
{
|
||||||
|
euData = Convert.ToInt32(battlesCountByNation[Constants.CountryEuropean]);
|
||||||
|
}
|
||||||
|
if (battlesCountByNation.ContainsKey(Constants.CountryFrance))
|
||||||
|
{
|
||||||
|
franceData = Convert.ToInt32(battlesCountByNation[Constants.CountryFrance]);
|
||||||
|
}
|
||||||
|
if (battlesCountByNation.ContainsKey(Constants.CountryGermany))
|
||||||
|
{
|
||||||
|
germanyData = Convert.ToInt32(battlesCountByNation[Constants.CountryGermany]);
|
||||||
|
}
|
||||||
|
if (battlesCountByNation.ContainsKey(Constants.CountryJapan))
|
||||||
|
{
|
||||||
|
japanData = Convert.ToInt32(battlesCountByNation[Constants.CountryJapan]);
|
||||||
|
}
|
||||||
|
if (battlesCountByNation.ContainsKey(Constants.CountryOther))
|
||||||
|
{
|
||||||
|
otherData = Convert.ToInt32(battlesCountByNation[Constants.CountryOther]);
|
||||||
|
}
|
||||||
|
if (battlesCountByNation.ContainsKey(Constants.CountryUk))
|
||||||
|
{
|
||||||
|
ukData = Convert.ToInt32(battlesCountByNation[Constants.CountryUk]);
|
||||||
|
}
|
||||||
|
if (battlesCountByNation.ContainsKey(Constants.CountryUsa))
|
||||||
|
{
|
||||||
|
usaData = Convert.ToInt32(battlesCountByNation[Constants.CountryUsa]);
|
||||||
|
}
|
||||||
|
if (battlesCountByNation.ContainsKey(Constants.CountryUssr))
|
||||||
|
{
|
||||||
|
ussrData = Convert.ToInt32(battlesCountByNation[Constants.CountryUssr]);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
var chartData = new[]
|
||||||
|
{
|
||||||
|
new {country = Constants.CountryChina, value = chinaData, color = "#9FE3CE"},
|
||||||
|
new {country = Constants.CountryEuropean, value = euData, color = "#9FE3CE"},
|
||||||
|
new {country = Constants.CountryFrance, value = franceData, color = "#9FE3CE"},
|
||||||
|
new {country = Constants.CountryGermany, value = germanyData, color = "#9FE3CE"},
|
||||||
|
new {country = Constants.CountryJapan, value = japanData, color = "#9FE3CE"},
|
||||||
|
new {country = Constants.CountryOther, value = otherData, color = "#9FE3CE"},
|
||||||
|
new {country = Constants.CountryUk, value = ukData, color = "#9FE3CE"},
|
||||||
|
new {country = Constants.CountryUsa, value = usaData, color = "#9FE3CE"},
|
||||||
|
new {country = Constants.CountryUssr, value = ussrData, color = "#9FE3CE"},
|
||||||
|
};
|
||||||
|
|
||||||
|
await _jsRuntime.InvokeVoidAsync("eChartsInterop.BuildBarChartByNation", elementId, _localize.GetString("Battles by nation").Value, chartData);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task BuildBarChartWinRatesByNation(string elementId, IEnumerable<ITank> tanks)
|
||||||
|
{
|
||||||
|
var battlesCountByNation = new Dictionary<string, long>();
|
||||||
|
var winsCountByNation = new Dictionary<string, long>();
|
||||||
|
|
||||||
|
foreach (var tank in tanks)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(tank.TankNationId))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (battlesCountByNation.ContainsKey(tank.TankNationId))
|
||||||
|
{
|
||||||
|
battlesCountByNation[tank.TankNationId] += tank.Battles;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
battlesCountByNation.Add(tank.TankNationId, tank.Battles);
|
||||||
|
}
|
||||||
|
if (winsCountByNation.ContainsKey(tank.TankNationId))
|
||||||
|
{
|
||||||
|
winsCountByNation[tank.TankNationId] += tank.Wins;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
winsCountByNation.Add(tank.TankNationId, tank.Wins);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int chinaData = 0;
|
||||||
|
int euData = 0;
|
||||||
|
int franceData = 0;
|
||||||
|
int germanyData = 0;
|
||||||
|
int japanData = 0;
|
||||||
|
int otherData = 0;
|
||||||
|
int ukData = 0;
|
||||||
|
int usaData = 0;
|
||||||
|
int ussrData = 0;
|
||||||
|
if (battlesCountByNation.ContainsKey(Constants.CountryChina))
|
||||||
|
{
|
||||||
|
chinaData = Convert.ToInt32(100 * winsCountByNation[Constants.CountryChina] /
|
||||||
|
battlesCountByNation[Constants.CountryChina]);
|
||||||
|
}
|
||||||
|
if (battlesCountByNation.ContainsKey(Constants.CountryEuropean))
|
||||||
|
{
|
||||||
|
euData = Convert.ToInt32(100 * winsCountByNation[Constants.CountryEuropean] /
|
||||||
|
battlesCountByNation[Constants.CountryEuropean]);
|
||||||
|
}
|
||||||
|
if (battlesCountByNation.ContainsKey(Constants.CountryFrance))
|
||||||
|
{
|
||||||
|
franceData = Convert.ToInt32(100 * winsCountByNation[Constants.CountryFrance] /
|
||||||
|
battlesCountByNation[Constants.CountryFrance]);
|
||||||
|
}
|
||||||
|
if (battlesCountByNation.ContainsKey(Constants.CountryGermany))
|
||||||
|
{
|
||||||
|
germanyData = Convert.ToInt32(100 * winsCountByNation[Constants.CountryGermany] /
|
||||||
|
battlesCountByNation[Constants.CountryGermany]);
|
||||||
|
}
|
||||||
|
if (battlesCountByNation.ContainsKey(Constants.CountryJapan))
|
||||||
|
{
|
||||||
|
japanData = Convert.ToInt32(100 * winsCountByNation[Constants.CountryJapan] /
|
||||||
|
battlesCountByNation[Constants.CountryJapan]);
|
||||||
|
}
|
||||||
|
if (battlesCountByNation.ContainsKey(Constants.CountryOther))
|
||||||
|
{
|
||||||
|
otherData = Convert.ToInt32(100 * winsCountByNation[Constants.CountryOther] /
|
||||||
|
battlesCountByNation[Constants.CountryOther]);
|
||||||
|
}
|
||||||
|
if (battlesCountByNation.ContainsKey(Constants.CountryUk))
|
||||||
|
{
|
||||||
|
ukData = Convert.ToInt32(100 * winsCountByNation[Constants.CountryUk] /
|
||||||
|
battlesCountByNation[Constants.CountryUk]);
|
||||||
|
}
|
||||||
|
if (battlesCountByNation.ContainsKey(Constants.CountryUsa))
|
||||||
|
{
|
||||||
|
usaData = Convert.ToInt32(100 * winsCountByNation[Constants.CountryUsa] /
|
||||||
|
battlesCountByNation[Constants.CountryUsa]);
|
||||||
|
}
|
||||||
|
if (battlesCountByNation.ContainsKey(Constants.CountryUssr))
|
||||||
|
{
|
||||||
|
ussrData = Convert.ToInt32(100 * winsCountByNation[Constants.CountryUssr] /
|
||||||
|
battlesCountByNation[Constants.CountryUssr]);
|
||||||
|
}
|
||||||
|
|
||||||
|
var chartData = new[]
|
||||||
|
{
|
||||||
|
new {country = Constants.CountryChina, value = chinaData, color = chinaData.ScaleColor()},
|
||||||
|
new {country = Constants.CountryEuropean, value = euData, color = euData.ScaleColor()},
|
||||||
|
new {country = Constants.CountryFrance, value = franceData, color = franceData.ScaleColor()},
|
||||||
|
new {country = Constants.CountryGermany, value = germanyData, color = germanyData.ScaleColor()},
|
||||||
|
new {country = Constants.CountryJapan, value = japanData, color = japanData.ScaleColor()},
|
||||||
|
new {country = Constants.CountryOther, value = otherData, color = otherData.ScaleColor()},
|
||||||
|
new {country = Constants.CountryUk, value = ukData, color = ukData.ScaleColor()},
|
||||||
|
new {country = Constants.CountryUsa, value = usaData, color = usaData.ScaleColor()},
|
||||||
|
new {country = Constants.CountryUssr, value = ussrData, color = ussrData.ScaleColor()},
|
||||||
|
};
|
||||||
|
|
||||||
|
await _jsRuntime.InvokeVoidAsync("eChartsInterop.BuildBarChartByNation", elementId, _localize.GetString("Win rate by nation").Value, chartData);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task BuildBarChartAvgDmgByNation(string elementId, IEnumerable<ITank> tanks)
|
||||||
|
{
|
||||||
|
var battlesCountByNation = new Dictionary<string, long>();
|
||||||
|
var dmgCountByNation = new Dictionary<string, long>();
|
||||||
|
|
||||||
|
foreach (var tank in tanks)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(tank.TankNationId))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (battlesCountByNation.ContainsKey(tank.TankNationId))
|
||||||
|
{
|
||||||
|
battlesCountByNation[tank.TankNationId] += tank.Battles;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
battlesCountByNation.Add(tank.TankNationId, tank.Battles);
|
||||||
|
}
|
||||||
|
if (dmgCountByNation.ContainsKey(tank.TankNationId))
|
||||||
|
{
|
||||||
|
dmgCountByNation[tank.TankNationId] += tank.DamageDealt;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
dmgCountByNation.Add(tank.TankNationId, tank.DamageDealt);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int chinaData = 0;
|
||||||
|
int euData = 0;
|
||||||
|
int franceData = 0;
|
||||||
|
int germanyData = 0;
|
||||||
|
int japanData = 0;
|
||||||
|
int otherData = 0;
|
||||||
|
int ukData = 0;
|
||||||
|
int usaData = 0;
|
||||||
|
int ussrData = 0;
|
||||||
|
if (battlesCountByNation.ContainsKey(Constants.CountryChina))
|
||||||
|
{
|
||||||
|
chinaData = Convert.ToInt32(dmgCountByNation[Constants.CountryChina] /
|
||||||
|
battlesCountByNation[Constants.CountryChina]);
|
||||||
|
}
|
||||||
|
if (battlesCountByNation.ContainsKey(Constants.CountryEuropean))
|
||||||
|
{
|
||||||
|
euData = Convert.ToInt32(dmgCountByNation[Constants.CountryEuropean] /
|
||||||
|
battlesCountByNation[Constants.CountryEuropean]);
|
||||||
|
}
|
||||||
|
if (battlesCountByNation.ContainsKey(Constants.CountryFrance))
|
||||||
|
{
|
||||||
|
franceData = Convert.ToInt32(dmgCountByNation[Constants.CountryFrance] /
|
||||||
|
battlesCountByNation[Constants.CountryFrance]);
|
||||||
|
}
|
||||||
|
if (battlesCountByNation.ContainsKey(Constants.CountryGermany))
|
||||||
|
{
|
||||||
|
germanyData = Convert.ToInt32(dmgCountByNation[Constants.CountryGermany] /
|
||||||
|
battlesCountByNation[Constants.CountryGermany]);
|
||||||
|
}
|
||||||
|
if (battlesCountByNation.ContainsKey(Constants.CountryJapan))
|
||||||
|
{
|
||||||
|
japanData = Convert.ToInt32(dmgCountByNation[Constants.CountryJapan] /
|
||||||
|
battlesCountByNation[Constants.CountryJapan]);
|
||||||
|
}
|
||||||
|
if (battlesCountByNation.ContainsKey(Constants.CountryOther))
|
||||||
|
{
|
||||||
|
otherData = Convert.ToInt32(dmgCountByNation[Constants.CountryOther] /
|
||||||
|
battlesCountByNation[Constants.CountryOther]);
|
||||||
|
}
|
||||||
|
if (battlesCountByNation.ContainsKey(Constants.CountryUk))
|
||||||
|
{
|
||||||
|
ukData = Convert.ToInt32(dmgCountByNation[Constants.CountryUk] /
|
||||||
|
battlesCountByNation[Constants.CountryUk]);
|
||||||
|
}
|
||||||
|
if (battlesCountByNation.ContainsKey(Constants.CountryUsa))
|
||||||
|
{
|
||||||
|
usaData = Convert.ToInt32(dmgCountByNation[Constants.CountryUsa] /
|
||||||
|
battlesCountByNation[Constants.CountryUsa]);
|
||||||
|
}
|
||||||
|
if (battlesCountByNation.ContainsKey(Constants.CountryUssr))
|
||||||
|
{
|
||||||
|
ussrData = Convert.ToInt32(dmgCountByNation[Constants.CountryUssr] /
|
||||||
|
battlesCountByNation[Constants.CountryUssr]);
|
||||||
|
}
|
||||||
|
|
||||||
|
var chartData = new[]
|
||||||
|
{
|
||||||
|
new {country = Constants.CountryChina, value = chinaData, color = "#D98D8B"},
|
||||||
|
new {country = Constants.CountryEuropean, value = euData, color = "#D98D8B"},
|
||||||
|
new {country = Constants.CountryFrance, value = franceData, color = "#D98D8B"},
|
||||||
|
new {country = Constants.CountryGermany, value = germanyData, color = "#D98D8B"},
|
||||||
|
new {country = Constants.CountryJapan, value = japanData, color = "#D98D8B"},
|
||||||
|
new {country = Constants.CountryOther, value = otherData, color = "#D98D8B"},
|
||||||
|
new {country = Constants.CountryUk, value = ukData, color = "#D98D8B"},
|
||||||
|
new {country = Constants.CountryUsa, value = usaData, color = "#D98D8B"},
|
||||||
|
new {country = Constants.CountryUssr, value = ussrData, color = "#D98D8B"},
|
||||||
|
};
|
||||||
|
|
||||||
|
await _jsRuntime.InvokeVoidAsync("eChartsInterop.BuildBarChartByNation", elementId, _localize.GetString("Avg damage by nation").Value, chartData);
|
||||||
|
}
|
||||||
|
|
||||||
public async Task BuildStackedBarChart(string elementId)
|
public async Task BuildStackedBarChart(string elementId)
|
||||||
{
|
{
|
||||||
await _jsRuntime.InvokeVoidAsync("eChartsInterop.BuildStackedBarChart", elementId);
|
await _jsRuntime.InvokeVoidAsync("eChartsInterop.BuildStackedBarChart", elementId);
|
||||||
|
|||||||
@@ -9,6 +9,9 @@ namespace WotBlitzStatisticsPro.Blazor.Services
|
|||||||
Task BuildBarChartBattlesByTankType(string elementId, IEnumerable<ITank> tanks);
|
Task BuildBarChartBattlesByTankType(string elementId, IEnumerable<ITank> tanks);
|
||||||
Task BuildBarChartWinRatesByTankType(string elementId, IEnumerable<ITank> tanks);
|
Task BuildBarChartWinRatesByTankType(string elementId, IEnumerable<ITank> tanks);
|
||||||
Task BuildBarChartAvgDmgByTankType(string elementId, IEnumerable<ITank> tanks);
|
Task BuildBarChartAvgDmgByTankType(string elementId, IEnumerable<ITank> tanks);
|
||||||
|
Task BuildBarChartBattlesByNation(string elementId, IEnumerable<ITank> tanks);
|
||||||
|
Task BuildBarChartWinRatesByNation(string elementId, IEnumerable<ITank> tanks);
|
||||||
|
Task BuildBarChartAvgDmgByNation(string elementId, IEnumerable<ITank> tanks);
|
||||||
Task BuildStackedBarChart(string elementId);
|
Task BuildStackedBarChart(string elementId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -129,6 +129,216 @@ eChartsInterop.BuildBarChartByTankType = function (elementId, chartTitle, chartD
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
eChartsInterop.BuildBarChartByNation = function (elementId, chartTitle, chartData) {
|
||||||
|
var flags = {
|
||||||
|
'china': '/flags/china-round.png',
|
||||||
|
'european': '/flags/eu-round.png',
|
||||||
|
'france': '/flags/france-round.png',
|
||||||
|
'germany': '/flags/germany-round.png',
|
||||||
|
'japan': '/flags/japan-round.png',
|
||||||
|
'other': '/flags/other-round.png',
|
||||||
|
'uk': '/flags/uk-round.png',
|
||||||
|
'usa': '/flags/usa-round.png',
|
||||||
|
'ussr': '/flags/ussr-round.png',
|
||||||
|
};
|
||||||
|
|
||||||
|
var seriesLabel = {
|
||||||
|
show: true
|
||||||
|
}
|
||||||
|
|
||||||
|
// based on prepared DOM, initialize echarts instance
|
||||||
|
var myChart = echarts.init(document.getElementById(elementId), 'dark');
|
||||||
|
|
||||||
|
var chinaData = chartData.find(d => d.country === 'china');
|
||||||
|
var euData = chartData.find(d => d.country === 'european');
|
||||||
|
var franceData = chartData.find(d => d.country === 'france');
|
||||||
|
var germanyData = chartData.find(d => d.country === 'germany');
|
||||||
|
var japanData = chartData.find(d => d.country === 'japan');
|
||||||
|
var otherData = chartData.find(d => d.country === 'other');
|
||||||
|
var ukData = chartData.find(d => d.country === 'uk');
|
||||||
|
var usaData = chartData.find(d => d.country === 'usa');
|
||||||
|
var ussrData = chartData.find(d => d.country === 'ussr');
|
||||||
|
|
||||||
|
// specify chart configuration item and data
|
||||||
|
var option = {
|
||||||
|
title: {
|
||||||
|
text: chartTitle
|
||||||
|
},
|
||||||
|
toolbox: {
|
||||||
|
show: true,
|
||||||
|
feature: {
|
||||||
|
saveAsImage: {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
xAxis: {
|
||||||
|
type: 'value',
|
||||||
|
name: '',
|
||||||
|
axisLabel: {
|
||||||
|
formatter: '{value}'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
yAxis: {
|
||||||
|
type: 'category',
|
||||||
|
data: ['other', 'usa', 'germany', 'ussr', 'uk', 'japan', 'china', 'france', 'european'],
|
||||||
|
axisTick: {
|
||||||
|
alignWithLabel: true
|
||||||
|
},
|
||||||
|
axisLabel: {
|
||||||
|
formatter: function (value) {
|
||||||
|
return '{' + value + '| }';
|
||||||
|
},
|
||||||
|
rich: {
|
||||||
|
value: {
|
||||||
|
lineHeight: 10,
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
other: {
|
||||||
|
height: 20,
|
||||||
|
width: 20,
|
||||||
|
align: 'center',
|
||||||
|
backgroundColor: {
|
||||||
|
image: flags.other
|
||||||
|
}
|
||||||
|
},
|
||||||
|
usa: {
|
||||||
|
height: 20,
|
||||||
|
width: 20,
|
||||||
|
align: 'center',
|
||||||
|
backgroundColor: {
|
||||||
|
image: flags.usa
|
||||||
|
}
|
||||||
|
},
|
||||||
|
germany: {
|
||||||
|
height: 20,
|
||||||
|
width: 20,
|
||||||
|
align: 'center',
|
||||||
|
backgroundColor: {
|
||||||
|
image: flags.germany
|
||||||
|
}
|
||||||
|
},
|
||||||
|
ussr: {
|
||||||
|
height: 20,
|
||||||
|
width: 20,
|
||||||
|
align: 'center',
|
||||||
|
backgroundColor: {
|
||||||
|
image: flags.ussr
|
||||||
|
}
|
||||||
|
},
|
||||||
|
uk: {
|
||||||
|
height: 20,
|
||||||
|
width: 20,
|
||||||
|
align: 'center',
|
||||||
|
backgroundColor: {
|
||||||
|
image: flags.uk
|
||||||
|
}
|
||||||
|
},
|
||||||
|
japan: {
|
||||||
|
height: 20,
|
||||||
|
width: 20,
|
||||||
|
align: 'center',
|
||||||
|
backgroundColor: {
|
||||||
|
image: flags.japan
|
||||||
|
}
|
||||||
|
},
|
||||||
|
china: {
|
||||||
|
height: 20,
|
||||||
|
width: 20,
|
||||||
|
align: 'center',
|
||||||
|
backgroundColor: {
|
||||||
|
image: flags.china
|
||||||
|
}
|
||||||
|
},
|
||||||
|
france: {
|
||||||
|
height: 20,
|
||||||
|
width: 20,
|
||||||
|
align: 'center',
|
||||||
|
backgroundColor: {
|
||||||
|
image: flags.france
|
||||||
|
}
|
||||||
|
},
|
||||||
|
european: {
|
||||||
|
height: 20,
|
||||||
|
width: 20,
|
||||||
|
align: 'center',
|
||||||
|
backgroundColor: {
|
||||||
|
image: flags.european
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
series: [
|
||||||
|
{
|
||||||
|
type: 'bar',
|
||||||
|
label: seriesLabel,
|
||||||
|
barWidth: '30px',
|
||||||
|
data: [
|
||||||
|
{
|
||||||
|
value: otherData.value,
|
||||||
|
itemStyle: {
|
||||||
|
color: otherData.color
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: usaData.value,
|
||||||
|
itemStyle: {
|
||||||
|
color: usaData.color
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: germanyData.value,
|
||||||
|
itemStyle: {
|
||||||
|
color: germanyData.color
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: ussrData.value,
|
||||||
|
itemStyle: {
|
||||||
|
color: ussrData.color
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: ukData.value,
|
||||||
|
itemStyle: {
|
||||||
|
color: ukData.color
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: japanData.value,
|
||||||
|
itemStyle: {
|
||||||
|
color: japanData.color
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: chinaData.value,
|
||||||
|
itemStyle: {
|
||||||
|
color: chinaData.color
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: franceData.value,
|
||||||
|
itemStyle: {
|
||||||
|
color: franceData.color
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: euData.value,
|
||||||
|
itemStyle: {
|
||||||
|
color: euData.color
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}]
|
||||||
|
};
|
||||||
|
|
||||||
|
// use configuration item and data specified to show chart
|
||||||
|
myChart.setOption(option);
|
||||||
|
window.addEventListener('resize',
|
||||||
|
function() {
|
||||||
|
myChart.resize();
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
eChartsInterop.BuildStackedBarChart = function (elementId) {
|
eChartsInterop.BuildStackedBarChart = function (elementId) {
|
||||||
var tankTypes = {
|
var tankTypes = {
|
||||||
'HeavyTank': '/tank-type/vehicle.class.heavy.small.scale-200.png',
|
'HeavyTank': '/tank-type/vehicle.class.heavy.small.scale-200.png',
|
||||||
|
|||||||
|
After Width: | Height: | Size: 7.1 KiB |
|
After Width: | Height: | Size: 6.9 KiB |
|
After Width: | Height: | Size: 5.6 KiB |
|
After Width: | Height: | Size: 7.1 KiB |
|
After Width: | Height: | Size: 8.3 KiB |
|
After Width: | Height: | Size: 7.4 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 9.9 KiB |
|
After Width: | Height: | Size: 6.4 KiB |