From ace40c5c0b58745ce3280de72c8e3b103517d256 Mon Sep 17 00:00:00 2001 From: maliming Date: Sun, 8 Jun 2025 09:08:20 +0800 Subject: [PATCH 1/2] Skip handling `queryStringParameter/pathParameter` if a converter exists. --- .../Client/ClientProxying/ClientProxyUrlBuilder.cs | 4 ++-- .../Volo/Abp/TestApp/Application/PeopleAppService.cs | 12 ++++++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/ClientProxying/ClientProxyUrlBuilder.cs b/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/ClientProxying/ClientProxyUrlBuilder.cs index 5be598af20..09ec183929 100644 --- a/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/ClientProxying/ClientProxyUrlBuilder.cs +++ b/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/ClientProxying/ClientProxyUrlBuilder.cs @@ -119,8 +119,8 @@ public class ClientProxyUrlBuilder : ITransientDependency if (path != null) { urlBuilder = urlBuilder.Replace($"{{{pathParameter.Name}}}", path); - continue; } + continue; } } @@ -164,8 +164,8 @@ public class ClientProxyUrlBuilder : ITransientDependency urlBuilder.Append(isFirstParam ? "?" : "&"); urlBuilder.Append(queryString); isFirstParam = false; - continue; } + continue; } } diff --git a/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Application/PeopleAppService.cs b/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Application/PeopleAppService.cs index a7d64228bd..6981eb1e57 100644 --- a/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Application/PeopleAppService.cs +++ b/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Application/PeopleAppService.cs @@ -5,7 +5,9 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; +using Shouldly; using Volo.Abp.Application.Dtos; using Volo.Abp.TestApp.Domain; using Volo.Abp.Domain.Repositories; @@ -17,10 +19,11 @@ namespace Volo.Abp.TestApp.Application; public class PeopleAppService : CrudAppService, IPeopleAppService { - public PeopleAppService(IRepository repository) + private readonly IHttpContextAccessor _httpContextAccessor; + public PeopleAppService(IRepository repository, IHttpContextAccessor httpContextAccessor) : base(repository) { - + _httpContextAccessor = httpContextAccessor; } public async Task> GetPhones(Guid id, GetPersonPhonesFilter filter) @@ -129,6 +132,11 @@ public class PeopleAppService : CrudAppService, IPeople public Task GetParamsFromQueryAsync([FromQuery] GetParamsInput input) { + if (_httpContextAccessor.HttpContext != null) + { + _httpContextAccessor.HttpContext.Request.QueryString.ToString().ShouldNotContain("ExtraProperties=Volo.Abp.Data.ExtraPropertyDictionary"); + } + return Task.FromResult(input.NameValues?.FirstOrDefault()?.Name + "-" + input.NameValues?.FirstOrDefault()?.Value + ":" + input.NameValues?.FirstOrDefault()?.ExtraProperties["TestPropertyInList"] + ":" + input.NameValues?.LastOrDefault()?.Name + "-" + input.NameValues?.LastOrDefault()?.Value + ":" + From 9604300eb3c946719ee5a6705fc8516c0ab96516 Mon Sep 17 00:00:00 2001 From: maliming Date: Sun, 8 Jun 2025 09:58:58 +0800 Subject: [PATCH 2/2] Fix unit tests --- .../Volo/Abp/Http/DynamicProxying/TestObjectToPath.cs | 3 +-- .../test/Volo.Abp.TestApp/Volo/Abp/TestApp/TestAppModule.cs | 3 ++- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/DynamicProxying/TestObjectToPath.cs b/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/DynamicProxying/TestObjectToPath.cs index a9b7936578..358d842228 100644 --- a/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/DynamicProxying/TestObjectToPath.cs +++ b/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/DynamicProxying/TestObjectToPath.cs @@ -15,9 +15,8 @@ public class TestObjectToPath : IObjectToPath, ITransientDependency { value = 888; } - return Task.FromResult(value.ToString()); } - return Task.FromResult(null); + return Task.FromResult(value.ToString()); } } diff --git a/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/TestAppModule.cs b/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/TestAppModule.cs index 0c8339d6f7..f30774838e 100644 --- a/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/TestAppModule.cs +++ b/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/TestAppModule.cs @@ -27,7 +27,8 @@ public class TestAppModule : AbpModule { ConfigureAutoMapper(); ConfigureDistributedEventBus(); - + + context.Services.AddHttpContextAccessor(); context.Services.Replace(ServiceDescriptor.Singleton()); context.Services.AddEntityCache(); context.Services.AddEntityCache();