Browse Source

Merge pull request #8599 from abpframework/maliming/patch-1

Use IOS 8601 as datetime format in querystring and InvariantCulture route.
pull/8655/head
Halil İbrahim Kalkan 6 years ago
committed by GitHub
parent
commit
d1421f406d
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 25
      framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/DynamicProxying/UrlBuilder.cs
  2. 16
      framework/src/Volo.Abp.Http/Volo/Abp/Http/ProxyScripting/Generators/ProxyScriptingHelper.cs

25
framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/DynamicProxying/UrlBuilder.cs

@ -15,12 +15,18 @@ namespace Volo.Abp.Http.Client.DynamicProxying
{ {
public static string GenerateUrlWithParameters(ActionApiDescriptionModel action, IReadOnlyDictionary<string, object> methodArguments, ApiVersionInfo apiVersion) public static string GenerateUrlWithParameters(ActionApiDescriptionModel action, IReadOnlyDictionary<string, object> methodArguments, ApiVersionInfo apiVersion)
{ {
var urlBuilder = new StringBuilder(action.Url); // The ASP.NET Core route value provider and query string value provider:
// Treat values as invariant culture.
// Expect that URLs are culture-invariant.
using (CultureHelper.Use(CultureInfo.InvariantCulture))
{
var urlBuilder = new StringBuilder(action.Url);
ReplacePathVariables(urlBuilder, action.Parameters, methodArguments, apiVersion); ReplacePathVariables(urlBuilder, action.Parameters, methodArguments, apiVersion);
AddQueryStringParameters(urlBuilder, action.Parameters, methodArguments, apiVersion); AddQueryStringParameters(urlBuilder, action.Parameters, methodArguments, apiVersion);
return urlBuilder.ToString(); return urlBuilder.ToString();
}
} }
private static void ReplacePathVariables(StringBuilder urlBuilder, IList<ParameterApiDescriptionModel> actionParameters, IReadOnlyDictionary<string, object> methodArguments, ApiVersionInfo apiVersion) private static void ReplacePathVariables(StringBuilder urlBuilder, IList<ParameterApiDescriptionModel> actionParameters, IReadOnlyDictionary<string, object> methodArguments, ApiVersionInfo apiVersion)
@ -128,15 +134,12 @@ namespace Volo.Abp.Http.Client.DynamicProxying
private static string ConvertValueToString([NotNull] object value) private static string ConvertValueToString([NotNull] object value)
{ {
using (CultureHelper.Use(CultureInfo.InvariantCulture)) if (value is DateTime dateTimeValue)
{ {
if (value is DateTime dateTimeValue) return dateTimeValue.ToUniversalTime().ToString("O");
{
return dateTimeValue.ToUniversalTime().ToString("u");
}
return value.ToString();
} }
return value.ToString();
} }
} }
} }

16
framework/src/Volo.Abp.Http/Volo/Abp/Http/ProxyScripting/Generators/ProxyScriptingHelper.cs

@ -1,7 +1,9 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Globalization;
using System.Linq; using System.Linq;
using Volo.Abp.Http.Modeling; using Volo.Abp.Http.Modeling;
using Volo.Abp.Localization;
namespace Volo.Abp.Http.ProxyScripting.Generators namespace Volo.Abp.Http.ProxyScripting.Generators
{ {
@ -11,10 +13,16 @@ namespace Volo.Abp.Http.ProxyScripting.Generators
public static string GenerateUrlWithParameters(ActionApiDescriptionModel action) public static string GenerateUrlWithParameters(ActionApiDescriptionModel action)
{ {
//TODO: Can be optimized using StringBuilder? // The ASP.NET Core route value provider and query string value provider:
var url = ReplacePathVariables(action.Url, action.Parameters); // Treat values as invariant culture.
url = AddQueryStringParameters(url, action.Parameters); // Expect that URLs are culture-invariant.
return url; using (CultureHelper.Use(CultureInfo.InvariantCulture))
{
//TODO: Can be optimized using StringBuilder?
var url = ReplacePathVariables(action.Url, action.Parameters);
url = AddQueryStringParameters(url, action.Parameters);
return url;
}
} }
public static string GenerateHeaders(ActionApiDescriptionModel action, int indent = 0) public static string GenerateHeaders(ActionApiDescriptionModel action, int indent = 0)

Loading…
Cancel
Save