|
|
@ -1,10 +1,11 @@ |
|
|
|
using System; |
|
|
|
using System.Configuration; |
|
|
|
using Microsoft.AspNetCore.Builder; |
|
|
|
using Microsoft.AspNetCore.Builder; |
|
|
|
using Microsoft.AspNetCore.Hosting; |
|
|
|
using Microsoft.AspNetCore.Mvc.ApplicationModels; |
|
|
|
using Microsoft.AspNetCore.Routing; |
|
|
|
using Microsoft.AspNetCore.Server.Kestrel.Core; |
|
|
|
using Microsoft.Extensions.DependencyInjection; |
|
|
|
using Microsoft.Extensions.Logging; |
|
|
|
using System.Text.RegularExpressions; |
|
|
|
|
|
|
|
namespace Win.Sfs.SettleAccount |
|
|
|
{ |
|
|
@ -12,6 +13,8 @@ namespace Win.Sfs.SettleAccount |
|
|
|
{ |
|
|
|
public void ConfigureServices(IServiceCollection services) |
|
|
|
{ |
|
|
|
services.AddRouting(options => options.ConstraintMap["slugify"] = typeof(SlugifyParameterTransformer)); |
|
|
|
services.AddMvc(options=>options.Conventions.Add(new RouteTokenTransformerConvention(new SlugifyParameterTransformer()))); |
|
|
|
services.AddApplication<SettleAccountHttpApiHostModule>(); |
|
|
|
services.Configure<KestrelServerOptions>(options => |
|
|
|
{ |
|
|
@ -23,10 +26,7 @@ namespace Win.Sfs.SettleAccount |
|
|
|
{ |
|
|
|
options.MaxRequestBodySize = 268435456; |
|
|
|
options.AllowSynchronousIO = true; |
|
|
|
|
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory) |
|
|
@ -34,8 +34,15 @@ namespace Win.Sfs.SettleAccount |
|
|
|
app.InitializeApplication(); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public class SlugifyParameterTransformer : IOutboundParameterTransformer |
|
|
|
{ |
|
|
|
public string TransformOutbound(object value) |
|
|
|
{ |
|
|
|
if (value == null) { return null; } |
|
|
|
var str = value.ToString(); |
|
|
|
if (string.IsNullOrEmpty(str)) { return null; } |
|
|
|
return Regex.Replace(str?.ToString(), "([a-z])([A-Z])", "$1-$2").ToLowerInvariant(); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |