添加代码生成器模块service实现
This commit is contained in:
@@ -3,40 +3,33 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Yi.Framework.Common.Helper;
|
||||
|
||||
namespace Yi.Framework.Template.Abstract
|
||||
{
|
||||
public abstract class AbstractTemplateProvider : ITemplateProvider
|
||||
{
|
||||
public string BuildPath { get; set; }
|
||||
public string TemplatePath { get; set; }
|
||||
public string BakPath { get; set; }
|
||||
private Dictionary<string, string> TemplateDic { get; set; }
|
||||
public virtual string? BuildPath { get; set; }
|
||||
public string? TemplatePath { get; set; }
|
||||
public string? BakPath { get; set; }
|
||||
protected Dictionary<string, string> TemplateDic { get; set; } = new Dictionary<string, string>();
|
||||
|
||||
public void Bak() {
|
||||
|
||||
}
|
||||
public abstract void Bak();
|
||||
|
||||
public virtual void Build()
|
||||
{
|
||||
var templateData = GetTemplateData();
|
||||
foreach (var ky in TemplateDic)
|
||||
{
|
||||
templateData = templateData.Replace(ky.Key, ky.Value);
|
||||
}
|
||||
File.WriteAllText(BuildPath, templateData);
|
||||
}
|
||||
public abstract void Build();
|
||||
|
||||
|
||||
protected virtual string GetTemplateData()
|
||||
{
|
||||
if (TemplatePath is null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(TemplatePath));
|
||||
}
|
||||
return File.ReadAllText(TemplatePath);
|
||||
}
|
||||
|
||||
protected void AddTemplateDic(string oldStr, string newStr)
|
||||
protected void AddTemplateDic(string oldStr, string newStr)
|
||||
{
|
||||
TemplateDic=new Dictionary<string, string>();
|
||||
|
||||
TemplateDic.Add(oldStr, newStr);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,17 +11,17 @@ namespace Yi.Framework.Template.Abstract
|
||||
/// <summary>
|
||||
/// 构建生成路径
|
||||
/// </summary>
|
||||
string BuildPath { get; set; }
|
||||
string? BuildPath { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 模板文件路径
|
||||
/// </summary>
|
||||
string TemplatePath { get; set; }
|
||||
string? TemplatePath { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 备份文件路径
|
||||
/// </summary>
|
||||
string BakPath { get; set; }
|
||||
string? BakPath { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -1,12 +1,62 @@
|
||||
//using System;
|
||||
//using System.Collections.Generic;
|
||||
//using System.Linq;
|
||||
//using System.Text;
|
||||
//using System.Threading.Tasks;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Yi.Framework.Template.Const;
|
||||
|
||||
//namespace Yi.Framework.Template.Abstract
|
||||
//{
|
||||
// public abstract ProgramTemplateProvider: AbstractTemplateProvider
|
||||
// {
|
||||
// }
|
||||
//}
|
||||
namespace Yi.Framework.Template.Abstract
|
||||
{
|
||||
|
||||
public abstract class ProgramTemplateProvider : AbstractTemplateProvider
|
||||
{
|
||||
public ProgramTemplateProvider(string modelName, string entityName)
|
||||
{
|
||||
ModelName = modelName;
|
||||
EntityName = entityName;
|
||||
base.AddTemplateDic(TemplateConst.EntityName, EntityName);
|
||||
base.AddTemplateDic(TemplateConst.ModelName, ModelName);
|
||||
}
|
||||
/// <summary>
|
||||
/// 实体名称
|
||||
/// </summary>
|
||||
public string EntityName { get; set; }
|
||||
/// <summary>
|
||||
/// 模块名称
|
||||
/// </summary>
|
||||
public string ModelName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 重写构建路径,替换实体名称与模块名称
|
||||
/// </summary>
|
||||
public override string? BuildPath
|
||||
{
|
||||
get => base.BuildPath;
|
||||
set
|
||||
{
|
||||
value = value!.Replace(TemplateConst.EntityName, EntityName);
|
||||
value = value.Replace(TemplateConst.ModelName, ModelName);
|
||||
base.BuildPath = value;
|
||||
}
|
||||
}
|
||||
|
||||
public override void Build()
|
||||
{
|
||||
if (BuildPath is null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(BuildPath));
|
||||
}
|
||||
var templateData = GetTemplateData();
|
||||
foreach (var ky in TemplateDic)
|
||||
{
|
||||
templateData = templateData.Replace(ky.Key, ky.Value);
|
||||
}
|
||||
File.WriteAllText(BuildPath, templateData);
|
||||
}
|
||||
|
||||
public override void Bak()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user