mirror of
https://github.com/AlexMacocian/Net.Sdk.Web.Extensions.git
synced 2026-07-15 13:39:29 +00:00
Expose UseRoutes() for WebApp
This commit is contained in:
@@ -75,6 +75,8 @@ public static class Constants
|
||||
public const string IEndpointRouteBuilderTypeName = "IEndpointRouteBuilder";
|
||||
public const string WebApplicationBuilderExtensionsName = "WebApplicationBuilderExtension";
|
||||
public const string WebApplicationBuilderTypeName = "WebApplicationBuilder";
|
||||
public const string WebApplicationExtensionsName = "WebApplicationExtensions";
|
||||
public const string WebApplicationTypeName = "WebApplication";
|
||||
public const string WithRoutesName = "WithRoutes";
|
||||
public const string BuilderParameterName = "builder";
|
||||
|
||||
|
||||
@@ -67,14 +67,23 @@ public class MapEndpointGenerator : IIncrementalGenerator
|
||||
var namespaceBuilder = languageVersion >= LanguageVersion.CSharp10 ? SyntaxBuilder.CreateFileScopedNamespace(Constants.Namespace) : SyntaxBuilder.CreateNamespace(Constants.Namespace);
|
||||
builder.WithNamespace(namespaceBuilder);
|
||||
|
||||
var webAppBuilder = SyntaxBuilder.CreateClass(Constants.WebApplicationExtensionsName)
|
||||
.WithModifiers($"{Constants.Public} {Constants.Static}");
|
||||
|
||||
var extensionClassBuilder = SyntaxBuilder.CreateClass(Constants.EndpointRouteBuilderExtensionsName)
|
||||
.WithModifiers($"{Constants.Public} {Constants.Static}");
|
||||
namespaceBuilder.WithClass(webAppBuilder);
|
||||
namespaceBuilder.WithClass(extensionClassBuilder);
|
||||
|
||||
var useRoutesWebAppMethodBuilder = SyntaxBuilder.CreateMethod(Constants.WebApplicationTypeName, Constants.UseRoutesMethodName)
|
||||
.WithThisParameter(Constants.WebApplicationTypeName, Constants.BuilderParameterName)
|
||||
.WithModifiers($"{Constants.Public} {Constants.Static}");
|
||||
|
||||
var useRoutesMethodBuilder = SyntaxBuilder.CreateMethod(Constants.IEndpointRouteBuilderTypeName, Constants.UseRoutesMethodName)
|
||||
.WithThisParameter(Constants.IEndpointRouteBuilderTypeName, Constants.BuilderParameterName)
|
||||
.WithModifiers($"{Constants.Public} {Constants.Static}");
|
||||
var useRoutesBody = new StringBuilder();
|
||||
var useRoutesWebAppBody = new StringBuilder();
|
||||
foreach (var classDeclarationSyntax in classes)
|
||||
{
|
||||
if (classDeclarationSyntax is null)
|
||||
@@ -98,6 +107,7 @@ public class MapEndpointGenerator : IIncrementalGenerator
|
||||
if (methodBuilder is not null)
|
||||
{
|
||||
useRoutesBody.AppendLine($"{methodName}(builder);");
|
||||
useRoutesWebAppBody.AppendLine($"{Constants.EndpointRouteBuilderExtensionsName}.{methodName}(builder);");
|
||||
extensionClassBuilder.WithMethod(methodBuilder);
|
||||
}
|
||||
}
|
||||
@@ -108,6 +118,7 @@ public class MapEndpointGenerator : IIncrementalGenerator
|
||||
if (methodBuilder is not null)
|
||||
{
|
||||
useRoutesBody.AppendLine($"{methodName}(builder);");
|
||||
useRoutesWebAppBody.AppendLine($"{Constants.EndpointRouteBuilderExtensionsName}.{methodName}(builder);");
|
||||
extensionClassBuilder.WithMethod(methodBuilder);
|
||||
}
|
||||
}
|
||||
@@ -118,6 +129,7 @@ public class MapEndpointGenerator : IIncrementalGenerator
|
||||
if (methodBuilder is not null)
|
||||
{
|
||||
useRoutesBody.AppendLine($"{methodName}(builder);");
|
||||
useRoutesWebAppBody.AppendLine($"{Constants.EndpointRouteBuilderExtensionsName}.{methodName}(builder);");
|
||||
extensionClassBuilder.WithMethod(methodBuilder);
|
||||
}
|
||||
}
|
||||
@@ -128,14 +140,18 @@ public class MapEndpointGenerator : IIncrementalGenerator
|
||||
if (methodBuilder is not null)
|
||||
{
|
||||
useRoutesBody.AppendLine($"{methodName}(builder);");
|
||||
useRoutesWebAppBody.AppendLine($"{Constants.EndpointRouteBuilderExtensionsName}.{methodName}(builder);");
|
||||
extensionClassBuilder.WithMethod(methodBuilder);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
useRoutesBody.AppendLine("return builder;");
|
||||
useRoutesWebAppBody.AppendLine($"return builder;");
|
||||
useRoutesMethodBuilder.WithBody(useRoutesBody.ToString());
|
||||
useRoutesWebAppMethodBuilder.WithBody(useRoutesWebAppBody.ToString());
|
||||
extensionClassBuilder.WithMethod(useRoutesMethodBuilder);
|
||||
webAppBuilder.WithMethod(useRoutesWebAppMethodBuilder);
|
||||
foreach (var classUsing in routeUsings)
|
||||
{
|
||||
builder.WithUsing(classUsing);
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>netstandard2.0</TargetFramework>
|
||||
<Version>0.8.4</Version>
|
||||
<Version>0.8.5</Version>
|
||||
<LangVersion>latest</LangVersion>
|
||||
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
|
||||
<Authors>Alexandru Macocian</Authors>
|
||||
|
||||
Reference in New Issue
Block a user