feat: webfrist基本流程已完成

This commit is contained in:
陈淳
2023-09-27 18:01:10 +08:00
parent 8bc2db1e6e
commit f095fde5a7
31 changed files with 993 additions and 1098 deletions

View File

@@ -22,25 +22,29 @@ namespace Yi.Framework.Module.WebFirstManager.Domain
public async Task BuildWebToCodeAsync(TableAggregateRoot tableEntity)
{
var templates = await _repository.GetListAsync();
var fields = await _fieldRepository.GetListAsync();
foreach (var template in templates)
{
string templateStr = template.TemplateStr;
var handledTempalte = new HandledTemplate();
handledTempalte.TemplateStr= template.TemplateStr;
handledTempalte.BuildPath = template.BuildPath;
foreach (var templateHandler in _templateHandlers)
{
templateHandler.SetTable(tableEntity);
templateStr = templateHandler.Invoker(templateStr);
handledTempalte = templateHandler.Invoker(handledTempalte.TemplateStr, handledTempalte.BuildPath);
}
await BuildToFileAsync(handledTempalte);
await BuildToFileAsync(templateStr, template);
}
}
private async Task BuildToFileAsync(string str, TemplateEntity templateEntity)
private async Task BuildToFileAsync(HandledTemplate handledTemplate)
{
//await File.WriteAllTextAsync(str, templateEntity.BuildPath);
if (!Directory.Exists(Path.GetDirectoryName(handledTemplate.BuildPath)))
{
Directory.CreateDirectory(Path.GetDirectoryName(handledTemplate.BuildPath));
}
await File.WriteAllTextAsync(handledTemplate.BuildPath,handledTemplate.TemplateStr);
}

View File

@@ -1,11 +1,11 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using EasyTool;
using Furion;
using Furion.DatabaseAccessor;
using Furion.DependencyInjection;
@@ -82,7 +82,7 @@ namespace Yi.Framework.Module.WebFirstManager.Domain
{
var fieldEntity = new FieldEntity();
fieldEntity.Name = propertyInfo.Name;
var enumName = typeof(FieldTypeEnum).GetFields(BindingFlags.Static | BindingFlags.Public).Where(x => x.GetCustomAttribute<DescriptionAttribute>()?.Description == propertyInfo.PropertyType.Name).FirstOrDefault()?.Name;
var enumName = typeof(FieldTypeEnum).GetFields(BindingFlags.Static | BindingFlags.Public).Where(x => x.GetCustomAttribute<DisplayAttribute>()?.Name== propertyInfo.PropertyType.Name).FirstOrDefault()?.Name;
if (enumName is null)
{
fieldEntity.FieldType = FieldTypeEnum.String;
@@ -91,7 +91,7 @@ namespace Yi.Framework.Module.WebFirstManager.Domain
}
else
{
fieldEntity.FieldType = EnumUtil.Parse<FieldTypeEnum>(enumName);
fieldEntity.FieldType =EasyTool.EnumUtil.Parse<FieldTypeEnum>(enumName);
}
var colum = propertyInfo.GetCustomAttribute<SugarColumn>();