using System.Text.RegularExpressions; using JNPF.Common.Configuration; namespace Tnb.Vengine; /// /// /// public class TemplateContext { #region 模板文件名,同时作为模板Key public const string KeyAppService = "AppService"; public const string KeyDto = "AppServiceDto"; public const string KeyEntity = "EntityInfo"; public const string KeyEntityDto = "EntityDto"; public const string KeyEntityAppService = "EntityController"; public const string KeyEntityPageVue = "EntityPageVue"; public const string KeyTableForeigns = "TableForeigns"; public const string KeyVmodel = "Vmodel"; #endregion 模板文件名,同时作为模板Key /// /// /// public TemplateContext(string moduleCode) { #if DEBUG BasePath = CodeHelper.GetSolutionDirectoryPath(false)!; #else BasePath = FileVariable.GenerateCodePath; #endif ModuleCode = moduleCode; } /// /// /// public string BasePath { get; set; } private string ModuleCode { get; } private string ModulePath => Path.Combine(BasePath, $"{ModuleCode}.Acmen"); private string UiProjPath => Path.Combine(BasePath, "ItMgrWeb"); /// /// /// public string AppServicePath => Path.Combine(ModulePath, "AppServices"); /// /// /// public string PagePath => Path.Combine(UiProjPath, "src", "views"); /// /// /// /// /// /// /// /// public string GetCsName(string name) { name = Regex.Replace(name.TrimStart('@', '.'), @"[^\w]", "_"); name = char.IsLetter(name, 0) ? name : string.Concat("_", name); IEnumerable arrs = name.Split('_'); //if (arrs.Count() > 1 && Config.IsRemovePrefix) { arrs = arrs.Skip(1); } //if (Config.IsSnakeCaseToPascalCase) { arrs = arrs.Select(a => a.ToPascalCase()); } if (arrs.Count() > 0) { arrs = arrs.Select(a => a.ToPascal()); } return string.Join("", arrs); } } public enum eLambdaType { Join, ManyToMany, Where, MemberBinding, OneToMany }