feat: 添加webfirst字段生成器

This commit is contained in:
陈淳
2023-09-22 10:25:05 +08:00
parent 8a90f9d089
commit a15a374fb0
31 changed files with 327 additions and 247 deletions

View File

@@ -1,20 +1,54 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Text;
using EasyTool;
using Furion.DependencyInjection;
namespace Yi.Framework.Module.WebFirstManager.Handler
{
internal class FieldTemplateHandler : TemplateHandlerBase, ITemplateHandler,ISingleton
public class FieldTemplateHandler : TemplateHandlerBase, ITemplateHandler, ISingleton
{
public string Invoker(string str)
{
//从数据库中获取到全部字段,然后根据字段生成字符串,进行替换
return str.Replace("@field", "");
return str.Replace("@field", BuildFields());
}
/// <summary>
/// 生成Fields
/// </summary>
/// <returns></returns>
public string BuildFields()
{
StringBuilder fieldStrs = new StringBuilder();
foreach (var field in Fields)
{
var typeStr = EnumUtil.GetDescriptionByValue(field.FieldType);
var nameStr = field.Name;
//添加备注
if (string.IsNullOrEmpty(field.Description))
{
var desStr = "/// <summary>" +
@$"///{field.Description}" +
"/// </summary>";
fieldStrs.AppendLine(desStr);
}
//添加长度
if (field.Length != 0)
{
var lengthStr = $"[SugarColumn(Length ={field.Length})]";
fieldStrs.AppendLine(lengthStr);
}
//添加字段
var fieldStr = $"public {typeStr} {nameStr} {{ get; set; }}";
fieldStrs.AppendLine(fieldStr);
}
return fieldStrs.ToString();
}
}
}