|
|
|
@ -139,7 +139,7 @@ namespace Volo.Abp.Cli.Commands
|
|
|
|
var name = (string)parameter["name"];
|
|
|
|
var name = (string)parameter["name"];
|
|
|
|
var typeSimple = (string)parameter["typeSimple"];
|
|
|
|
var typeSimple = (string)parameter["typeSimple"];
|
|
|
|
var typeArray = ((string)parameter["type"]).Split(".");
|
|
|
|
var typeArray = ((string)parameter["type"]).Split(".");
|
|
|
|
var type = typeArray[typeArray.Length - 1];
|
|
|
|
var type = (typeArray[typeArray.Length - 1]).TrimEnd('>');
|
|
|
|
var isOptional = (bool)parameter["isOptional"];
|
|
|
|
var isOptional = (bool)parameter["isOptional"];
|
|
|
|
var defaultValue = (string)parameter["defaultValue"];
|
|
|
|
var defaultValue = (string)parameter["defaultValue"];
|
|
|
|
|
|
|
|
|
|
|
|
@ -209,6 +209,13 @@ namespace Volo.Abp.Cli.Commands
|
|
|
|
{
|
|
|
|
{
|
|
|
|
foreach (var parameterItem in parameterModel.OrderBy(p => p.DisplayOrder))
|
|
|
|
foreach (var parameterItem in parameterModel.OrderBy(p => p.DisplayOrder))
|
|
|
|
{
|
|
|
|
{
|
|
|
|
|
|
|
|
var parameterItemModelName = parameterItem.Type.PascalToKebabCase() + ".ts";
|
|
|
|
|
|
|
|
var parameterItemModelPath = $"src/app/{rootPath}/shared/models/{parameterItemModelName}";
|
|
|
|
|
|
|
|
if (parameterItem.BindingSourceId == "body" && !File.Exists(parameterItemModelPath))
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
parameterItem.Type = "any";
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
parametersIndex++;
|
|
|
|
parametersIndex++;
|
|
|
|
|
|
|
|
|
|
|
|
if (parametersIndex > 1)
|
|
|
|
if (parametersIndex > 1)
|
|
|
|
@ -222,7 +229,7 @@ namespace Volo.Abp.Cli.Commands
|
|
|
|
{
|
|
|
|
{
|
|
|
|
modelBindingExtraList.Add(parameterItem.Name);
|
|
|
|
modelBindingExtraList.Add(parameterItem.Name);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else if (parameterItem.BindingSourceId == "body")
|
|
|
|
else if (parameterItem.BindingSourceId == "body" && File.Exists(parameterItemModelPath))
|
|
|
|
{
|
|
|
|
{
|
|
|
|
secondTypeList.Add(parameterItem.Type);
|
|
|
|
secondTypeList.Add(parameterItem.Type);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -239,6 +246,13 @@ namespace Volo.Abp.Cli.Commands
|
|
|
|
var secondTypeArray = returnValueType.Split("<")[1].Split(".");
|
|
|
|
var secondTypeArray = returnValueType.Split("<")[1].Split(".");
|
|
|
|
var secondType = secondTypeArray[secondTypeArray.Length - 1].TrimEnd('>');
|
|
|
|
var secondType = secondTypeArray[secondTypeArray.Length - 1].TrimEnd('>');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var secondTypeModelName = secondType.PascalToKebabCase() + ".ts";
|
|
|
|
|
|
|
|
var secondTypeModelPath = $"src/app/{rootPath}/shared/models/{secondTypeModelName}";
|
|
|
|
|
|
|
|
if (firstType == "List" && !File.Exists(secondTypeModelPath))
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
secondType = "any";
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
serviceFileText.AppendLine(
|
|
|
|
serviceFileText.AppendLine(
|
|
|
|
firstType == "List"
|
|
|
|
firstType == "List"
|
|
|
|
? $" {actionName}({parametersText}): Observable<{secondType}[]> {{"
|
|
|
|
? $" {actionName}({parametersText}): Observable<{secondType}[]> {{"
|
|
|
|
@ -248,7 +262,11 @@ namespace Volo.Abp.Cli.Commands
|
|
|
|
{
|
|
|
|
{
|
|
|
|
firstTypeList.Add(firstType);
|
|
|
|
firstTypeList.Add(firstType);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
secondTypeList.Add(secondType);
|
|
|
|
|
|
|
|
|
|
|
|
if (secondType != "any")
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
secondTypeList.Add(secondType);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else
|
|
|
|
else
|
|
|
|
{
|
|
|
|
{
|
|
|
|
@ -286,7 +304,7 @@ namespace Volo.Abp.Cli.Commands
|
|
|
|
modelBindingExtra = ", params: { " + string.Join(", ", modelBindingExtraList.ToArray()) + " }";
|
|
|
|
modelBindingExtra = ", params: { " + string.Join(", ", modelBindingExtraList.ToArray()) + " }";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
var url = (((string)action["url"]).Replace("/{", "/${")).ToLower();
|
|
|
|
var url = ((string)action["url"]).Replace("/{", "/${");
|
|
|
|
var httpMethod = (string)action["httpMethod"];
|
|
|
|
var httpMethod = (string)action["httpMethod"];
|
|
|
|
|
|
|
|
|
|
|
|
serviceFileText.AppendLine(
|
|
|
|
serviceFileText.AppendLine(
|
|
|
|
@ -347,6 +365,8 @@ namespace Volo.Abp.Cli.Commands
|
|
|
|
|
|
|
|
|
|
|
|
File.WriteAllText($"src/app/{rootPath}/shared/models/index.ts", modelIndexFileText.ToString());
|
|
|
|
File.WriteAllText($"src/app/{rootPath}/shared/models/index.ts", modelIndexFileText.ToString());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Logger.LogInformation("Completed!");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private Dictionary<string, string> GetCombinedModules(JToken data, string module)
|
|
|
|
private Dictionary<string, string> GetCombinedModules(JToken data, string module)
|
|
|
|
@ -390,6 +410,7 @@ namespace Volo.Abp.Cli.Commands
|
|
|
|
|| returnValueType.StartsWith("System.Collections")
|
|
|
|
|| returnValueType.StartsWith("System.Collections")
|
|
|
|
|| returnValueType == "System.String"
|
|
|
|
|| returnValueType == "System.String"
|
|
|
|
|| returnValueType == "System.Void"
|
|
|
|
|| returnValueType == "System.Void"
|
|
|
|
|
|
|
|
|| returnValueType.Contains("System.Net.HttpStatusCode?")
|
|
|
|
|| returnValueType.Contains("IActionResult")
|
|
|
|
|| returnValueType.Contains("IActionResult")
|
|
|
|
|| returnValueType.Contains("ActionResult")
|
|
|
|
|| returnValueType.Contains("ActionResult")
|
|
|
|
|| returnValueType.Contains("IStringValueType")
|
|
|
|
|| returnValueType.Contains("IStringValueType")
|
|
|
|
@ -402,7 +423,12 @@ namespace Volo.Abp.Cli.Commands
|
|
|
|
var typeNameSplit = returnValueType.Split(".");
|
|
|
|
var typeNameSplit = returnValueType.Split(".");
|
|
|
|
var typeName = typeNameSplit[typeNameSplit.Length - 1];
|
|
|
|
var typeName = typeNameSplit[typeNameSplit.Length - 1];
|
|
|
|
|
|
|
|
|
|
|
|
var typeModelName = typeName.Replace("<", "").Replace(">", "").PascalToKebabCase() + ".ts";
|
|
|
|
if (typeName.Contains("HttpStatusCode"))
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var typeModelName = typeName.Replace("<", "").Replace(">", "").Replace("?","").PascalToKebabCase() + ".ts";
|
|
|
|
|
|
|
|
|
|
|
|
var path = $"src/app/{rootPath}/shared/models/{typeModelName}";
|
|
|
|
var path = $"src/app/{rootPath}/shared/models/{typeModelName}";
|
|
|
|
|
|
|
|
|
|
|
|
|