Browse Source

Merge pull request #11398 from abpframework/auto-merge/rel-5-1/832

Merge branch dev with rel-5.1
pull/11402/head
maliming 5 years ago
committed by GitHub
parent
commit
6aa069fbe7
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 30
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ServiceProxying/CSharp/CSharpServiceProxyGenerator.cs

30
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ServiceProxying/CSharp/CSharpServiceProxyGenerator.cs

@ -64,7 +64,7 @@ public class CSharpServiceProxyGenerator : ServiceProxyGeneratorBase<CSharpServi
{ {
} }
public override async Task GenerateProxyAsync(GenerateProxyArgs args) public async override Task GenerateProxyAsync(GenerateProxyArgs args)
{ {
CheckWorkDirectory(args.WorkDirectory); CheckWorkDirectory(args.WorkDirectory);
CheckFolder(args.Folder); CheckFolder(args.Folder);
@ -186,7 +186,7 @@ public class CSharpServiceProxyGenerator : ServiceProxyGeneratorBase<CSharpServi
} }
clientProxyBuilder.Replace($"{Environment.NewLine}{UsingPlaceholder}", string.Empty); clientProxyBuilder.Replace($"{Environment.NewLine}{UsingPlaceholder}", string.Empty);
clientProxyBuilder.Replace($"{Environment.NewLine}{Environment.NewLine} {MethodPlaceholder}", string.Empty); clientProxyBuilder.Replace($"{Environment.NewLine}{Environment.NewLine} {MethodPlaceholder}", string.Empty);
var filePath = Path.Combine(args.WorkDirectory, folder, $"{clientProxyName}.Generated.cs"); var filePath = Path.Combine(args.WorkDirectory, folder, $"{clientProxyName}.Generated.cs");
@ -209,12 +209,12 @@ public class CSharpServiceProxyGenerator : ServiceProxyGeneratorBase<CSharpServi
if (!action.Name.EndsWith("Async")) if (!action.Name.EndsWith("Async"))
{ {
GenerateSynchronizationMethod(action, returnTypeName, methodBuilder, usingNamespaceList); GenerateSynchronizationMethod(action, returnTypeName, methodBuilder, usingNamespaceList);
clientProxyBuilder.Replace(MethodPlaceholder, $"{methodBuilder}{Environment.NewLine} {MethodPlaceholder}"); clientProxyBuilder.Replace(MethodPlaceholder, $"{methodBuilder}{Environment.NewLine} {MethodPlaceholder}");
return; return;
} }
GenerateAsynchronousMethod(action, returnTypeName, methodBuilder, usingNamespaceList); GenerateAsynchronousMethod(action, returnTypeName, methodBuilder, usingNamespaceList);
clientProxyBuilder.Replace(MethodPlaceholder, $"{methodBuilder}{Environment.NewLine} {MethodPlaceholder}"); clientProxyBuilder.Replace(MethodPlaceholder, $"{methodBuilder}{Environment.NewLine} {MethodPlaceholder}");
} }
private void GenerateSynchronizationMethod(ActionApiDescriptionModel action, string returnTypeName, StringBuilder methodBuilder, List<string> usingNamespaceList) private void GenerateSynchronizationMethod(ActionApiDescriptionModel action, string returnTypeName, StringBuilder methodBuilder, List<string> usingNamespaceList)
@ -229,10 +229,10 @@ public class CSharpServiceProxyGenerator : ServiceProxyGeneratorBase<CSharpServi
methodBuilder.Replace("<args>", string.Empty); methodBuilder.Replace("<args>", string.Empty);
methodBuilder.Replace(", )", ")"); methodBuilder.Replace(", )", ")");
methodBuilder.AppendLine(" {"); methodBuilder.AppendLine(" {");
methodBuilder.AppendLine(" //Client Proxy does not support the synchronization method, you should always use asynchronous methods as a best practice"); methodBuilder.AppendLine(" //Client Proxy does not support the synchronization method, you should always use asynchronous methods as a best practice");
methodBuilder.AppendLine(" throw new System.NotImplementedException(); "); methodBuilder.AppendLine(" throw new System.NotImplementedException(); ");
methodBuilder.AppendLine(" }"); methodBuilder.AppendLine(" }");
} }
private void GenerateAsynchronousMethod( private void GenerateAsynchronousMethod(
@ -253,31 +253,31 @@ public class CSharpServiceProxyGenerator : ServiceProxyGeneratorBase<CSharpServi
methodBuilder.Replace("<args>", string.Empty); methodBuilder.Replace("<args>", string.Empty);
methodBuilder.Replace(", )", ")"); methodBuilder.Replace(", )", ")");
methodBuilder.AppendLine(" {"); methodBuilder.AppendLine(" {");
var argsTemplate = "new ClientProxyRequestTypeValue" + var argsTemplate = "new ClientProxyRequestTypeValue" +
$"{Environment.NewLine} {{<args>" + $"{Environment.NewLine} {{<args>" +
$"{Environment.NewLine} }}"; $"{Environment.NewLine} }}";
var args = action.ParametersOnMethod.Any() ? argsTemplate : string.Empty; var args = action.ParametersOnMethod.Any() ? argsTemplate : string.Empty;
if (returnTypeName == "void") if (returnTypeName == "void")
{ {
methodBuilder.AppendLine($" await RequestAsync(nameof({action.Name}), {args});"); methodBuilder.AppendLine($" await RequestAsync(nameof({action.Name}), {args});");
} }
else else
{ {
methodBuilder.AppendLine($" return await RequestAsync<{returnTypeName}>(nameof({action.Name}), {args});"); methodBuilder.AppendLine($" return await RequestAsync<{returnTypeName}>(nameof({action.Name}), {args});");
} }
foreach (var parameter in action.ParametersOnMethod) foreach (var parameter in action.ParametersOnMethod)
{ {
methodBuilder.Replace("<args>", $"{Environment.NewLine} {{ typeof({GetRealTypeName(parameter.Type)}), {parameter.Name} }},<args>"); methodBuilder.Replace("<args>", $"{Environment.NewLine} {{ typeof({GetRealTypeName(parameter.Type)}), {parameter.Name} }},<args>");
} }
methodBuilder.Replace(",<args>", string.Empty); methodBuilder.Replace(",<args>", string.Empty);
methodBuilder.Replace(", )", ")"); methodBuilder.Replace(", )", ")");
methodBuilder.AppendLine(" }"); methodBuilder.AppendLine(" }");
} }
private bool ShouldGenerateProxy(ControllerApiDescriptionModel controllerApiDescription) private bool ShouldGenerateProxy(ControllerApiDescriptionModel controllerApiDescription)

Loading…
Cancel
Save