public static ApiControllerTemplate Generate(Table table) { var config = new ApiControllerTemplate { Namespace = table.SchemaName, TypeName = table.Name.LegalCsharpName, IncludeUniqueKeyActions = table.HasUniqueKeys, GetByUniqueKeyTemplates = new List <GetByIdApiActionTemplate>(), EditByUniqueKeyTemplates = new List <EditApiActionTemplate>(), DeleteByUniqueKeyTemplates = new List <DeleteApiActionTemplate>(), ListApiActionTemplate = ConfigureListApiActionTemplate(table), GetByIdApiActionTemplate = ConfigureGetByIdApiActionTemplate(table), CreateApiActionTemplate = ConfigureCreateApiActionTemplate(table), EditApiActionTemplate = ConfigureEditApiActionTemplate(table), DeleteApiActionTemplate = ConfigureDeleteApiActionTemplate(table) }; if (table.HasUniqueKeys) { var uniqueKeyGroups = table.Constraints.Where(x => x.ConstraintType == ConstraintType.Unique).ToList().GroupBy(x => x.ConstraintName); foreach (var group in uniqueKeyGroups) { config.GetByUniqueKeyTemplates.Add(ConfigureGetByUniqueKeyTemplate(table, group)); config.EditByUniqueKeyTemplates.Add(ConfigureEditByUniqueKeyTemplate(table, group)); config.DeleteByUniqueKeyTemplates.Add(ConfigureDeleteByUniqueKeyTemplate(table, group)); } } return(config); }
public void MongodbCreate_Test_Code() { var types = BaseTemplate.GetMongoEntityTypes(); var typeService = Resolve <ITypeService>(); foreach (var type in types) { ServcieTemplate.Create(type); RepositroyTemplate.Create(type); ApiControllerTemplate.CreateApiController(type, "ObjectId"); } }
public void SqlServer_Code() { Resolve <ITableService>().Init(); var tables = Resolve <ITableService>().GetList(r => r.TableType == TableType.SqlServer); var typeService = Resolve <ITypeService>(); foreach (var item in tables) { var type = item.Type.GetTypeByFullName(); Assert.NotNull(type); ServcieTemplate.Create(type); RepositroyTemplate.Create(type); ApiControllerTemplate.CreateApiController(type, "long"); } }
public void TestCreateCode_testSingle() { var type = typeof(PostRole); // var type = typeof(IAutoReportService); ServcieTemplate.Create(type); RepositroyTemplate.Create(type); ApiControllerTemplate.CreateApiController(type, "ObjectId"); var typeService = Resolve <ITypeService>(); // AdminControllerTemplate.Create(type, "ObjectId", typeService); // type = typeof(CustomShopRecord); //ServcieTemplate.Create(type); //RepositroyTemplate.Create(type); //ApiControllerTemplate.CreateApiController(type, "ObjectId"); }
public static string Render(ApiControllerTemplate configuration) { var template = new Template(TemplateContent.ApiController, StartDelimiter, EndDelimiter); template.Add(SharedTemplateKeys.GeneratedCodeDisclaimer, TemplateContent.GeneratedCodeDisclaimer); template.Add(SharedTemplateKeys.ObjectNamespace, configuration.Namespace); template.Add(SharedTemplateKeys.ObjectTypeName, configuration.TypeName); if (configuration.IncludeUniqueKeyActions) { var getByUniqueKeyActionsBuilder = new StringBuilder(); foreach (var item in configuration.GetByUniqueKeyTemplates) { getByUniqueKeyActionsBuilder.AppendLine(RenderGetByUniqueKeyAction(item, configuration.Namespace, configuration.TypeName)); } template.Add(SharedTemplateKeys.GetByUniqueKeyActions, getByUniqueKeyActionsBuilder.ToString()); var editByUniqueKeyActionsBuilder = new StringBuilder(); foreach (var item in configuration.EditByUniqueKeyTemplates) { editByUniqueKeyActionsBuilder.AppendLine(RenderEditByUniqueKeyAction(item, configuration.Namespace, configuration.TypeName)); } template.Add(SharedTemplateKeys.EditByUniqueKeyActions, editByUniqueKeyActionsBuilder.ToString()); var deleteByUniqueKeyActionsBuilder = new StringBuilder(); foreach (var item in configuration.DeleteByUniqueKeyTemplates) { deleteByUniqueKeyActionsBuilder.AppendLine(RenderDeleteByUniqueKeyAction(item, configuration.Namespace, configuration.TypeName)); } template.Add(SharedTemplateKeys.DeleteByUniqueKeyActions, deleteByUniqueKeyActionsBuilder.ToString()); } else { template.Add(SharedTemplateKeys.GetByUniqueKeyActions, $"{Tab}{Tab}// No {nameof(SharedTemplateKeys.GetByUniqueKeyActions)} generated"); template.Add(SharedTemplateKeys.EditByUniqueKeyActions, $"{Tab}{Tab}// No {nameof(SharedTemplateKeys.EditByUniqueKeyActions)} generated"); template.Add(SharedTemplateKeys.DeleteByUniqueKeyActions, $"{Tab}{Tab}// No {nameof(SharedTemplateKeys.DeleteByUniqueKeyActions)} generated"); } template.Add(SharedTemplateKeys.ListAction, RenderListAction(configuration.ListApiActionTemplate, configuration.Namespace, configuration.TypeName)); template.Add(SharedTemplateKeys.GetByIdAction, RenderGetByIdAction(configuration.GetByIdApiActionTemplate, configuration.Namespace, configuration.TypeName)); template.Add(SharedTemplateKeys.CreateAction, RenderCreateAction(configuration.CreateApiActionTemplate, configuration.Namespace, configuration.TypeName)); template.Add(SharedTemplateKeys.EditAction, RenderEditAction(configuration.EditApiActionTemplate, configuration.Namespace, configuration.TypeName)); template.Add(SharedTemplateKeys.DeleteAction, RenderDeleteAction(configuration.DeleteApiActionTemplate, configuration.Namespace, configuration.TypeName)); return(template.Render()); }
public void MongodbCreate_Code() { Resolve <ITableService>().Init(); var tables = Resolve <ITableService>().GetList(r => r.TableType == TableType.Mongodb); tables = tables.Where(r => !r.Type.Contains("Base")).ToList(); var typeService = Resolve <ITypeService>(); foreach (var item in tables) { var type = item.Type.GetTypeByFullName(); Assert.NotNull(type); ServcieTemplate.Create(type); RepositroyTemplate.Create(type); ApiControllerTemplate.CreateApiController(type, "ObjectId"); } }
private void CreateType(Module module, string moduleFolderBusinesses, string moduleFolderContracts, string moduleFolderControllers, GeneratorType type) { // create controller var act = new ApiControllerTemplate(projectName, type, module.ModuleName); TransformText(act, $"{moduleFolderControllers}\\{type.Name}Controller.cs"); // create IBusiness interface for business class var ibt = new IBusinessTemplate(projectName, type, module.ModuleName); TransformText(ibt, $"{moduleFolderContracts}\\I{type.Name}Business.cs"); // create Business classes var bt = new BusinessTemplate(projectName, type, module.ModuleName); TransformText(bt, $"{moduleFolderBusinesses}\\{type.Name}Business.cs"); }
public void CreateCode(Type type, string entityPath) { var keyIdType = Reflection.GetMemberType(type, "Id"); if (keyIdType == null) { Console.WriteLine($@"{type.Name}非实体,请重新输入"); return; } var idType = "long"; if (keyIdType.Name.Contains("ObjectId")) { idType = "ObjectId"; } ServcieTemplate.Create(type, idType, entityPath); //Console.WriteLine(@"服务代码已生成"); RepositroyTemplate.Create(type, idType, entityPath); //Console.WriteLine(@"仓储代码已生成"); ApiControllerTemplate.CreateApiController(type, idType, entityPath); //Console.WriteLine(@"Api接口代码已生成"); }