diff --git a/WotBlitzStatisticsPro.Common/Model/AccountInfoResponse.cs b/WotBlitzStatisticsPro.Common/Model/AccountInfoResponse.cs index 8d2d0c8..2a42e6d 100644 --- a/WotBlitzStatisticsPro.Common/Model/AccountInfoResponse.cs +++ b/WotBlitzStatisticsPro.Common/Model/AccountInfoResponse.cs @@ -168,5 +168,9 @@ namespace WotBlitzStatisticsPro.Common.Model /// public ClanInfoResponse? ClanInfo { get; set; } - } + /// + /// Account Region and request language + /// + public RealmAndLanguage RegionAndLanguage { get; set; } = new(RealmType.Eu, RequestLanguage.En); + } } \ No newline at end of file diff --git a/WotBlitzStatisticsPro.GraphQl/Helpers/ParametersParser.cs b/WotBlitzStatisticsPro.GraphQl/Helpers/ParametersParser.cs deleted file mode 100644 index bffde51..0000000 --- a/WotBlitzStatisticsPro.GraphQl/Helpers/ParametersParser.cs +++ /dev/null @@ -1,42 +0,0 @@ -using System; -using System.Linq; -using HotChocolate.Language; -using WotBlitzStatisticsPro.Common.Model; - -namespace WotBlitzStatisticsPro.GraphQl.Helpers -{ - public static class ParametersParser - { - private const RealmType DefaultRealm = RealmType.Ru; - private const RequestLanguage DefaultRequestLanguage = RequestLanguage.En; - - public static RealmAndLanguage ParseOperation(this OperationDefinitionNode operationDefinition) - { - var realm = DefaultRealm; - var language = DefaultRequestLanguage; - var selections = operationDefinition?.SelectionSet.Selections.ToArray(); - if (selections != null && selections.Length == 1) - { - var node = selections[0] as FieldNode; - if (node?.Arguments != null) - { - foreach (var argument in node.Arguments.Where(a => a != null)) - { - switch (argument.Name.Value) - { - case "realmType" when argument?.Value?.Value != null: - realm = (RealmType)Enum.Parse(typeof(RealmType), argument.Value.Value.ToString() ?? "Ru", true); - break; - case "requestLanguage" when argument?.Value?.Value != null: - language = (RequestLanguage)Enum.Parse(typeof(RequestLanguage), argument.Value.Value.ToString() ?? "En", true); - break; - } - } - } - } - - return new (realm, language); - } - - } -} \ No newline at end of file diff --git a/WotBlitzStatisticsPro.GraphQl/Resolvers/AccountInfoResolver.cs b/WotBlitzStatisticsPro.GraphQl/Resolvers/AccountInfoResolver.cs index 43a9a1d..4ea9c73 100644 --- a/WotBlitzStatisticsPro.GraphQl/Resolvers/AccountInfoResolver.cs +++ b/WotBlitzStatisticsPro.GraphQl/Resolvers/AccountInfoResolver.cs @@ -1,6 +1,5 @@ using HotChocolate.Types; using WotBlitzStatisticsPro.Common.Model; -using WotBlitzStatisticsPro.GraphQl.Helpers; using WotBlitzStatisticsPro.Logic; namespace WotBlitzStatisticsPro.GraphQl.Resolvers @@ -11,8 +10,7 @@ namespace WotBlitzStatisticsPro.GraphQl.Resolvers protected override void Configure(IObjectTypeDescriptor descriptor) { descriptor.Field(t => t.ClanInfo) - .Resolver(ctx => ctx.Service().GelClanInfoByAccount(ctx.Parent().AccountId, ctx.Operation.ParseOperation())); - + .Resolver(ctx => ctx.Service().GelClanInfoByAccount(ctx.Parent().AccountId, ctx.Parent().RegionAndLanguage)); } } } \ No newline at end of file diff --git a/WotBlitzStatisticsPro.GraphQl/WotBlitzStatisticsPro.GraphQl.csproj b/WotBlitzStatisticsPro.GraphQl/WotBlitzStatisticsPro.GraphQl.csproj index 94b5034..8b0f42b 100644 --- a/WotBlitzStatisticsPro.GraphQl/WotBlitzStatisticsPro.GraphQl.csproj +++ b/WotBlitzStatisticsPro.GraphQl/WotBlitzStatisticsPro.GraphQl.csproj @@ -28,6 +28,7 @@ + diff --git a/WotBlitzStatisticsPro.Logic/AccountInformationPipeline/Operations/BuildAccountInfoResponseOperation.cs b/WotBlitzStatisticsPro.Logic/AccountInformationPipeline/Operations/BuildAccountInfoResponseOperation.cs index 39944fd..480d8fd 100644 --- a/WotBlitzStatisticsPro.Logic/AccountInformationPipeline/Operations/BuildAccountInfoResponseOperation.cs +++ b/WotBlitzStatisticsPro.Logic/AccountInformationPipeline/Operations/BuildAccountInfoResponseOperation.cs @@ -46,6 +46,9 @@ namespace WotBlitzStatisticsPro.Logic.AccountInformationPipeline.Operations contextData.Response = _mapper.Map(contextData.AccountInfo); contextData.Response = _mapper.Map(contextData.AccountInfoHistory, contextData.Response); + contextData.Response.RegionAndLanguage = + new RealmAndLanguage(context.Request.RealmType, context.Request.RequestLanguage); + var tankIds = contextData.Tanks.Select(t => t.TankId).ToArray(); var vehicles = await _dictionariesDataAccessor.GetVehicles(tankIds);