Merge pull request #7 from DrMboga/dev

Dev to master 1.0.0.3
This commit is contained in:
DrMboga authored and GitHub committed 2022-05-06 12:14:44 +02:00
commit b1f8684d90
57 files changed
+1300 -232

No files matched your search

@@ -15,14 +15,14 @@ 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.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.WargamingAuthenticationQueryQuery>(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.WargamingOpenIdMutation>(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.WargamingOpenIdAuthenticationMutation>(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.WargamingOpenIdAuthenticationMutation>(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.WargamingPlayersMutation>(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.WargamingOpenIdMutation>(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.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.UpdatePlayerMutation>(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.UpdatePlayerMutation>(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.WargamingPlayersMutation>(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.WargamingAuthenticationQueryQuery>(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);
@@ -57,13 +57,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.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.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));
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::StrawberryShake.IOperationResultBuilder<global::System.Text.Json.JsonDocument, global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindClansResult>, global::WotBlitzStatisticsPro.Blazor.GraphQl.State.FindClansBuilder>(services);
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<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.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.IOperationRequestFactory>(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindPlayersQuery>(sp));
@@ -71,27 +64,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.IWargamingAuthenticationQueryResult>, global::WotBlitzStatisticsPro.Blazor.GraphQl.State.WargamingAuthenticationQueryResultFactory>(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.IWargamingAuthenticationQueryResult>>(sp));
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::StrawberryShake.IOperationRequestFactory>(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingAuthenticationQueryQuery>(sp));
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::StrawberryShake.IOperationResultBuilder<global::System.Text.Json.JsonDocument, global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingAuthenticationQueryResult>, global::WotBlitzStatisticsPro.Blazor.GraphQl.State.WargamingAuthenticationQueryBuilder>(services);
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::StrawberryShake.IOperationExecutor<global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingAuthenticationQueryResult>>(services, sp => new global::StrawberryShake.OperationExecutor<global::System.Text.Json.JsonDocument, global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingAuthenticationQueryResult>(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.IWargamingAuthenticationQueryResult>>(sp), global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<global::StrawberryShake.IOperationStore>(sp), strategy));
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::WotBlitzStatisticsPro.Blazor.GraphQl.WargamingAuthenticationQueryQuery>(services);
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingAuthenticationQueryQuery>(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<global::WotBlitzStatisticsPro.Blazor.GraphQl.WargamingAuthenticationQueryQuery>(sp));
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::StrawberryShake.IOperationResultDataFactory<global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingOpenIdResult>, global::WotBlitzStatisticsPro.Blazor.GraphQl.State.WargamingOpenIdResultFactory>(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.IWargamingOpenIdResult>>(sp));
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::StrawberryShake.IOperationRequestFactory>(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingOpenIdMutation>(sp));
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::StrawberryShake.IOperationResultBuilder<global::System.Text.Json.JsonDocument, global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingOpenIdResult>, global::WotBlitzStatisticsPro.Blazor.GraphQl.State.WargamingOpenIdBuilder>(services);
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::StrawberryShake.IOperationExecutor<global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingOpenIdResult>>(services, sp => new global::StrawberryShake.OperationExecutor<global::System.Text.Json.JsonDocument, global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingOpenIdResult>(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.IWargamingOpenIdResult>>(sp), global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<global::StrawberryShake.IOperationStore>(sp), strategy));
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::WotBlitzStatisticsPro.Blazor.GraphQl.WargamingOpenIdMutation>(services);
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingOpenIdMutation>(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<global::WotBlitzStatisticsPro.Blazor.GraphQl.WargamingOpenIdMutation>(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.IWargamingOpenIdAuthenticationResult>, global::WotBlitzStatisticsPro.Blazor.GraphQl.State.WargamingOpenIdAuthenticationResultFactory>(services); global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::StrawberryShake.IOperationResultDataFactory<global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingOpenIdAuthenticationResult>, global::WotBlitzStatisticsPro.Blazor.GraphQl.State.WargamingOpenIdAuthenticationResultFactory>(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.IWargamingOpenIdAuthenticationResult>>(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.IWargamingOpenIdAuthenticationResult>>(sp));
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::StrawberryShake.IOperationRequestFactory>(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingOpenIdAuthenticationMutation>(sp)); global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::StrawberryShake.IOperationRequestFactory>(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingOpenIdAuthenticationMutation>(sp));
@@ -99,13 +71,27 @@ namespace Microsoft.Extensions.DependencyInjection
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::StrawberryShake.IOperationExecutor<global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingOpenIdAuthenticationResult>>(services, sp => new global::StrawberryShake.OperationExecutor<global::System.Text.Json.JsonDocument, global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingOpenIdAuthenticationResult>(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.IWargamingOpenIdAuthenticationResult>>(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.IWargamingOpenIdAuthenticationResult>>(services, sp => new global::StrawberryShake.OperationExecutor<global::System.Text.Json.JsonDocument, global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingOpenIdAuthenticationResult>(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.IWargamingOpenIdAuthenticationResult>>(sp), global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<global::StrawberryShake.IOperationStore>(sp), strategy));
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::WotBlitzStatisticsPro.Blazor.GraphQl.WargamingOpenIdAuthenticationMutation>(services); global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::WotBlitzStatisticsPro.Blazor.GraphQl.WargamingOpenIdAuthenticationMutation>(services);
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingOpenIdAuthenticationMutation>(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<global::WotBlitzStatisticsPro.Blazor.GraphQl.WargamingOpenIdAuthenticationMutation>(sp)); global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingOpenIdAuthenticationMutation>(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<global::WotBlitzStatisticsPro.Blazor.GraphQl.WargamingOpenIdAuthenticationMutation>(sp));
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::StrawberryShake.IOperationResultDataFactory<global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingPlayersResult>, global::WotBlitzStatisticsPro.Blazor.GraphQl.State.WargamingPlayersResultFactory>(services); global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::StrawberryShake.IOperationResultDataFactory<global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingOpenIdResult>, global::WotBlitzStatisticsPro.Blazor.GraphQl.State.WargamingOpenIdResultFactory>(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.IWargamingPlayersResult>>(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.IWargamingOpenIdResult>>(sp));
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::StrawberryShake.IOperationRequestFactory>(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingPlayersMutation>(sp)); global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::StrawberryShake.IOperationRequestFactory>(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingOpenIdMutation>(sp));
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::StrawberryShake.IOperationResultBuilder<global::System.Text.Json.JsonDocument, global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingPlayersResult>, global::WotBlitzStatisticsPro.Blazor.GraphQl.State.WargamingPlayersBuilder>(services); global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::StrawberryShake.IOperationResultBuilder<global::System.Text.Json.JsonDocument, global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingOpenIdResult>, global::WotBlitzStatisticsPro.Blazor.GraphQl.State.WargamingOpenIdBuilder>(services);
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::StrawberryShake.IOperationExecutor<global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingPlayersResult>>(services, sp => new global::StrawberryShake.OperationExecutor<global::System.Text.Json.JsonDocument, global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingPlayersResult>(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.IWargamingPlayersResult>>(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.IWargamingOpenIdResult>>(services, sp => new global::StrawberryShake.OperationExecutor<global::System.Text.Json.JsonDocument, global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingOpenIdResult>(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.IWargamingOpenIdResult>>(sp), global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<global::StrawberryShake.IOperationStore>(sp), strategy));
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::WotBlitzStatisticsPro.Blazor.GraphQl.WargamingPlayersMutation>(services); global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::WotBlitzStatisticsPro.Blazor.GraphQl.WargamingOpenIdMutation>(services);
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingPlayersMutation>(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<global::WotBlitzStatisticsPro.Blazor.GraphQl.WargamingPlayersMutation>(sp)); global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingOpenIdMutation>(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<global::WotBlitzStatisticsPro.Blazor.GraphQl.WargamingOpenIdMutation>(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));
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::StrawberryShake.IOperationResultBuilder<global::System.Text.Json.JsonDocument, global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindClansResult>, global::WotBlitzStatisticsPro.Blazor.GraphQl.State.FindClansBuilder>(services);
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.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.IUpdatePlayerResult>, global::WotBlitzStatisticsPro.Blazor.GraphQl.State.UpdatePlayerResultFactory>(services); global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::StrawberryShake.IOperationResultDataFactory<global::WotBlitzStatisticsPro.Blazor.GraphQl.IUpdatePlayerResult>, global::WotBlitzStatisticsPro.Blazor.GraphQl.State.UpdatePlayerResultFactory>(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.IUpdatePlayerResult>>(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.IUpdatePlayerResult>>(sp));
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::StrawberryShake.IOperationRequestFactory>(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<global::WotBlitzStatisticsPro.Blazor.GraphQl.IUpdatePlayerMutation>(sp)); global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::StrawberryShake.IOperationRequestFactory>(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<global::WotBlitzStatisticsPro.Blazor.GraphQl.IUpdatePlayerMutation>(sp));
@@ -113,6 +99,20 @@ namespace Microsoft.Extensions.DependencyInjection
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::StrawberryShake.IOperationExecutor<global::WotBlitzStatisticsPro.Blazor.GraphQl.IUpdatePlayerResult>>(services, sp => new global::StrawberryShake.OperationExecutor<global::System.Text.Json.JsonDocument, global::WotBlitzStatisticsPro.Blazor.GraphQl.IUpdatePlayerResult>(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.IUpdatePlayerResult>>(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.IUpdatePlayerResult>>(services, sp => new global::StrawberryShake.OperationExecutor<global::System.Text.Json.JsonDocument, global::WotBlitzStatisticsPro.Blazor.GraphQl.IUpdatePlayerResult>(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.IUpdatePlayerResult>>(sp), global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<global::StrawberryShake.IOperationStore>(sp), strategy));
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::WotBlitzStatisticsPro.Blazor.GraphQl.UpdatePlayerMutation>(services); global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::WotBlitzStatisticsPro.Blazor.GraphQl.UpdatePlayerMutation>(services);
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::WotBlitzStatisticsPro.Blazor.GraphQl.IUpdatePlayerMutation>(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<global::WotBlitzStatisticsPro.Blazor.GraphQl.UpdatePlayerMutation>(sp)); global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::WotBlitzStatisticsPro.Blazor.GraphQl.IUpdatePlayerMutation>(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<global::WotBlitzStatisticsPro.Blazor.GraphQl.UpdatePlayerMutation>(sp));
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::StrawberryShake.IOperationResultDataFactory<global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingPlayersResult>, global::WotBlitzStatisticsPro.Blazor.GraphQl.State.WargamingPlayersResultFactory>(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.IWargamingPlayersResult>>(sp));
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::StrawberryShake.IOperationRequestFactory>(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingPlayersMutation>(sp));
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::StrawberryShake.IOperationResultBuilder<global::System.Text.Json.JsonDocument, global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingPlayersResult>, global::WotBlitzStatisticsPro.Blazor.GraphQl.State.WargamingPlayersBuilder>(services);
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::StrawberryShake.IOperationExecutor<global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingPlayersResult>>(services, sp => new global::StrawberryShake.OperationExecutor<global::System.Text.Json.JsonDocument, global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingPlayersResult>(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.IWargamingPlayersResult>>(sp), global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<global::StrawberryShake.IOperationStore>(sp), strategy));
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::WotBlitzStatisticsPro.Blazor.GraphQl.WargamingPlayersMutation>(services);
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingPlayersMutation>(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<global::WotBlitzStatisticsPro.Blazor.GraphQl.WargamingPlayersMutation>(sp));
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::StrawberryShake.IOperationResultDataFactory<global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingAuthenticationQueryResult>, global::WotBlitzStatisticsPro.Blazor.GraphQl.State.WargamingAuthenticationQueryResultFactory>(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.IWargamingAuthenticationQueryResult>>(sp));
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::StrawberryShake.IOperationRequestFactory>(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingAuthenticationQueryQuery>(sp));
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::StrawberryShake.IOperationResultBuilder<global::System.Text.Json.JsonDocument, global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingAuthenticationQueryResult>, global::WotBlitzStatisticsPro.Blazor.GraphQl.State.WargamingAuthenticationQueryBuilder>(services);
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::StrawberryShake.IOperationExecutor<global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingAuthenticationQueryResult>>(services, sp => new global::StrawberryShake.OperationExecutor<global::System.Text.Json.JsonDocument, global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingAuthenticationQueryResult>(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.IWargamingAuthenticationQueryResult>>(sp), global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<global::StrawberryShake.IOperationStore>(sp), strategy));
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::WotBlitzStatisticsPro.Blazor.GraphQl.WargamingAuthenticationQueryQuery>(services);
global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton<global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingAuthenticationQueryQuery>(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService<global::WotBlitzStatisticsPro.Blazor.GraphQl.WargamingAuthenticationQueryQuery>(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,20 +9,20 @@ 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.IFindClansQuery FindClans { get; }
global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindPlayersQuery FindPlayers { get; } global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindPlayersQuery FindPlayers { get; }
global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingAuthenticationQueryQuery WargamingAuthenticationQuery { get; }
global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingOpenIdMutation WargamingOpenId { get; }
global::WotBlitzStatisticsPro.Blazor.GraphQl.IPlayerQuery Player { get; }
global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingOpenIdAuthenticationMutation WargamingOpenIdAuthentication { get; } global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingOpenIdAuthenticationMutation WargamingOpenIdAuthentication { get; }
global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingPlayersMutation WargamingPlayers { get; } global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingOpenIdMutation WargamingOpenId { get; }
global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindClansQuery FindClans { get; }
global::WotBlitzStatisticsPro.Blazor.GraphQl.IPlayerQuery Player { get; }
global::WotBlitzStatisticsPro.Blazor.GraphQl.IUpdatePlayerMutation UpdatePlayer { get; } global::WotBlitzStatisticsPro.Blazor.GraphQl.IUpdatePlayerMutation UpdatePlayer { get; }
global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingPlayersMutation WargamingPlayers { get; }
global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingAuthenticationQueryQuery WargamingAuthenticationQuery { get; }
} }
} }
@@ -11,18 +11,24 @@ namespace WotBlitzStatisticsPro.Blazor.GraphQl
{ {
return serializedValue switch return serializedValue switch
{ {
"NONE" => MarkOfMastery.None, "RANK3" => MarkOfMastery.Rank3, "RANK2" => MarkOfMastery.Rank2, "RANK1" => MarkOfMastery.Rank1, "MASTER" => MarkOfMastery.Master, _ => throw new global::StrawberryShake.GraphQLClientException()} "NONE" => MarkOfMastery.None,
"RANK3" => MarkOfMastery.Rank3,
; "RANK2" => MarkOfMastery.Rank2,
"RANK1" => MarkOfMastery.Rank1,
"MASTER" => MarkOfMastery.Master,
_ => throw new global::StrawberryShake.GraphQLClientException()};
} }
public global::System.Object Format(global::System.Object? runtimeValue) public global::System.Object Format(global::System.Object? runtimeValue)
{ {
return runtimeValue switch return runtimeValue switch
{ {
MarkOfMastery.None => "NONE", MarkOfMastery.Rank3 => "RANK3", MarkOfMastery.Rank2 => "RANK2", MarkOfMastery.Rank1 => "RANK1", MarkOfMastery.Master => "MASTER", _ => throw new global::StrawberryShake.GraphQLClientException()} MarkOfMastery.None => "NONE",
MarkOfMastery.Rank3 => "RANK3",
; MarkOfMastery.Rank2 => "RANK2",
MarkOfMastery.Rank1 => "RANK1",
MarkOfMastery.Master => "MASTER",
_ => throw new global::StrawberryShake.GraphQLClientException()};
} }
} }
} }
@@ -11,18 +11,22 @@ namespace WotBlitzStatisticsPro.Blazor.GraphQl
{ {
return serializedValue switch return serializedValue switch
{ {
"RU" => RealmType.Ru, "EU" => RealmType.Eu, "NA" => RealmType.Na, "ASIA" => RealmType.Asia, _ => throw new global::StrawberryShake.GraphQLClientException()} "RU" => RealmType.Ru,
"EU" => RealmType.Eu,
; "NA" => RealmType.Na,
"ASIA" => RealmType.Asia,
_ => throw new global::StrawberryShake.GraphQLClientException()};
} }
public global::System.Object Format(global::System.Object? runtimeValue) public global::System.Object Format(global::System.Object? runtimeValue)
{ {
return runtimeValue switch return runtimeValue switch
{ {
RealmType.Ru => "RU", RealmType.Eu => "EU", RealmType.Na => "NA", RealmType.Asia => "ASIA", _ => throw new global::StrawberryShake.GraphQLClientException()} RealmType.Ru => "RU",
RealmType.Eu => "EU",
; RealmType.Na => "NA",
RealmType.Asia => "ASIA",
_ => throw new global::StrawberryShake.GraphQLClientException()};
} }
} }
} }
@@ -11,18 +11,20 @@ namespace WotBlitzStatisticsPro.Blazor.GraphQl
{ {
return serializedValue switch return serializedValue switch
{ {
"RU" => RequestLanguage.Ru, "EN" => RequestLanguage.En, "DE" => RequestLanguage.De, _ => throw new global::StrawberryShake.GraphQLClientException()} "RU" => RequestLanguage.Ru,
"EN" => RequestLanguage.En,
; "DE" => RequestLanguage.De,
_ => throw new global::StrawberryShake.GraphQLClientException()};
} }
public global::System.Object Format(global::System.Object? runtimeValue) public global::System.Object Format(global::System.Object? runtimeValue)
{ {
return runtimeValue switch return runtimeValue switch
{ {
RequestLanguage.Ru => "RU", RequestLanguage.En => "EN", RequestLanguage.De => "DE", _ => throw new global::StrawberryShake.GraphQLClientException()} RequestLanguage.Ru => "RU",
RequestLanguage.En => "EN",
; RequestLanguage.De => "DE",
_ => throw new global::StrawberryShake.GraphQLClientException()};
} }
} }
} }
@@ -13,18 +13,16 @@ namespace WotBlitzStatisticsPro.Blazor.GraphQl.State
global::System.String __typename = obj.GetProperty("__typename").GetString()!; global::System.String __typename = obj.GetProperty("__typename").GetString()!;
return __typename switch return __typename switch
{ {
"Achievement" => ParseAchievementEntityId(obj, __typename), _ => throw new global::System.NotSupportedException()} "Achievement" => ParseAchievementEntityId(obj, __typename),
_ => throw new global::System.NotSupportedException()};
;
} }
public global::System.String Format(global::StrawberryShake.EntityId entityId) public global::System.String Format(global::StrawberryShake.EntityId entityId)
{ {
return entityId.Name switch return entityId.Name switch
{ {
"Achievement" => FormatAchievementEntityId(entityId), _ => throw new global::System.NotSupportedException()} "Achievement" => FormatAchievementEntityId(entityId),
_ => throw new global::System.NotSupportedException()};
;
} }
private global::StrawberryShake.EntityId ParseAchievementEntityId(global::System.Text.Json.JsonElement obj, global::System.String type) private global::StrawberryShake.EntityId ParseAchievementEntityId(global::System.Text.Json.JsonElement obj, global::System.String type)
@@ -6,7 +6,7 @@ namespace WotBlitzStatisticsPro.Blazor.GraphQl.State
[global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.2.2.0")] [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.2.2.0")]
public partial class WotBlitzStatisticsProClientStoreAccessor : global::StrawberryShake.StoreAccessor public partial class WotBlitzStatisticsProClientStoreAccessor : global::StrawberryShake.StoreAccessor
{ {
public WotBlitzStatisticsProClientStoreAccessor(global::StrawberryShake.IOperationStore operationStore, global::StrawberryShake.IEntityStore entityStore, global::StrawberryShake.IEntityIdSerializer entityIdSerializer, global::System.Collections.Generic.IEnumerable<global::StrawberryShake.IOperationRequestFactory> requestFactories, global::System.Collections.Generic.IEnumerable<global::StrawberryShake.IOperationResultDataFactory> resultDataFactories): base(operationStore, entityStore, entityIdSerializer, requestFactories, resultDataFactories) public WotBlitzStatisticsProClientStoreAccessor(global::StrawberryShake.IOperationStore operationStore, global::StrawberryShake.IEntityStore entityStore, global::StrawberryShake.IEntityIdSerializer entityIdSerializer, global::System.Collections.Generic.IEnumerable<global::StrawberryShake.IOperationRequestFactory> requestFactories, global::System.Collections.Generic.IEnumerable<global::StrawberryShake.IOperationResultDataFactory> resultDataFactories) : base(operationStore, entityStore, entityIdSerializer, requestFactories, resultDataFactories)
{ {
} }
} }
@@ -9,34 +9,34 @@ 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.IFindClansQuery _findClans;
private readonly global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindPlayersQuery _findPlayers; private readonly global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindPlayersQuery _findPlayers;
private readonly global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingAuthenticationQueryQuery _wargamingAuthenticationQuery;
private readonly global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingOpenIdMutation _wargamingOpenId;
private readonly global::WotBlitzStatisticsPro.Blazor.GraphQl.IPlayerQuery _player;
private readonly global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingOpenIdAuthenticationMutation _wargamingOpenIdAuthentication; private readonly global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingOpenIdAuthenticationMutation _wargamingOpenIdAuthentication;
private readonly global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingPlayersMutation _wargamingPlayers; private readonly global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingOpenIdMutation _wargamingOpenId;
private readonly global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindClansQuery _findClans;
private readonly global::WotBlitzStatisticsPro.Blazor.GraphQl.IPlayerQuery _player;
private readonly global::WotBlitzStatisticsPro.Blazor.GraphQl.IUpdatePlayerMutation _updatePlayer; private readonly global::WotBlitzStatisticsPro.Blazor.GraphQl.IUpdatePlayerMutation _updatePlayer;
public WotBlitzStatisticsProClient(global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindClansQuery findClans, global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindPlayersQuery findPlayers, global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingAuthenticationQueryQuery wargamingAuthenticationQuery, global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingOpenIdMutation wargamingOpenId, global::WotBlitzStatisticsPro.Blazor.GraphQl.IPlayerQuery player, global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingOpenIdAuthenticationMutation wargamingOpenIdAuthentication, global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingPlayersMutation wargamingPlayers, global::WotBlitzStatisticsPro.Blazor.GraphQl.IUpdatePlayerMutation updatePlayer) private readonly global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingPlayersMutation _wargamingPlayers;
private readonly global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingAuthenticationQueryQuery _wargamingAuthenticationQuery;
public WotBlitzStatisticsProClient(global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindPlayersQuery findPlayers, global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingOpenIdAuthenticationMutation wargamingOpenIdAuthentication, global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingOpenIdMutation wargamingOpenId, global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindClansQuery findClans, global::WotBlitzStatisticsPro.Blazor.GraphQl.IPlayerQuery player, global::WotBlitzStatisticsPro.Blazor.GraphQl.IUpdatePlayerMutation updatePlayer, global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingPlayersMutation wargamingPlayers, global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingAuthenticationQueryQuery wargamingAuthenticationQuery)
{ {
_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));
_wargamingAuthenticationQuery = wargamingAuthenticationQuery ?? throw new global::System.ArgumentNullException(nameof(wargamingAuthenticationQuery));
_wargamingOpenId = wargamingOpenId ?? throw new global::System.ArgumentNullException(nameof(wargamingOpenId));
_player = player ?? throw new global::System.ArgumentNullException(nameof(player));
_wargamingOpenIdAuthentication = wargamingOpenIdAuthentication ?? throw new global::System.ArgumentNullException(nameof(wargamingOpenIdAuthentication)); _wargamingOpenIdAuthentication = wargamingOpenIdAuthentication ?? throw new global::System.ArgumentNullException(nameof(wargamingOpenIdAuthentication));
_wargamingPlayers = wargamingPlayers ?? throw new global::System.ArgumentNullException(nameof(wargamingPlayers)); _wargamingOpenId = wargamingOpenId ?? throw new global::System.ArgumentNullException(nameof(wargamingOpenId));
_findClans = findClans ?? throw new global::System.ArgumentNullException(nameof(findClans));
_player = player ?? throw new global::System.ArgumentNullException(nameof(player));
_updatePlayer = updatePlayer ?? throw new global::System.ArgumentNullException(nameof(updatePlayer)); _updatePlayer = updatePlayer ?? throw new global::System.ArgumentNullException(nameof(updatePlayer));
_wargamingPlayers = wargamingPlayers ?? throw new global::System.ArgumentNullException(nameof(wargamingPlayers));
_wargamingAuthenticationQuery = wargamingAuthenticationQuery ?? throw new global::System.ArgumentNullException(nameof(wargamingAuthenticationQuery));
} }
public static global::System.String ClientName => "WotBlitzStatisticsProClient"; public static global::System.String ClientName => "WotBlitzStatisticsProClient";
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.IWargamingAuthenticationQueryQuery WargamingAuthenticationQuery => _wargamingAuthenticationQuery;
public global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingOpenIdMutation WargamingOpenId => _wargamingOpenId;
public global::WotBlitzStatisticsPro.Blazor.GraphQl.IPlayerQuery Player => _player;
public global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingOpenIdAuthenticationMutation WargamingOpenIdAuthentication => _wargamingOpenIdAuthentication; public global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingOpenIdAuthenticationMutation WargamingOpenIdAuthentication => _wargamingOpenIdAuthentication;
public global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingPlayersMutation WargamingPlayers => _wargamingPlayers; public global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingOpenIdMutation WargamingOpenId => _wargamingOpenId;
public global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindClansQuery FindClans => _findClans;
public global::WotBlitzStatisticsPro.Blazor.GraphQl.IPlayerQuery Player => _player;
public global::WotBlitzStatisticsPro.Blazor.GraphQl.IUpdatePlayerMutation UpdatePlayer => _updatePlayer; public global::WotBlitzStatisticsPro.Blazor.GraphQl.IUpdatePlayerMutation UpdatePlayer => _updatePlayer;
public global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingPlayersMutation WargamingPlayers => _wargamingPlayers;
public global::WotBlitzStatisticsPro.Blazor.GraphQl.IWargamingAuthenticationQueryQuery WargamingAuthenticationQuery => _wargamingAuthenticationQuery;
} }
} }
@@ -47,6 +47,23 @@ namespace WotBlitzStatisticsPro.Blazor.Helpers
Constants.CountryEuropean => "flags/eu.png", Constants.CountryEuropean => "flags/eu.png",
_ => "flags/vehicle.nation.unknown.scale-200.png" _ => "flags/vehicle.nation.unknown.scale-200.png"
}; };
}
public static string NationAssetFaded(this string nationTypeId)
{
return nationTypeId switch
{
Constants.CountryUsa => "flags/usa-faded.png",
Constants.CountryFrance => "flags/france-faded.png",
Constants.CountryUssr => "flags/ussr-faded.png",
Constants.CountryChina => "flags/china-faded.png",
Constants.CountryUk => "flags/uk-faded.png",
Constants.CountryJapan => "flags/japan-faded.png",
Constants.CountryGermany => "flags/germany-faded.png",
Constants.CountryOther => "flags/other-faded.png",
Constants.CountryEuropean => "flags/eu-faded.png",
_ => "flags/vehicle.nation.unknown.scale-200.png"
};
} }
} }
} }
@@ -0,0 +1,15 @@
using MediatR;
using WotBlitzStatisticsPro.Blazor.GraphQl;
namespace WotBlitzStatisticsPro.Blazor.Messages
{
public class OpenMedalDescriptionMessage: INotification
{
public IMedal MedalInfo { get; }
public OpenMedalDescriptionMessage(IMedal medalInfo)
{
MedalInfo = medalInfo;
}
}
}
@@ -0,0 +1,15 @@
using MediatR;
using WotBlitzStatisticsPro.Blazor.GraphQl;
namespace WotBlitzStatisticsPro.Blazor.Messages
{
public class OpenTankDialogMessage: INotification
{
public ITank Tank { get; }
public OpenTankDialogMessage(ITank tank)
{
Tank = tank;
}
}
}
@@ -0,0 +1,41 @@
@using WotBlitzStatisticsPro.Blazor.Model
<RadzenCard class="m-3">
<div class="d-flex flex-column align-items-center">
<RadzenImage Path="@MedalInfo.Image" Class="mr-3" Style="width: 100px; height: 100px;" />
<div>
<div>
<b>@MedalInfo.Description</b>
@if(MedalInfo.MaxSeriesValue != null)
{
@($" ({MedalInfo.MaxSeriesValue})")
}
</div>
<div class="mt-3" style="margin-top: 20px;">
@if(conditions != null)
{
@foreach (var conditionRow in conditions)
{
<p>@conditionRow</p>
}
}
</div>
</div>
</div>
</RadzenCard>
@code {
[Parameter]
public IMedal MedalInfo { get; set; }
string[] conditions;
protected override void OnInitialized()
{
if(MedalInfo.Condition != null)
{
conditions = MedalInfo.Condition.Split(Environment.NewLine);
}
}
}
@@ -0,0 +1,95 @@
@using WotBlitzStatisticsPro.Blazor.Helpers
@inject IStringLocalizer<App> Localize;
<RadzenCard class="m-3" style="width: 340px;">
<h3 class="h5">@Localize["Ower all statistics"]</h3>
<table class="table" width="100%">
<tbody>
<tr>
<td>@Localize["Last battle"]:</td>
<td align="right"><b>@Statistics.LastBattleTime.ConvertToLocalTime().ToString("g")</b></td>
</tr>
<tr>
<td>@Localize["Battles"]:</td>
<td align="right"><b>@Statistics.Battles.ToString("N0")</b></td>
</tr>
<tr>
<td>@Localize["Wins"]:</td>
<td align="right"><b>@Statistics.Wins.ToString("N0")</b> (@Statistics.WinRate.ToString("N2")%)</td>
</tr>
<tr>
<td>@Localize["Losses"]:</td>
<td align="right"><b>@Statistics.Losses.ToString("N0")</b> (@Persentage(Statistics.Losses, Statistics.Battles)%)</td>
</tr>
<tr>
<td>@Localize["Survived"]:</td>
<td align="right"><b>@Statistics.SurvivedBattles.ToString("N0")</b> (@Persentage(Statistics.SurvivedBattles, Statistics.Battles)%)</td>
</tr>
<tr>
<td>@Localize["Win and survived"]:</td>
<td align="right"><b>@Statistics.WinAndSurvived.ToString("N0")</b> (@Persentage(Statistics.WinAndSurvived, Statistics.Battles)%)</td>
</tr>
<tr>
<td>@Localize["Average XP"]:</td>
<td align="right"><b>@Statistics.AvgXp.ToString("N0")</b></td>
</tr>
<tr>
<td>@Localize["Average Damage"]:</td>
<td align="right"><b>@Statistics.AvgDamage.ToString("N0")</b></td>
</tr>
<tr>
<td>@Localize["Average Damage received"]:</td>
<td align="right"><b>@Average(@Statistics.DamageReceived, @Statistics.Battles)</b></td>
</tr>
<tr>
<td>@Localize["Damage coefficient"]:</td>
<td align="right"><b>@Statistics.DamageCoefficient.ToString("N2")</b></td>
</tr>
<tr>
<td>@Localize["Frags"]:</td>
<td align="right"><b>@Statistics.Frags.ToString("N0")</b> (@Average(Statistics.Frags, Statistics.Battles))</td>
</tr>
<tr>
<td>@Localize["Frags over 8 tier"]:</td>
<td align="right"><b>@Statistics.Frags8P.ToString("N0")</b> (@Average(Statistics.Frags8P, Statistics.Battles))</td>
</tr>
<tr>
<td>@Localize["Shots"]:</td>
<td align="right"><b>@Statistics.Shots.ToString("N0")</b> (@Average(Statistics.Shots, Statistics.Battles))</td>
</tr>
<tr>
<td>@Localize["Hits"]:</td>
<td align="right"><b>@Statistics.Hits.ToString("N0")</b> (@Average(Statistics.Hits, Statistics.Battles))</td>
</tr>
<tr>
<td>@Localize["Accuracy"]:</td>
<td align="right"><b>@Persentage(Statistics.Hits, Statistics.Shots)%</b></td>
</tr>
<tr>
<td>@Localize["Spotted tanks"]:</td>
<td align="right"><b>@Statistics.Spotted.ToString("N0")</b> (@Average(Statistics.Spotted, Statistics.Battles))</td>
</tr>
<tr>
<td>@Localize["Base captured"]:</td>
<td align="right"><b>@Statistics.CapturePoints.ToString("N0")</b> (@Average(Statistics.CapturePoints, Statistics.Battles))</td>
</tr>
<tr>
<td>@Localize["Dropped base capture"]:</td>
<td align="right"><b>@Statistics.DroppedCapturePoints.ToString("N0")</b> (@Average(Statistics.DroppedCapturePoints, Statistics.Battles))</td>
</tr>
</tbody>
</table>
</RadzenCard>
@code {
[Parameter]
public IStatistics Statistics { get; set; }
private string Persentage(long firstNumber, long secondNuber)
{
return (((decimal)(100*firstNumber))/((decimal)secondNuber)).ToString("N2");
}
private string Average(long firstNumber, long secondNuber)
{
return (((decimal)(firstNumber))/((decimal)secondNuber)).ToString("N2");
}
}
@@ -1,5 +1,30 @@
<h3>PlayerInfoAchievements</h3> @using MediatR
@using WotBlitzStatisticsPro.Blazor.Messages
@using WotBlitzStatisticsPro.Blazor.Helpers
@inject IMediator Mediator
<RadzenAccordion>
<Items>
@foreach (var section in AchievementsBySection.OrderBy(s => s.Order))
{
<RadzenAccordionItem Text="@section.Name">
<div class="medals-section">
@foreach (var medal in section.Medals.OrderBy(m => m.Order))
{
<div class="medal-box" @onclick="@(async (e) => { await Mediator.Publish(new OpenMedalDescriptionMessage(medal)); })">
<img class="achievement-image" src="@medal.Image" />
<div class="achievement-badge translate-middle badge rounded-pill bg-secondary text-dark">
@((section.SectionId =="step" || (medal.MaxSeriesValue != null && section.SectionId != "title")) ? medal.AchievementValue.RomanNumber() : medal.AchievementValue)
</div>
</div>
}
</div>
</RadzenAccordionItem>
}
</Items>
</RadzenAccordion>
@code { @code {
[Parameter]
public IReadOnlyList<ISection> AchievementsBySection { get; set; }
} }
@@ -0,0 +1,25 @@
.medals-section {
display: flex;
flex-direction: row;
flex-wrap: wrap;
}
.medal-box {
width: 56px;
height: 56px;
display: flex;
flex-direction: column;
align-items: center;
position: relative;
}
.achievement-image {
width: 50px;
height: 50px;
}
.achievement-badge {
position: absolute;
left: 30px;
top: 30px;
}
@@ -13,11 +13,19 @@
} }
</h1> </h1>
<div style="margin-top: 10px; margin-bottom: 20px;"> <div style="margin-top: 10px; margin-bottom: 20px;">
<div> <div class="data-field">
<small>@Localize["Created"]: <b>@AccountInfo.CreatedAt.ToString("d") | @AccountInfo.CreatedAt.SinceTime(Localize)</b></small> <div class="data-label">@Localize["Created"]:</div>
<div class="data-value">
<div> <b>@AccountInfo.CreatedAt.ToString("d")</b></div>
<div class="data-label">@AccountInfo.CreatedAt.SinceTime(Localize)</div>
</div>
</div> </div>
<div> <div class="data-field">
@Localize["Last battle"]: <b>@AccountInfo.LastBattleTime.ConvertToLocalTime().ToString("g") | @AccountInfo.LastBattleTime.ConvertToLocalTime().SinceTime(Localize)</b> <div class="data-label">@Localize["Last battle"]:</div>
<div class="data-value">
<div> <b>@AccountInfo.LastBattleTime.ConvertToLocalTime().ToString("g")</b></div>
<div class="data-label">@AccountInfo.LastBattleTime.ConvertToLocalTime().SinceTime(Localize)</div>
</div>
</div> </div>
</div> </div>
<RadzenTabs > <RadzenTabs >
@@ -29,11 +37,17 @@
<PlayerInfoStatistics TanksList="@AccountInfo.Tanks"></PlayerInfoStatistics> <PlayerInfoStatistics TanksList="@AccountInfo.Tanks"></PlayerInfoStatistics>
</RadzenTabsItem> </RadzenTabsItem>
<RadzenTabsItem Icon="agriculture"> <RadzenTabsItem Icon="agriculture">
@*TODO: In case of @SmallScreen == true, then show new tanks list component - mobile version *@ @if (SmallScreen)
<PlayerInfoTanksList TanksList="@AccountInfo.Tanks"></PlayerInfoTanksList> {
<PlayerInfoTanksListSmall TanksList="@AccountInfo.Tanks"></PlayerInfoTanksListSmall>
}
else
{
<PlayerInfoTanksList TanksList="@AccountInfo.Tanks"></PlayerInfoTanksList>
}
</RadzenTabsItem> </RadzenTabsItem>
<RadzenTabsItem Icon="military_tech"> <RadzenTabsItem Icon="military_tech">
<PlayerInfoAchievements></PlayerInfoAchievements> <PlayerInfoAchievements AchievementsBySection = "@AchievementsBySection"></PlayerInfoAchievements>
</RadzenTabsItem> </RadzenTabsItem>
</Tabs> </Tabs>
</RadzenTabs> </RadzenTabs>
@@ -1,4 +1,21 @@
dates-section { dates-section {
margin-top: 10px; margin-top: 10px;
margin-bottom: 10px; margin-bottom: 10px;
}
.data-field {
display: flex;
flex-direction: column;
justify-content: space-between;
}
.data-label {
color: #b3b1ad;
font-size: small;
}
.data-value {
display: flex;
flex-direction: row;
justify-content: space-between;
} }
@@ -1,70 +1,105 @@
@using WotBlitzStatisticsPro.Blazor.Helpers @using WotBlitzStatisticsPro.Blazor.Helpers
@using MediatR
@using WotBlitzStatisticsPro.Blazor.Messages
@inject IStringLocalizer<App> Localize; @inject IStringLocalizer<App> Localize;
@inject IMediator Mediator
<RadzenCard>
<div class="row"> <div class="row">
<div class="col-md-3 col-lg-3"> <RadzenCard class="m-3" style="width: 350px;">
<table class="table" width="230px"> <table class="table" width="100%">
<tbody> <tbody>
<tr> <tr>
<td>@Localize["Battles"]:</td> <td>@Localize["Battles"]:</td>
<td><b>@AccountInfo.Battles.ToString("N0")</b></td> <td align="right"><b>@AccountInfo.Battles.ToString("N0")</b></td>
</tr> </tr>
<tr> <tr>
<td>@Localize["Win rate"]:</td> <td>@Localize["Win rate"]:</td>
<td> <td align="right">
<b>@AccountInfo.WinRate.ToString("N2")%</b> <b>@AccountInfo.WinRate.ToString("N2")%</b>
<div style="background-color: @AccountInfo.WinRate.ScaleColor(); width: 100%; height: 5px; margin-left: 2px; margin-right: 2px;"></div> <div style="background-color: @AccountInfo.WinRate.ScaleColor(); width: 100%; height: 5px; margin-left: 2px; margin-right: 2px;"></div>
</td> </td>
</tr> </tr>
<tr> <tr>
<td>@Localize["Wn7"]:</td> <td>@Localize["Wn7"]:</td>
<td> <td align="right">
<b>@AccountInfo.Wn7.ToString("N2")</b> <b>@AccountInfo.Wn7.ToString("N2")</b>
<div style="background-color: @AccountInfo.Wn7.Wn7ScaleColor(); width: 100%; height: 5px; margin-left: 2px; margin-right: 2px;"></div> <div style="background-color: @AccountInfo.Wn7.Wn7ScaleColor(); width: 100%; height: 5px; margin-left: 2px; margin-right: 2px;"></div>
</td> </td>
</tr> </tr>
<tr> <tr>
<td>@Localize["Average Damage"]:</td> <td>@Localize["Average XP"]:</td>
<td><b>@AccountInfo.AvgDamage.ToString("N0")</b></td> <td align="right"><b>@AccountInfo.AvgXp.ToString("N0")</b></td>
</tr> </tr>
<tr> <tr>
<td>@Localize["Average XP"]:</td> <td>@Localize["Average Damage"]:</td>
<td><b>@AccountInfo.AvgXp.ToString("N0")</b></td> <td align="right"><b>@AccountInfo.AvgDamage.ToString("N0")</b></td>
</tr>
<tr>
<td>@Localize["Damage coefficient"]:</td>
<td align="right"><b>@AccountInfo.DamageCoefficient.ToString("N2")</b></td>
</tr>
<tr>
<td>@Localize["Survival rate"]:</td>
<td align="right"><b>@AccountInfo.SurvivalRate.ToString("N0")%</b></td>
</tr>
<tr>
<td>@Localize["Avg tier"]:</td>
<td align="right"><b>@AccountInfo.AvgTier.ToString("N2")</b></td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
</div> </RadzenCard>
<div class="col-md-3 col-lg-3 align-items-center d-flex"> <RadzenCard class="m-3" style="width: 350px;">
<div style="width: 120px; margin: 3px;"> <h3 class="h5">@Localize["Most effective tank"]</h3>
@Localize["Most effective tank"]: <div class="row">
</div> <div class="col col-sm col-md col-lg col-xl">
@if (MostRelevantTank != null) </div>
{ <div class="col col-sm col-md col-lg col-xl" @onclick="@(async (e) => { await Mediator.Publish(new OpenTankDialogMessage(MostRelevantTank)); })">
<TankCard Tank=@MostRelevantTank></TankCard> @if (MostRelevantTank != null)
} {
</div> <TankCard Tank=@MostRelevantTank></TankCard>
<div class="col-md-3 col-lg-3 align-items-center d-flex"> }
<div style="width: 100px; margin: 3px;"> </div>
@Localize["Tank with Max XP"] (@AccountInfo.MaxXp.ToString("N0")): <div class="col col-sm col-md col-lg col-xl">
</div> </div>
@if (MaxXpTank != null)
{
<TankCard Tank=@MaxXpTank></TankCard>
}
</div>
<div class="col-md-3 col-lg-3 align-items-center d-flex">
<div style="width: 100px; margin: 3px;">
@Localize["Tank with Max frags"] (@AccountInfo.MaxFrags):
</div>
@if (MaxFragsTank != null) </div>
{ </RadzenCard>
<TankCard Tank=@MaxFragsTank></TankCard> <RadzenCard class="m-3" style="width: 350px;">
} <h3 class="h5">@Localize["Tank with Max XP"] (@AccountInfo.MaxXp.ToString("N0"))</h3>
</div> <div class="row">
<div class="col col-sm col-md col-lg col-xl">
</div>
<div class="col col-sm col-md col-lg col-xl" @onclick="@(async (e) => { await Mediator.Publish(new OpenTankDialogMessage(MaxXpTank)); })">
@if (MaxXpTank != null)
{
<TankCard Tank=@MaxXpTank></TankCard>
}
</div>
<div class="col col-sm col-md col-lg col-xl">
</div>
</div>
</RadzenCard>
<RadzenCard class="m-3" style="width: 350px;">
<h3 class="h5">@Localize["Tank with Max frags"] (@AccountInfo.MaxFrags)</h3>
<div class="row">
<div class="col col-sm col-md col-lg col-xl">
</div>
<div class="col col-sm col-md col-lg col-xl" @onclick="@(async (e) => { await Mediator.Publish(new OpenTankDialogMessage(MaxFragsTank)); })">
@if (MaxFragsTank != null)
{
<TankCard Tank=@MaxFragsTank></TankCard>
}
</div>
<div class="col col-sm col-md col-lg col-xl">
</div>
</div>
</RadzenCard>
<OverallStatisticsCard Statistics="@AccountInfo"></OverallStatisticsCard>
</div> </div>
</RadzenCard>
@code { @code {
[Parameter] [Parameter]
@@ -80,5 +115,4 @@
MaxXpTank = AccountInfo?.Tanks?.FirstOrDefault(t => t.TankId == AccountInfo.MaxXpTankId); MaxXpTank = AccountInfo?.Tanks?.FirstOrDefault(t => t.TankId == AccountInfo.MaxXpTankId);
MaxFragsTank = AccountInfo?.Tanks?.FirstOrDefault(t => t.TankId == AccountInfo.MaxFragsTankId); MaxFragsTank = AccountInfo?.Tanks?.FirstOrDefault(t => t.TankId == AccountInfo.MaxFragsTankId);
} }
} }
@@ -1,4 +1,5 @@
@using WotBlitzStatisticsPro.Blazor.Helpers @using WotBlitzStatisticsPro.Blazor.Helpers
@using WotBlitzStatisticsPro.Blazor.Messages
@inherits PlayerInfoTanksListBase; @inherits PlayerInfoTanksListBase;
<div class="row"> <div class="row">
@@ -52,7 +53,7 @@
<RadzenDataGrid AllowFiltering="true" <RadzenDataGrid AllowFiltering="true"
AllowColumnResize="true" AllowColumnResize="true"
FilterMode="FilterMode.Simple" FilterMode="FilterMode.Simple"
PageSize="10" PageSize="20"
AllowPaging="true" AllowPaging="true"
AllowSorting="true" AllowSorting="true"
Data="@FilteredTankList" Data="@FilteredTankList"
@@ -84,7 +85,8 @@
<RadzenDataGridColumn TItem="ITank" Title="" Sortable="false" Filterable="false" Width="55px"> <RadzenDataGridColumn TItem="ITank" Title="" Sortable="false" Filterable="false" Width="55px">
<Template Context="data"> <Template Context="data">
<RadzenImage Path="@data.PreviewImage" style="width: 50px; height: 40px; border-radius: 8px;" <RadzenImage Path="@data.PreviewImage" style="width: 50px; height: 40px; border-radius: 8px;"
MouseEnter="@(args => ShowTankTooltip(args, data.PreviewImage, data.TankNationId, new TooltipOptions(){ Style = "background-color:#2F3D43" }) )" /> MouseEnter="@(args => ShowTankTooltip(args, data.PreviewImage, data.TankNationId, new TooltipOptions(){ Style = "background-color:#2F3D43" }) )"
Click="@(async (args) => { await Mediator.Publish(new OpenTankDialogMessage(data)); })" />
</Template> </Template>
</RadzenDataGridColumn> </RadzenDataGridColumn>
<RadzenDataGridColumn TItem="ITank" Property="Name" Filterable="false" Sortable="true" Title="@Localize["Tank"]" Frozen="false" Width="100px" TextAlign="TextAlign.Left"> <RadzenDataGridColumn TItem="ITank" Property="Name" Filterable="false" Sortable="true" Title="@Localize["Tank"]" Frozen="false" Width="100px" TextAlign="TextAlign.Left">
@@ -8,7 +8,8 @@ using Radzen.Blazor;
using WotBlitzStatisticsPro.Blazor.GraphQl; using WotBlitzStatisticsPro.Blazor.GraphQl;
using WotBlitzStatisticsPro.Blazor.Helpers; using WotBlitzStatisticsPro.Blazor.Helpers;
using WotBlitzStatisticsPro.Blazor.Model; using WotBlitzStatisticsPro.Blazor.Model;
using MediatR;
using WotBlitzStatisticsPro.Blazor.Messages;
namespace WotBlitzStatisticsPro.Blazor.Pages namespace WotBlitzStatisticsPro.Blazor.Pages
{ {
public class PlayerInfoTanksListBase: ComponentBase public class PlayerInfoTanksListBase: ComponentBase
@@ -22,6 +23,9 @@ namespace WotBlitzStatisticsPro.Blazor.Pages
[Inject] [Inject]
public IStringLocalizer<App> Localize { get; set; } public IStringLocalizer<App> Localize { get; set; }
[Inject]
public IMediator Mediator { get; set; }
public RadzenDataGrid<ITank> TanksGrid { get; set; } public RadzenDataGrid<ITank> TanksGrid { get; set; }
public IEnumerable<ITank> FilteredTankList { get; set; } public IEnumerable<ITank> FilteredTankList { get; set; }
@@ -50,7 +54,7 @@ namespace WotBlitzStatisticsPro.Blazor.Pages
protected override void OnInitialized() protected override void OnInitialized()
{ {
FilteredTankList = TanksList; FilteredTankList = TanksList.OrderByDescending(t => t.LastBattleTime);
CountTotalParams(); CountTotalParams();
for (int i = 1; i < 11; i++) for (int i = 1; i < 11; i++)
{ {
@@ -0,0 +1,280 @@
@using WotBlitzStatisticsPro.Blazor.Messages
@inherits PlayerInfoTanksListBase;
@if (TanksList != null && FilteredTankList.Count() > 0)
{
<div class="sorting">
<div @onclick="@(e => OnFilterClick(e, TanksSorting.LastBattle))">
<img class="sort-button" src="/icons/calendar.scale-200.png" />
@if(sorting == TanksSorting.LastBattle && isSortAscending)
{<img class="sort-arrow" src="/icons/Ascending.png" />}
@if(sorting == TanksSorting.LastBattle && !isSortAscending)
{<img class="sort-arrow" src="/icons/Descending.png" />}
</div>
<div @onclick="@(e => OnFilterClick(e, TanksSorting.Winrate))">
<img class="sort-button" src="/icons/sortby.wins.scale-200.png" />
@if(sorting == TanksSorting.Winrate && isSortAscending)
{<img class="sort-arrow" src="/icons/Ascending.png" />}
@if(sorting == TanksSorting.Winrate && !isSortAscending)
{<img class="sort-arrow" src="/icons/Descending.png" />}
</div>
<div @onclick="@(e => OnFilterClick(e, TanksSorting.Battles))">
<img class="sort-button" src="/icons/sortby.battle.scale-200.png" />
@if(sorting == TanksSorting.Battles && isSortAscending)
{<img class="sort-arrow" src="/icons/Ascending.png" />}
@if(sorting == TanksSorting.Battles && !isSortAscending)
{<img class="sort-arrow" src="/icons/Descending.png" />}
</div>
<div @onclick="@(e => OnFilterClick(e, TanksSorting.Damage))">
<img class="sort-button" src="/icons/sortby.damage.scale-200.png" />
@if(sorting == TanksSorting.Damage && isSortAscending)
{<img class="sort-arrow" src="/icons/Ascending.png" />}
@if(sorting == TanksSorting.Damage && !isSortAscending)
{<img class="sort-arrow" src="/icons/Descending.png" />}
</div>
<div @onclick="@(e => OnFilterClick(e, TanksSorting.Tier))">
<img class="sort-button" src="/icons/sortby.vehicle.level.scale-200.png" />
@if(sorting == TanksSorting.Tier && isSortAscending)
{<img class="sort-arrow" src="/icons/Ascending.png" />}
@if(sorting == TanksSorting.Tier && !isSortAscending)
{<img class="sort-arrow" src="/icons/Descending.png" />}
</div>
<div @onclick="@(e => OnFilterClick(e, TanksSorting.Wn7))">
Wn7
@if(sorting == TanksSorting.Wn7 && isSortAscending)
{<img class="sort-arrow" src="/icons/Ascending.png" />}
@if(sorting == TanksSorting.Wn7 && !isSortAscending)
{<img class="sort-arrow" src="/icons/Descending.png" />}
</div>
</div>
<div class="tanks-list">
@foreach (var tank in FilteredTankList)
{
<div @onclick="@(async (e) => { await Mediator.Publish(new OpenTankDialogMessage(tank)); })">
<TankListItem Tank=@tank></TankListItem>
</div>
}
</div>
<div class="filter-area">
<div>
@Localize["Tanks"]: @FilteredTankList.Count()
</div>
<div class="filter-row-area">
@foreach(var nationForFilter in NationsFilter) {
<img src="@nationForFilter.ItemName" class="@NationFilterStyle(nationForFilter.ItemId)" @onclick="@(e => ApplyNationFilter(e, nationForFilter.ItemId))" />
}
</div>
<div class="filter-row-area">
@foreach(var tier in TierFilter) {
<div class="@TierFilterStyle(tier.ItemId)" @onclick="@(e => ApplyTierFilter(e, tier.ItemId))">
@tier.ItemName
</div>
}
</div>
<div class="filter-row-area">
@foreach(var typeFor in TankTypesFilter) {
<img src="@typeFor.ItemName" class="@TankTypeFilterStyle(typeFor.ItemId)" @onclick="@(e => ApplyTankTypeFilter(e, typeFor.ItemId))" />
}
<img src="/icons/vehicle.filter.class.premium.scale-200.png" class="@PremiumStyle()" @onclick="@(e => ApplyPremiumFilter(e))" />
</div>
<div class="filter-row-area">
@foreach(var mastery in MasteryFilter) {
<img src="@mastery.ItemName" class="@MasteryFilterStyle(mastery.ItemId)" @onclick="@(e => ApplyMasteryFilter(e, mastery.ItemId))" />
}
</div>
</div>
}
@code {
private enum TanksSorting
{
LastBattle,
Winrate,
Battles,
Damage,
Wn7,
Tier
}
private TanksSorting sorting = TanksSorting.LastBattle;
private bool isSortAscending = false;
private void OnFilterClick(MouseEventArgs e, TanksSorting sortingToApply)
{
if (sortingToApply != sorting)
{
sorting = sortingToApply;
isSortAscending = false;
}
else
{
isSortAscending = !isSortAscending;
}
FilterTanksList();
}
private void FilterTanksList()
{
switch (sorting)
{
case TanksSorting.LastBattle:
FilteredTankList = isSortAscending ? FilteredTankList.OrderBy(t => t.LastBattleTime) : FilteredTankList.OrderByDescending(t => t.LastBattleTime);
break;
case TanksSorting.Winrate:
FilteredTankList = isSortAscending ? FilteredTankList.OrderBy(t => t.WinRate) : FilteredTankList.OrderByDescending(t => t.WinRate);
break;
case TanksSorting.Battles:
FilteredTankList = isSortAscending ? FilteredTankList.OrderBy(t => t.Battles) : FilteredTankList.OrderByDescending(t => t.Battles);
break;
case TanksSorting.Damage:
FilteredTankList = isSortAscending ? FilteredTankList.OrderBy(t => t.AvgDamage) : FilteredTankList.OrderByDescending(t => t.AvgDamage);
break;
case TanksSorting.Wn7:
FilteredTankList = isSortAscending ? FilteredTankList.OrderBy(t => t.Wn7) : FilteredTankList.OrderByDescending(t => t.Wn7);
break;
case TanksSorting.Tier:
FilteredTankList = isSortAscending ? FilteredTankList.OrderBy(t => t.Tier) : FilteredTankList.OrderByDescending(t => t.Tier);
break;
}
}
private void ApplyNationFilter(MouseEventArgs e, string nationToApply)
{
if(FilteredNations.Contains(nationToApply))
{
FilteredNations = FilteredNations.Where(n => n != nationToApply).ToArray();
}
else
{
var nations = FilteredNations.ToList();
nations.Add(nationToApply);
FilteredNations = nations.ToArray();
}
OnFilterChange(null);
}
private string NationFilterStyle(string nation)
{
string basic = "nation-filter-flag";
if(FilteredNations.Contains(nation))
{
return $"{basic} filter-selected";
}
return basic;
}
private void ApplyTierFilter(MouseEventArgs e, int tierToApply)
{
if(FilteredTiers.Contains(tierToApply))
{
FilteredTiers = FilteredTiers.Where(n => n != tierToApply).ToArray();
}
else
{
var tiers = FilteredTiers.ToList();
tiers.Add(tierToApply);
FilteredTiers = tiers.ToArray();
}
OnFilterChange(null);
}
private string TierFilterStyle(int tier)
{
string basic = "tier-filter";
if(FilteredTiers.Contains(tier))
{
return $"{basic} filter-selected";
}
return basic;
}
private void ApplyTankTypeFilter(MouseEventArgs e, string typeToApply)
{
if(FilteredTankTypes.Contains(typeToApply))
{
FilteredTankTypes = FilteredTankTypes.Where(n => n != typeToApply).ToArray();
}
else
{
var types = FilteredTankTypes.ToList();
types.Add(typeToApply);
FilteredTankTypes = types.ToArray();
}
OnFilterChange(null);
}
private string TankTypeFilterStyle(string typeToApply)
{
string basic = "tier-filter";
if(FilteredTankTypes.Contains(typeToApply))
{
return $"{basic} filter-selected";
}
return basic;
}
private void ApplyPremiumFilter(MouseEventArgs e)
{
if(FilterIsPremium.HasValue && FilterIsPremium.Value == true)
{
FilterIsPremium = false;
}
else if(FilterIsPremium.HasValue && FilterIsPremium.Value == false)
{
FilterIsPremium = null;
}
else if(!FilterIsPremium.HasValue)
{
FilterIsPremium = true;
}
OnFilterChange(null);
}
private string PremiumStyle()
{
string basic = "tier-filter";
if(FilterIsPremium.HasValue && FilterIsPremium.Value == true)
{
return $"{basic} filter-selected";
}
if(FilterIsPremium.HasValue && FilterIsPremium.Value == false)
{
return $"{basic} filter-non-premium-selected";
}
return basic;
}
private void ApplyMasteryFilter(MouseEventArgs e, MarkOfMastery mastery)
{
if(FilteredMastery.Contains(mastery))
{
FilteredMastery = FilteredMastery.Where(n => n != mastery).ToArray();
}
else
{
var masteries = FilteredMastery.ToList();
masteries.Add(mastery);
FilteredMastery = masteries.ToArray();
}
OnFilterChange(null);
}
private string MasteryFilterStyle(MarkOfMastery mastery)
{
string basic = "tier-filter";
if(FilteredMastery.Contains(mastery))
{
return $"{basic} filter-selected";
}
return basic;
}
}
@@ -0,0 +1,61 @@
.tanks-list {
height: 332px;
overflow-y: scroll;
}
.sorting {
display: flex;
flex-direction: row;
justify-content: space-around;
}
.sort-button {
min-height: 24px;
min-width: 24px;
width: 24px;
height: 24px;
}
.sort-arrow {
min-height: 24px;
height: 24px;
}
.filter-area {
display: flex;
flex-direction: column;
justify-content: space-between;
margin-top: 10px;
}
.filter-row-area {
display: flex;
flex-direction: row;
justify-content: space-between;
margin-top: 10px;
}
.nation-filter-flag {
width: 35px;
height: 23px;
border-radius: 4px;
}
.tier-filter {
width: 23px;
height: 23px;
border-radius: 4px;
text-align: center;
}
.filter-selected {
border-width: 1px;
border-color: #f5aa3b;
border-style: solid;
}
.filter-non-premium-selected {
border-width: 1px;
border-color: #7c807c;
border-style: solid;
}
@@ -0,0 +1,10 @@
@using WotBlitzStatisticsPro.Blazor.Model
<TankListItem Tank=@Tank></TankListItem>
<OverallStatisticsCard Statistics="@Tank"></OverallStatisticsCard>
@code {
[Parameter]
public ITank Tank { get; set; }
}
@@ -0,0 +1,63 @@
@using WotBlitzStatisticsPro.Blazor.Helpers
@inject IStringLocalizer<App> Localize;
<div class="tank-list-item" >
<div class="tank-image" >
<div class="tank-flag-background" style="background-image: url('@Tank.TankNationId.NationAssetFaded()')"></div>
<div class="tank-tier">
@if (Tank.IsPremium)
{
<b style="color: @Constants.ClanTagColor; font-size: 16px"> @Tank.Tier.RomanNumber()</b>
}
else
{
<b style="font-size: 16px"> @Tank.Tier.RomanNumber()</b>
}
</div>
<img src="@Tank.MarkOfMastery.IconAsset()" class="mastery-image" />
<img [email protected] class="tank-preview" />
<img src="@Tank.TankTypeId.TankTypeAsset(Tank.IsPremium)" class="tank-type" />
</div>
<div class="tank-info">
<div class="tank-info-first-row">
<div>
@if (Tank.IsPremium)
{
<span style="color: @Constants.ClanTagColor; font-size: 14px">
@Tank.Name
</span>
}
else
{
<span style="font-size: 14px">@Tank.Name</span>
}
</div>
<div>
Wn7: @Tank.Wn7.ToString("N0")
<div style="background-color: @Tank.Wn7.Wn7ScaleColor(); width: 100%; height: 3px; margin-right: 2px;"></div>
</div>
</div>
<div class="tank-info-second-row">
<div>
<img src="icons/details.battles.scale-200.png" class="icon-scale" /> @Tank.Battles.ToString("N0")
</div>
<div>
<img src="icons/details.wins.scale-200.png" class="icon-scale" /> <b>@Tank.WinRate.ToString("N0")%</b>
</div>
<div>
<img src="icons/damage.scale-200.png" class="icon-scale" /> @Tank.AvgDamage.ToString("N0")
</div>
<div>
<img src="icons/xp.avg.scale-200.png" class="icon-scale" /> @Tank.AvgXp.ToString("N0")
</div>
</div>
<div style="background-color: @Tank.WinRate.ScaleColor(); width: 100%; height: 5px; margin-right: 2px;"></div>
</div>
</div>
@code {
[Parameter]
public ITank Tank { get; set; }
}
@@ -0,0 +1,88 @@
.tank-list-item {
display: flex;
flex-direction: row;
justify-content: flex-start;
width: 100%;
background-color: #3a474d;
margin-top: 5px;
font-size: 12px;
}
.tank-image {
position: relative;
width: 120px;
min-width: 120px;
height: 70px;
justify-content: flex-end;
display: flex;
flex-direction: row;
}
.tank-flag-background {
/*filter: grayscale(60%);*/
/* filter: blur(1.5px);*/
position: absolute;
width: 120px;
min-width: 120px;
height: 70px;
}
.tank-tier {
position: absolute;
left: 5px;
top: 0px;
width: 24px;
height: 24px;
}
.tank-preview {
position: absolute;
left: 25px;
top: 0px;
width: 95px;
height: 70px;
}
.tank-type {
position: absolute;
left: 0px;
top: 46px;
width: 24px;
height: 24px;
}
.mastery-image {
position: absolute;
left: 96px;
top: 46px;
width: 24px;
height: 24px;
}
.tank-info {
display: flex;
flex-direction: column;
justify-content: space-between;
width: 100%;
margin-left: 2px;
margin-right: 2px;
}
.tank-info-first-row {
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: flex-end;
}
.tank-info-second-row {
display: flex;
flex-direction: row;
align-items: flex-end;
justify-content: space-between;
}
.icon-scale {
width: 20px;
height: 20px;
}
+3 -1
View File
@@ -31,6 +31,8 @@ namespace WotBlitzStatisticsPro.Blazor
builder.Services.AddScoped<ISearchDialogService, SearchDialogService>(); builder.Services.AddScoped<ISearchDialogService, SearchDialogService>();
builder.Services.AddScoped<IChartsService, ChartService>(); builder.Services.AddScoped<IChartsService, ChartService>();
builder.Services.AddScoped<IMediaQueriesService, MediaQueriesService>(); builder.Services.AddScoped<IMediaQueriesService, MediaQueriesService>();
builder.Services.AddScoped<ITankStatisticDialogService, TankStatisticDialogService>();
builder.Services.AddScoped<IMedalDialogService, MedalDialogService>();
builder.Services.AddMediatR(typeof(Program)); builder.Services.AddMediatR(typeof(Program));
@@ -52,7 +54,7 @@ namespace WotBlitzStatisticsPro.Blazor
//var useMock = Environment.GetEnvironmentVariable("USE_GRAPH_QL_MOCK"); //var useMock = Environment.GetEnvironmentVariable("USE_GRAPH_QL_MOCK");
//if (useMock != null && useMock == "true") //if (useMock != null && useMock == "true")
//{ //{
//builder.Services.AddTransient<IGraphQlBackendService, GraphQlBackendMockService>(); // builder.Services.AddTransient<IGraphQlBackendService, GraphQlBackendMockService>();
//} //}
//else //else
//{ //{
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<root> <root>
<!-- <!--
Microsoft ResX Schema Microsoft ResX Schema
Version 2.0 Version 2.0
The primary goals of this format is to allow a simple XML format The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes various data types are done through the TypeConverter classes
associated with the data types. associated with the data types.
Example: Example:
... ado.net/XML headers & schema ... ... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader> <resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader> <resheader name="version">2.0</resheader>
@@ -26,79 +26,79 @@
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment> <comment>This is a comment</comment>
</data> </data>
There are any number of "resheader" rows that contain simple There are any number of "resheader" rows that contain simple
name/value pairs. name/value pairs.
Each data row contains a name, and value. The row also contains a Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture. text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the Classes that don't support this are serialized and stored with the
mimetype set. mimetype set.
The mimetype is used for serialized objects, and tells the The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly: extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below. read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64 mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding. : and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64 mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding. : and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64 mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter : using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding. : and then encoded with base64 encoding.
--> -->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> <xsd:import namespace="http://www.w3.org/XML/1998/namespace"/>
<xsd:element name="root" msdata:IsDataSet="true"> <xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType> <xsd:complexType>
<xsd:choice maxOccurs="unbounded"> <xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata"> <xsd:element name="metadata">
<xsd:complexType> <xsd:complexType>
<xsd:sequence> <xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" /> <xsd:element name="value" type="xsd:string" minOccurs="0"/>
</xsd:sequence> </xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" /> <xsd:attribute name="name" use="required" type="xsd:string"/>
<xsd:attribute name="type" type="xsd:string" /> <xsd:attribute name="type" type="xsd:string"/>
<xsd:attribute name="mimetype" type="xsd:string" /> <xsd:attribute name="mimetype" type="xsd:string"/>
<xsd:attribute ref="xml:space" /> <xsd:attribute ref="xml:space"/>
</xsd:complexType> </xsd:complexType>
</xsd:element> </xsd:element>
<xsd:element name="assembly"> <xsd:element name="assembly">
<xsd:complexType> <xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" /> <xsd:attribute name="alias" type="xsd:string"/>
<xsd:attribute name="name" type="xsd:string" /> <xsd:attribute name="name" type="xsd:string"/>
</xsd:complexType> </xsd:complexType>
</xsd:element> </xsd:element>
<xsd:element name="data"> <xsd:element name="data">
<xsd:complexType> <xsd:complexType>
<xsd:sequence> <xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1"/>
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2"/>
</xsd:sequence> </xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1"/>
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3"/>
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4"/>
<xsd:attribute ref="xml:space" /> <xsd:attribute ref="xml:space"/>
</xsd:complexType> </xsd:complexType>
</xsd:element> </xsd:element>
<xsd:element name="resheader"> <xsd:element name="resheader">
<xsd:complexType> <xsd:complexType>
<xsd:sequence> <xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1"/>
</xsd:sequence> </xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" /> <xsd:attribute name="name" type="xsd:string" use="required"/>
</xsd:complexType> </xsd:complexType>
</xsd:element> </xsd:element>
</xsd:choice> </xsd:choice>
@@ -119,137 +119,186 @@
</resheader> </resheader>
<data name="Average Damage" xml:space="preserve"> <data name="Average Damage" xml:space="preserve">
<value>Mittlerer Schaden</value> <value>Mittlerer Schaden</value>
<comment/>
</data> </data>
<data name="Average XP" xml:space="preserve"> <data name="Average XP" xml:space="preserve">
<value>Mittlere EP</value> <value>Mittlere EP</value>
<comment/>
</data> </data>
<data name="Avg damage by nation" xml:space="preserve"> <data name="Avg damage by nation" xml:space="preserve">
<value>Mittlerer Schaden dem Nation</value> <value>Mittlerer Schaden dem Nation</value>
<comment/>
</data> </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>
<comment/>
</data> </data>
<data name="Avg damage by tier" xml:space="preserve"> <data name="Avg damage by tier" xml:space="preserve">
<value>Mittlerer Schaden dem Rang</value> <value>Mittlerer Schaden dem Rang</value>
<comment/>
</data> </data>
<data name="Battles" xml:space="preserve"> <data name="Battles" xml:space="preserve">
<value>Gefechte</value> <value>Gefechte</value>
<comment/>
</data> </data>
<data name="Battles by nation" xml:space="preserve"> <data name="Battles by nation" xml:space="preserve">
<value>Gefechte dem Nation</value> <value>Gefechte dem Nation</value>
<comment/>
</data> </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>
<comment/>
</data> </data>
<data name="Battles by tier" xml:space="preserve"> <data name="Battles by tier" xml:space="preserve">
<value>Gefechte dem Rang</value> <value>Gefechte dem Rang</value>
<comment/>
</data> </data>
<data name="Cancel" xml:space="preserve"> <data name="Cancel" xml:space="preserve">
<value>Abbrechen</value> <value>Abbrechen</value>
<comment/>
</data> </data>
<data name="Continue" xml:space="preserve"> <data name="Continue" xml:space="preserve">
<value>Weiter</value> <value>Weiter</value>
<comment/>
</data> </data>
<data name="Created" xml:space="preserve"> <data name="Created" xml:space="preserve">
<value>Erstellt</value> <value>Erstellt</value>
<comment/>
</data> </data>
<data name="days ago" xml:space="preserve"> <data name="days ago" xml:space="preserve">
<value>vor Tagen</value> <value>vor Tagen</value>
<comment/>
</data> </data>
<data name="Filter mark of mastery..." xml:space="preserve"> <data name="Filter mark of mastery..." xml:space="preserve">
<value>Meisterschaftfilter...</value> <value>Meisterschaftfilter...</value>
<comment/>
</data> </data>
<data name="Filter nations..." xml:space="preserve"> <data name="Filter nations..." xml:space="preserve">
<value>Nationfilter...</value> <value>Nationfilter...</value>
<comment/>
</data> </data>
<data name="Filter tank types..." xml:space="preserve"> <data name="Filter tank types..." xml:space="preserve">
<value>Panzertypenfilter...</value> <value>Panzertypenfilter...</value>
<comment/>
</data> </data>
<data name="Filter tier..." xml:space="preserve"> <data name="Filter tier..." xml:space="preserve">
<value>Rangfilter...</value> <value>Rangfilter...</value>
<comment/>
</data> </data>
<data name="Home" xml:space="preserve"> <data name="Home" xml:space="preserve">
<value>Startseite</value> <value>Startseite</value>
<comment/>
</data> </data>
<data name="hours ago" xml:space="preserve"> <data name="hours ago" xml:space="preserve">
<value>vor Stunden</value> <value>vor Stunden</value>
<comment/>
</data> </data>
<data name="Last battle" xml:space="preserve"> <data name="Last battle" xml:space="preserve">
<value>Letzte Gefecht</value> <value>Letzte Gefecht</value>
<comment/>
</data> </data>
<data name="Log out" xml:space="preserve"> <data name="Log out" xml:space="preserve">
<value>Abmelden</value> <value>Abmelden</value>
<comment/>
</data> </data>
<data name="Login with WG.net ID" xml:space="preserve"> <data name="Login with WG.net ID" xml:space="preserve">
<value>Anmelden mit WG.net-ID</value> <value>Anmelden mit WG.net-ID</value>
<comment/>
</data> </data>
<data name="LoginConsent" xml:space="preserve"> <data name="LoginConsent" xml:space="preserve">
<value>Sie werden nun auf die WG-Anmeldeseite weitergeleitet. Autorisierte Benutzer haben die Möglichkeit, ihren Statistikverlauf zu speichern, der nur Ihnen zur Verfügung steht. Diese Anwendung speichert keine persönlichen Informationen über die Spieler, ihre Benutzernamen, Passwörter, E-Mails und spielinternen Ressourcen. Außerdem können Sie sich nach dem Einloggen mit dem Speichern oder Löschen des Verlaufs Ihrer Kontostatistiken auf dem Server abmelden. Indem Sie auf Weiter klicken, erklären Sie sich mit diesen Informationen einverstanden</value> <value>Sie werden nun auf die WG-Anmeldeseite weitergeleitet. Autorisierte Benutzer haben die Möglichkeit, ihren Statistikverlauf zu speichern, der nur Ihnen zur Verfügung steht. Diese Anwendung speichert keine persönlichen Informationen über die Spieler, ihre Benutzernamen, Passwörter, E-Mails und spielinternen Ressourcen. Außerdem können Sie sich nach dem Einloggen mit dem Speichern oder Löschen des Verlaufs Ihrer Kontostatistiken auf dem Server abmelden. Indem Sie auf Weiter klicken, erklären Sie sich mit diesen Informationen einverstanden</value>
<comment/>
</data> </data>
<data name="Members" xml:space="preserve"> <data name="Members" xml:space="preserve">
<value>Mitglieder</value> <value>Mitglieder</value>
<comment/>
</data> </data>
<data name="Min battles" xml:space="preserve"> <data name="Min battles" xml:space="preserve">
<value>Min Schlachten</value> <value>Min Schlachten</value>
<comment/>
</data> </data>
<data name="minutes ago" xml:space="preserve"> <data name="minutes ago" xml:space="preserve">
<value>vor Minuten</value> <value>vor Minuten</value>
<comment/>
</data> </data>
<data name="months ago" xml:space="preserve"> <data name="months ago" xml:space="preserve">
<value>vor Monaten</value> <value>vor Monaten</value>
<comment/>
</data> </data>
<data name="Most effective tank" xml:space="preserve"> <data name="Most effective tank" xml:space="preserve">
<value>Effektivster Panzer</value> <value>Effektivster Panzer</value>
<comment/>
</data> </data>
<data name="of" xml:space="preserve"> <data name="of" xml:space="preserve">
<value>von</value> <value>von</value>
<comment/>
</data> </data>
<data name="Premium tanks" xml:space="preserve"> <data name="Premium tanks" xml:space="preserve">
<value>Prämiepanzern</value> <value>Prämiepanzern</value>
<comment/>
</data> </data>
<data name="Region" xml:space="preserve"> <data name="Region" xml:space="preserve">
<value>Region</value> <value>Region</value>
<comment/>
</data> </data>
<data name="Search" xml:space="preserve"> <data name="Search" xml:space="preserve">
<value>Suchen</value> <value>Suchen</value>
<comment/>
</data> </data>
<data name="Search clan" xml:space="preserve"> <data name="Search clan" xml:space="preserve">
<value>Clan suchen</value> <value>Clan suchen</value>
<comment/>
</data> </data>
<data name="Search player" xml:space="preserve"> <data name="Search player" xml:space="preserve">
<value>Spieler suchen</value> <value>Spieler suchen</value>
<comment/>
</data> </data>
<data name="Tank" xml:space="preserve"> <data name="Tank" xml:space="preserve">
<value>Panzer</value> <value>Panzer</value>
<comment/>
</data> </data>
<data name="Tank with Max frags" xml:space="preserve"> <data name="Tank with Max frags" xml:space="preserve">
<value>Panzer max zerstört</value> <value>Panzer max zerstört</value>
<comment/>
</data> </data>
<data name="Tank with Max XP" xml:space="preserve"> <data name="Tank with Max XP" xml:space="preserve">
<value>Panzer mit max EP</value> <value>Panzer mit max EP</value>
<comment/>
</data> </data>
<data name="Tanks" xml:space="preserve"> <data name="Tanks" xml:space="preserve">
<value>Panzern</value> <value>Panzern</value>
<comment/>
</data> </data>
<data name="Welcome to WOT Blitz statistics application!" xml:space="preserve"> <data name="Welcome to WOT Blitz statistics application!" xml:space="preserve">
<value>Willkommen bei der WOT Blitz statistics!</value> <value>Willkommen bei der WOT Blitz statistics!</value>
<comment/>
</data> </data>
<data name="Win rate" xml:space="preserve"> <data name="Win rate" xml:space="preserve">
<value>Sieg</value> <value>Sieg</value>
<comment/>
</data> </data>
<data name="Win rate by nation" xml:space="preserve"> <data name="Win rate by nation" xml:space="preserve">
<value>Sieg dem Nation</value> <value>Sieg dem Nation</value>
<comment/>
</data> </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>
<comment/>
</data> </data>
<data name="Win rate by tier" xml:space="preserve"> <data name="Win rate by tier" xml:space="preserve">
<value>Sieg dem Rang</value> <value>Sieg dem Rang</value>
<comment/>
</data> </data>
<data name="years ago" xml:space="preserve"> <data name="years ago" xml:space="preserve">
<value>vor Jahren</value> <value>vor Jahren</value>
<comment/>
</data> </data>
<data name="You're about to login" xml:space="preserve"> <data name="You're about to login" xml:space="preserve">
<value>Sie sind dabei, sich anzumelden</value> <value>Sie sind dabei, sich anzumelden</value>
<comment/>
</data>
<data name="Damage coefficient" xml:space="preserve">
<value>Damage coefficient</value>
<comment/>
</data> </data>
</root> </root>
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<root> <root>
<!-- <!--
Microsoft ResX Schema Microsoft ResX Schema
Version 2.0 Version 2.0
The primary goals of this format is to allow a simple XML format The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes various data types are done through the TypeConverter classes
associated with the data types. associated with the data types.
Example: Example:
... ado.net/XML headers & schema ... ... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader> <resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader> <resheader name="version">2.0</resheader>
@@ -26,79 +26,79 @@
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment> <comment>This is a comment</comment>
</data> </data>
There are any number of "resheader" rows that contain simple There are any number of "resheader" rows that contain simple
name/value pairs. name/value pairs.
Each data row contains a name, and value. The row also contains a Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture. text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the Classes that don't support this are serialized and stored with the
mimetype set. mimetype set.
The mimetype is used for serialized objects, and tells the The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly: extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below. read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64 mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding. : and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64 mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding. : and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64 mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter : using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding. : and then encoded with base64 encoding.
--> -->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> <xsd:import namespace="http://www.w3.org/XML/1998/namespace"/>
<xsd:element name="root" msdata:IsDataSet="true"> <xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType> <xsd:complexType>
<xsd:choice maxOccurs="unbounded"> <xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata"> <xsd:element name="metadata">
<xsd:complexType> <xsd:complexType>
<xsd:sequence> <xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" /> <xsd:element name="value" type="xsd:string" minOccurs="0"/>
</xsd:sequence> </xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" /> <xsd:attribute name="name" use="required" type="xsd:string"/>
<xsd:attribute name="type" type="xsd:string" /> <xsd:attribute name="type" type="xsd:string"/>
<xsd:attribute name="mimetype" type="xsd:string" /> <xsd:attribute name="mimetype" type="xsd:string"/>
<xsd:attribute ref="xml:space" /> <xsd:attribute ref="xml:space"/>
</xsd:complexType> </xsd:complexType>
</xsd:element> </xsd:element>
<xsd:element name="assembly"> <xsd:element name="assembly">
<xsd:complexType> <xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" /> <xsd:attribute name="alias" type="xsd:string"/>
<xsd:attribute name="name" type="xsd:string" /> <xsd:attribute name="name" type="xsd:string"/>
</xsd:complexType> </xsd:complexType>
</xsd:element> </xsd:element>
<xsd:element name="data"> <xsd:element name="data">
<xsd:complexType> <xsd:complexType>
<xsd:sequence> <xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1"/>
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2"/>
</xsd:sequence> </xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1"/>
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3"/>
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4"/>
<xsd:attribute ref="xml:space" /> <xsd:attribute ref="xml:space"/>
</xsd:complexType> </xsd:complexType>
</xsd:element> </xsd:element>
<xsd:element name="resheader"> <xsd:element name="resheader">
<xsd:complexType> <xsd:complexType>
<xsd:sequence> <xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1"/>
</xsd:sequence> </xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" /> <xsd:attribute name="name" type="xsd:string" use="required"/>
</xsd:complexType> </xsd:complexType>
</xsd:element> </xsd:element>
</xsd:choice> </xsd:choice>
@@ -119,137 +119,250 @@
</resheader> </resheader>
<data name="Average Damage" xml:space="preserve"> <data name="Average Damage" xml:space="preserve">
<value>Средний урон</value> <value>Средний урон</value>
<comment/>
</data> </data>
<data name="Average XP" xml:space="preserve"> <data name="Average XP" xml:space="preserve">
<value>Средний опыт</value> <value>Средний опыт</value>
<comment/>
</data> </data>
<data name="Avg damage by nation" xml:space="preserve"> <data name="Avg damage by nation" xml:space="preserve">
<value>Средний урон по нациям</value> <value>Средний урон по нациям</value>
<comment/>
</data> </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>
<comment/>
</data> </data>
<data name="Avg damage by tier" xml:space="preserve"> <data name="Avg damage by tier" xml:space="preserve">
<value>Средний урон по уровню</value> <value>Средний урон по уровню</value>
<comment/>
</data> </data>
<data name="Battles" xml:space="preserve"> <data name="Battles" xml:space="preserve">
<value>Количество боёв</value> <value>Количество боёв</value>
<comment/>
</data> </data>
<data name="Battles by nation" xml:space="preserve"> <data name="Battles by nation" xml:space="preserve">
<value>Количество боёв по нациям</value> <value>Количество боёв по нациям</value>
<comment/>
</data> </data>
<data name="Battles by tank types" xml:space="preserve"> <data name="Battles by tank types" xml:space="preserve">
<value>Количество боёв по типу танка</value> <value>Количество боёв по типу танка</value>
<comment/>
</data> </data>
<data name="Battles by tier" xml:space="preserve"> <data name="Battles by tier" xml:space="preserve">
<value>Количество боёв по уровню</value> <value>Количество боёв по уровню</value>
<comment/>
</data> </data>
<data name="Cancel" xml:space="preserve"> <data name="Cancel" xml:space="preserve">
<value>Отмена</value> <value>Отмена</value>
<comment/>
</data> </data>
<data name="Continue" xml:space="preserve"> <data name="Continue" xml:space="preserve">
<value>Далее</value> <value>Далее</value>
<comment/>
</data> </data>
<data name="Created" xml:space="preserve"> <data name="Created" xml:space="preserve">
<value>Создан</value> <value>Создан</value>
<comment/>
</data> </data>
<data name="days ago" xml:space="preserve"> <data name="days ago" xml:space="preserve">
<value>дней назад</value> <value>дней назад</value>
<comment/>
</data> </data>
<data name="Filter mark of mastery..." xml:space="preserve"> <data name="Filter mark of mastery..." xml:space="preserve">
<value>Фильтр по знаку мастер...</value> <value>Фильтр по знаку мастер...</value>
<comment/>
</data> </data>
<data name="Filter nations..." xml:space="preserve"> <data name="Filter nations..." xml:space="preserve">
<value>Фильтр по нациям...</value> <value>Фильтр по нациям...</value>
<comment/>
</data> </data>
<data name="Filter tank types..." xml:space="preserve"> <data name="Filter tank types..." xml:space="preserve">
<value>Фильтр по типу танка...</value> <value>Фильтр по типу танка...</value>
<comment/>
</data> </data>
<data name="Filter tier..." xml:space="preserve"> <data name="Filter tier..." xml:space="preserve">
<value>Фильтр по уровню...</value> <value>Фильтр по уровню...</value>
<comment/>
</data> </data>
<data name="Home" xml:space="preserve"> <data name="Home" xml:space="preserve">
<value>На главную</value> <value>На главную</value>
<comment/>
</data> </data>
<data name="hours ago" xml:space="preserve"> <data name="hours ago" xml:space="preserve">
<value>часов назад</value> <value>часов назад</value>
<comment/>
</data> </data>
<data name="Last battle" xml:space="preserve"> <data name="Last battle" xml:space="preserve">
<value>Последний бой</value> <value>Последний бой</value>
<comment/>
</data> </data>
<data name="Log out" xml:space="preserve"> <data name="Log out" xml:space="preserve">
<value>Выйти</value> <value>Выйти</value>
<comment/>
</data> </data>
<data name="Login with WG.net ID" xml:space="preserve"> <data name="Login with WG.net ID" xml:space="preserve">
<value>Войти с WG.net ID</value> <value>Войти с WG.net ID</value>
<comment/>
</data> </data>
<data name="LoginConsent" xml:space="preserve"> <data name="LoginConsent" xml:space="preserve">
<value>Сейчас вы будете перенаправлены на страницу авторизации WG. Авторизованные пользователи получают возможность сохранять историю своей статистики, которая будет доступна только вам. Данное приложение не хранит никакой личной информации об игроках, их логинов, паролей e-mail-ов и внутреигровых ресурсах. Так же после авторизации вы будете иметь возможность выйти с сохранением или удалением истории статистики вашего аккаунта на сервере. Нажимая кнопку Далее, вы соглашаетесь с данной информацией</value> <value>Сейчас вы будете перенаправлены на страницу авторизации WG. Авторизованные пользователи получают возможность сохранять историю своей статистики, которая будет доступна только вам. Данное приложение не хранит никакой личной информации об игроках, их логинов, паролей e-mail-ов и внутреигровых ресурсах. Так же после авторизации вы будете иметь возможность выйти с сохранением или удалением истории статистики вашего аккаунта на сервере. Нажимая кнопку Далее, вы соглашаетесь с данной информацией</value>
<comment/>
</data> </data>
<data name="Members" xml:space="preserve"> <data name="Members" xml:space="preserve">
<value>Участников</value> <value>Участников</value>
<comment/>
</data> </data>
<data name="Min battles" xml:space="preserve"> <data name="Min battles" xml:space="preserve">
<value>Мин боёв</value> <value>Мин боёв</value>
<comment/>
</data> </data>
<data name="minutes ago" xml:space="preserve"> <data name="minutes ago" xml:space="preserve">
<value>минут назад</value> <value>минут назад</value>
<comment/>
</data> </data>
<data name="months ago" xml:space="preserve"> <data name="months ago" xml:space="preserve">
<value>месяцев назад</value> <value>месяцев назад</value>
<comment/>
</data> </data>
<data name="Most effective tank" xml:space="preserve"> <data name="Most effective tank" xml:space="preserve">
<value>Самый эффективный танк</value> <value>Самый эффективный танк</value>
<comment/>
</data> </data>
<data name="of" xml:space="preserve"> <data name="of" xml:space="preserve">
<value>из</value> <value>из</value>
<comment/>
</data> </data>
<data name="Premium tanks" xml:space="preserve"> <data name="Premium tanks" xml:space="preserve">
<value>Премиум танки</value> <value>Премиум танки</value>
<comment/>
</data> </data>
<data name="Region" xml:space="preserve"> <data name="Region" xml:space="preserve">
<value>Регион</value> <value>Регион</value>
<comment/>
</data> </data>
<data name="Search" xml:space="preserve"> <data name="Search" xml:space="preserve">
<value>Поиск</value> <value>Поиск</value>
<comment/>
</data> </data>
<data name="Search clan" xml:space="preserve"> <data name="Search clan" xml:space="preserve">
<value>Поиск клана</value> <value>Поиск клана</value>
<comment/>
</data> </data>
<data name="Search player" xml:space="preserve"> <data name="Search player" xml:space="preserve">
<value>Поиск игрока</value> <value>Поиск игрока</value>
<comment/>
</data> </data>
<data name="Tank" xml:space="preserve"> <data name="Tank" xml:space="preserve">
<value>Танк</value> <value>Танк</value>
<comment/>
</data> </data>
<data name="Tank with Max frags" xml:space="preserve"> <data name="Tank with Max frags" xml:space="preserve">
<value>Максимум фрагов </value> <value>Максимум фрагов </value>
<comment/>
</data> </data>
<data name="Tank with Max XP" xml:space="preserve"> <data name="Tank with Max XP" xml:space="preserve">
<value>Максимум XP</value> <value>Максимум XP</value>
<comment/>
</data> </data>
<data name="Tanks" xml:space="preserve"> <data name="Tanks" xml:space="preserve">
<value>Танков</value> <value>Танков</value>
<comment/>
</data> </data>
<data name="Welcome to WOT Blitz statistics application!" xml:space="preserve"> <data name="Welcome to WOT Blitz statistics application!" xml:space="preserve">
<value>Добро пожаловать в WOT Blitz statistics!</value> <value>Добро пожаловать в WOT Blitz statistics!</value>
<comment/>
</data> </data>
<data name="Win rate" xml:space="preserve"> <data name="Win rate" xml:space="preserve">
<value>Процент побед</value> <value>Процент побед</value>
<comment/>
</data> </data>
<data name="Win rate by nation" xml:space="preserve"> <data name="Win rate by nation" xml:space="preserve">
<value>Процент побед по нациям</value> <value>Процент побед по нациям</value>
<comment/>
</data> </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>
<comment/>
</data> </data>
<data name="Win rate by tier" xml:space="preserve"> <data name="Win rate by tier" xml:space="preserve">
<value>Процент побед по уровню</value> <value>Процент побед по уровню</value>
<comment/>
</data> </data>
<data name="years ago" xml:space="preserve"> <data name="years ago" xml:space="preserve">
<value>лет назад</value> <value>лет назад</value>
<comment/>
</data> </data>
<data name="You're about to login" xml:space="preserve"> <data name="You're about to login" xml:space="preserve">
<value>Вы собираетесь войти в систему</value> <value>Вы собираетесь войти в систему</value>
<comment/>
</data>
<data name="Damage coefficient" xml:space="preserve">
<value>Коэффициент урона</value>
<comment/>
</data>
<data name="Survival rate" xml:space="preserve">
<value>Выживаемость</value>
<comment/>
</data>
<data name="Avg tier" xml:space="preserve">
<value>Танкоуровень</value>
<comment/>
</data>
<data name="Ower all statistics" xml:space="preserve">
<value>Общая статистика</value>
<comment/>
</data>
<data name="Wins" xml:space="preserve">
<value>Побед</value>
<comment/>
</data>
<data name="Losses" xml:space="preserve">
<value>Поражений</value>
<comment/>
</data>
<data name="Survived" xml:space="preserve">
<value>Выжил</value>
<comment/>
</data>
<data name="Win and survived" xml:space="preserve">
<value>Выжил и победил</value>
<comment/>
</data>
<data name="Average Damage received" xml:space="preserve">
<value>Полученный средний урон</value>
<comment/>
</data>
<data name="Frags" xml:space="preserve">
<value>Фрагов</value>
<comment/>
</data>
<data name="Frags over 8 tier" xml:space="preserve">
<value>Фрагов 8+ ур.</value>
<comment/>
</data>
<data name="Shots" xml:space="preserve">
<value>Выстрелов</value>
<comment/>
</data>
<data name="Hits" xml:space="preserve">
<value>Пробитий</value>
<comment/>
</data>
<data name="Accuracy" xml:space="preserve">
<value>Точность</value>
<comment/>
</data>
<data name="Spotted tanks" xml:space="preserve">
<value>Обнаружено танков</value>
<comment/>
</data>
<data name="Base captured" xml:space="preserve">
<value>Захват базы</value>
<comment/>
</data>
<data name="Dropped base capture" xml:space="preserve">
<value>Защита базы</value>
<comment/>
</data> </data>
</root> </root>
@@ -0,0 +1,10 @@
using System.Threading.Tasks;
using WotBlitzStatisticsPro.Blazor.GraphQl;
namespace WotBlitzStatisticsPro.Blazor.Services
{
public interface IMedalDialogService
{
Task OpenMedalInfoDIalog(IMedal medalInfo);
}
}
@@ -0,0 +1,10 @@
using System.Threading.Tasks;
using WotBlitzStatisticsPro.Blazor.GraphQl;
namespace WotBlitzStatisticsPro.Blazor.Services
{
public interface ITankStatisticDialogService
{
Task OpenTankStatistics(ITank tank);
}
}
@@ -0,0 +1,35 @@
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using WotBlitzStatisticsPro.Blazor.GraphQl;
using MediatR;
using Radzen;
using WotBlitzStatisticsPro.Blazor.Messages;
using WotBlitzStatisticsPro.Blazor.Pages;
namespace WotBlitzStatisticsPro.Blazor.Services
{
public class MedalDialogService: IMedalDialogService, INotificationHandler<OpenMedalDescriptionMessage>
{
private readonly DialogService _dialogService;
public MedalDialogService(DialogService dialogService)
{
_dialogService = dialogService;
}
public async Task OpenMedalInfoDIalog(IMedal medalInfo)
{
await _dialogService.OpenAsync<MedalInfoDialog>(medalInfo.Name,
new Dictionary<string, object>() { { "MedalInfo", medalInfo } },
new DialogOptions() { Width = "412px", Height = "600px" });
}
public Task Handle(OpenMedalDescriptionMessage notification, CancellationToken cancellationToken)
{
return OpenMedalInfoDIalog(notification.MedalInfo);
}
}
}
@@ -0,0 +1,33 @@
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using WotBlitzStatisticsPro.Blazor.GraphQl;
using MediatR;
using Radzen;
using WotBlitzStatisticsPro.Blazor.Messages;
using WotBlitzStatisticsPro.Blazor.Pages;
namespace WotBlitzStatisticsPro.Blazor.Services
{
public class TankStatisticDialogService: ITankStatisticDialogService, INotificationHandler<OpenTankDialogMessage>
{
private readonly DialogService _dialogService;
public TankStatisticDialogService(DialogService dialogService)
{
_dialogService = dialogService;
}
public async Task OpenTankStatistics(ITank tank)
{
await _dialogService.OpenAsync<TankInfoDialog>(tank.Name,
new Dictionary<string, object>() { { "Tank", tank } },
new DialogOptions() { Width = "412px", Height = "850px" });
}
public Task Handle(OpenTankDialogMessage notification, CancellationToken cancellationToken)
{
return OpenTankStatistics(notification.Tank);
}
}
}
@@ -4,7 +4,7 @@
<TargetFramework>net5.0</TargetFramework> <TargetFramework>net5.0</TargetFramework>
<ServiceWorkerAssetsManifest>service-worker-assets.js</ServiceWorkerAssetsManifest> <ServiceWorkerAssetsManifest>service-worker-assets.js</ServiceWorkerAssetsManifest>
<BlazorWebAssemblyLoadAllGlobalizationData>true</BlazorWebAssemblyLoadAllGlobalizationData> <BlazorWebAssemblyLoadAllGlobalizationData>true</BlazorWebAssemblyLoadAllGlobalizationData>
<AssemblyVersion>1.0.0.2</AssemblyVersion> <AssemblyVersion>1.0.0.3</AssemblyVersion>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 332 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 324 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 331 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 397 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 939 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB