@{
ModelData modelData = Model;
NamespaceObject namespaceObject = modelData.NamespaceObject;
SysTableSchemaViewEntity[] sysTableSchemas = modelData.sysTableSchemas;
ClassInfo classInfo= modelData.ClassInfos.FirstOrDefault();
//ClassInfo classInfo= modelData.ClassInfos.Where(x=>x.ClassName=="SecurityUserService").FirstOrDefault();
}
using CloudBuilder.Core.DatabaseAccessor;
using CloudBuilder.Core.Policy;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using System.Transactions;
using CloudBuilder.Core.Service;
@{
if(classInfo.Usings!=null && classInfo.Usings.Length>0)
{
for (var i = 0; i < classInfo.Usings.Length; i++)
{
if(classInfo.Usings[i]=="CloudBuilder.Core.Service") continue;
using @classInfo.Usings[i];
}
}
}
namespace @namespaceObject.Namespace
{
[Authorize(AuthorizePolicy.PERMISSION)]
[ApiController]
[Route("[controller]/[action]")]
public class @{@classInfo.ClassName.Replace("Service", "")}Controller : ControllerBase
{
private readonly IApplicationService service;
private readonly @{@classInfo.InterfaceName} @classInfo.ClassName.StringToProtectedProerty();
public @{@classInfo.ClassName.Replace("Service", "")}Controller(IApplicationService service, @{@classInfo.InterfaceName} @classInfo.ClassName.StringToProtectedProerty())
{
this.service = service;
this.@classInfo.ClassName.StringToProtectedProerty()= @classInfo.ClassName.StringToProtectedProerty();
}
@{
if(classInfo.ClassMethodInfos!=null && classInfo.ClassMethodInfos.Length>0 && classInfo.ClassMethodInfos[0].Parameters!=null)
{
for (var j= 0; j< classInfo.ClassMethodInfos.Length; j++)
{
//没有参数的情况=======================================
if(classInfo.ClassMethodInfos[j].Parameters.Length==0)
{
if(classInfo.ClassMethodInfos[j].AuthorizeName!=null)
{
@classInfo.ClassMethodInfos[j].AuthorizeName
}
if(classInfo.ClassMethodInfos[j].PermissionOperate!=null)
{
@{ @string.Format(classInfo.ClassMethodInfos[j].PermissionOperate,"\""+@classInfo.ClassMethodInfos[j].PermissionOperateAttribute.Name+"\"", "\""+@classInfo.ClassMethodInfos[j].PermissionOperateAttribute.Operate.ToString()+"\"")
}
}
if(classInfo.ClassMethodInfos[j].HttpName!=null)
{
@classInfo.ClassMethodInfos[j].HttpName
}
if(classInfo.ClassMethodInfos[j].UnitOfWorkName!=null)
{
@classInfo.ClassMethodInfos[j].UnitOfWorkName
}
if(@classInfo.ClassMethodInfos[j].MethodReturnName=="Void")
{
//文本开始=================================================================================================================
public dynamic @{@classInfo.ClassMethodInfos[j].MethodName}()
{
try
{
@{ @classInfo.ClassName.StringToProtectedProerty()}.@{@classInfo.ClassMethodInfos[j].MethodName}();
return string.Empty;
}
catch (ValidatedException vex)
{
return vex;
}
catch (Exception ex)
{
return new ServiceErrorException(ex);
}
}
//文本结束=================================================================================================================
}
else
{
//文本开始=================================================================================================================
public dynamic @{@classInfo.ClassMethodInfos[j].MethodName}()
{
try
{
var result = @{@classInfo.ClassName.StringToProtectedProerty()}.@{@classInfo.ClassMethodInfos[j].MethodName}();
return result;
}
catch (ValidatedException vex)
{
return vex;
}
catch (Exception ex)
{
return new ServiceErrorException(ex);
}
}
//文本结束=================================================================================================================
}
}
//只有1个参数的情况============================================
if(classInfo.ClassMethodInfos[j].Parameters.Length>0)
{
//超过1个参数的情况,如果是get,不能用组合对象,如果是post,要重新组合一个类========================================
if(classInfo.ClassMethodInfos[j].Parameters.Length>1 && classInfo.ClassMethodInfos[j].HttpName!="[HttpGet]")
{
public class @{@classInfo.ClassMethodInfos[j].MethodName}CompositionData
{
for (var ik = 0; ik < classInfo.ClassMethodInfos[j].Parameters.Length; ik++){
string parameterTypeName=classInfo.ClassMethodInfos[j].Parameters[ik].ParameterTypeName;
if(classInfo.ClassMethodInfos[j].Parameters[ik].IsValueType)
{
if(classInfo.ClassMethodInfos[j].Parameters[ik].ParameterTypeName=="String")
parameterTypeName="string";
if(classInfo.ClassMethodInfos[j].Parameters[ik].ParameterTypeName=="Boolean")
parameterTypeName="bool";
}
public @parameterTypeName @classInfo.ClassMethodInfos[j].Parameters[ik].ParameterName { get; set; }
}
}
}
if(classInfo.ClassMethodInfos[j].AuthorizeName!=null)
{
@classInfo.ClassMethodInfos[j].AuthorizeName
}
if(classInfo.ClassMethodInfos[j].PermissionOperate!=null)
{
@{ @string.Format(classInfo.ClassMethodInfos[j].PermissionOperate,"\""+@classInfo.ClassMethodInfos[j].PermissionOperateAttribute.Name+"\"","\""+@classInfo.ClassMethodInfos[j].PermissionOperateAttribute.Operate.ToString()+"\"")
}
}
if(classInfo.ClassMethodInfos[j].HttpName!=null)
{
@classInfo.ClassMethodInfos[j].HttpName
}
if(classInfo.ClassMethodInfos[j].UnitOfWorkName!=null)
{
@classInfo.ClassMethodInfos[j].UnitOfWorkName
}
if(@classInfo.ClassMethodInfos[j].MethodReturnName=="Void")
{
string parametersName=@classInfo.ClassMethodInfos[j].Parameters[0].ParameterTypeName.Replace("String", "string").Replace("Boolean", "bool")+" "+@classInfo.ClassMethodInfos[j].Parameters[0].ParameterName;
if(classInfo.ClassMethodInfos[j].Parameters.Length>1 && classInfo.ClassMethodInfos[j].HttpName!="[HttpGet]")
{
parametersName=@classInfo.ClassMethodInfos[j].MethodName+"CompositionData compositionData";
}
else if(classInfo.ClassMethodInfos[j].Parameters.Length>1){
parametersName=string.Empty;
}
//文本开始================================================
public dynamic @{@classInfo.ClassMethodInfos[j].MethodName}(@{@parametersName}){
try
{
@{ @classInfo.ClassName.StringToProtectedProerty()}.@{@classInfo.ClassMethodInfos[j].MethodName}(@{for (var i = 0; i < classInfo.ClassMethodInfos[j].Parameters.Length; i++){
if(classInfo.ClassMethodInfos[j].Parameters.Length>1){
if(i>0){,}compositionData.@classInfo.ClassMethodInfos[j].Parameters[i].ParameterName
}
else{
@classInfo.ClassMethodInfos[j].Parameters[i].ParameterName
}
}});
return string.Empty;
}
catch (ValidatedException vex)
{
return vex;
}
catch (Exception ex)
{
return new ServiceErrorException(ex);
}
}
//文本结束===================================================
}
else
{
string parametersName=@classInfo.ClassMethodInfos[j].Parameters[0].ParameterTypeName.Replace("String", "string").Replace("Boolean", "bool")+" "+@classInfo.ClassMethodInfos[j].Parameters[0].ParameterName;
if(classInfo.ClassMethodInfos[j].Parameters.Length>1 && classInfo.ClassMethodInfos[j].HttpName!="[HttpGet]")
{
parametersName=@classInfo.ClassMethodInfos[j].MethodName+"CompositionData compositionData";
}
else if(classInfo.ClassMethodInfos[j].Parameters.Length>1)
{
parametersName=string.Empty;
for (var ikb = 0; ikb < classInfo.ClassMethodInfos[j].Parameters.Length; ikb++){
if(ikb>0)parametersName+=", ";
parametersName+=@classInfo.ClassMethodInfos[j].Parameters[ikb].ParameterTypeName.Replace("String", "string").Replace("Boolean", "bool")+" "+@classInfo.ClassMethodInfos[j].Parameters[ikb].ParameterName;
}
}
//文本开始================================================
public dynamic @{@classInfo.ClassMethodInfos[j].MethodName}(@{@parametersName})
{
try
{
var result = @{@classInfo.ClassName.StringToProtectedProerty()}.@{@classInfo.ClassMethodInfos[j].MethodName}(@{for (var i = 0; i < classInfo.ClassMethodInfos[j].Parameters.Length; i++){
if(classInfo.ClassMethodInfos[j].Parameters.Length>1){
if(i>0){,}if(classInfo.ClassMethodInfos[j].HttpName!="[HttpGet]"){compositionData.}@classInfo.ClassMethodInfos[j].Parameters[i].ParameterName
}
else{
@classInfo.ClassMethodInfos[j].Parameters[i].ParameterName
}
}});
return result;
}
catch (ValidatedException vex)
{
return vex;
}
catch (Exception ex)
{
return new ServiceErrorException(ex);
}
}
//文本结束===================================================
}
}
}
}
//下面}为代码段结束=================================================================================================================
}
}
}