public static string GenerateCode(ICodeTemplateInfo codeTemplateInfo) { string code = codeTemplateInfo.TemplateInfo.TemplateCode+""; code = code.Replace("$ASSEMBLYNAME$", codeTemplateInfo.PersistentAssemblyInfo.Name); code = code.Replace("$CLASSNAME$", codeTemplateInfo.TemplateInfo.Name); return code; }
public static void CreateDefaultTemplate(this ICodeTemplateInfo codeTemplateInfo, TemplateType templateType, CodeDomProvider codeDomProvider) { var codeTemplateType = XafTypesInfo.Instance.FindBussinessObjectType <ICodeTemplate>(); var session = codeTemplateInfo.Session; var defaultTemplate = FindDefaultTemplate(templateType, session, codeTemplateType, codeDomProvider); if (defaultTemplate == null) { defaultTemplate = (ICodeTemplate)codeTemplateType.CreateInstance(session); defaultTemplate.IsDefault = true; defaultTemplate.TemplateType = templateType; defaultTemplate.CodeDomProvider = codeDomProvider; defaultTemplate.SetDefaults(); } codeTemplateInfo.CodeTemplate = defaultTemplate; }
public static void CloneProperties(this ICodeTemplateInfo codeTemplateInfo) { var templateInfo = codeTemplateInfo.TemplateInfo ?? Create(codeTemplateInfo); codeTemplateInfo.TemplateInfo = templateInfo; var infos = typeof(ITemplateInfo).GetProperties().Select(propertyInfo => new { Value = propertyInfo.GetValue(codeTemplateInfo.CodeTemplate, null), PropertyInfo = propertyInfo }); foreach (var info in infos) { templateInfo.SetPropertyValue(info.PropertyInfo.Name, info.Value); } }
public static void CloneProperties(this ICodeTemplateInfo codeTemplateInfo) { var templateInfo = codeTemplateInfo.TemplateInfo ?? XPObjectSpace.FindObjectSpaceByObject(codeTemplateInfo).CreateWCObject <ITemplateInfo>(); codeTemplateInfo.TemplateInfo = templateInfo; var type = templateInfo.GetType(); var infos = typeof(ITemplateInfo).GetProperties().Select(propertyInfo => new { Value = propertyInfo.GetValue(codeTemplateInfo.CodeTemplate, null), TypeInfoPropertyInfo = type.GetProperty(propertyInfo.Name) }); foreach (var info in infos) { info.TypeInfoPropertyInfo.SetValue(templateInfo, info.Value, null); } }
public static ObjectType ToObjectType(ICodeTemplateInfo info) { switch (info.FileName.ToLower()) { case "editableroot.cst": return ObjectType.EditableRoot; case "editablerootlist.cst": return ObjectType.EditableRootList; case "editablechild.cst": return ObjectType.EditableChild; case "editablechildlist.cst": return ObjectType.EditableChildList; case "editableswitchable.cst": return ObjectType.EditableSwitchable; case "namevaluelist.cst": return ObjectType.NameValueList; case "readonlyroot.cst": return ObjectType.ReadOnlyRoot; case "readonlyrootlist.cst": return ObjectType.ReadOnlyRootList; case "readonlychild.cst": return ObjectType.ReadOnlyChild; case "readonlychildlist.cst": return ObjectType.ReadOnlyChildList; } throw new ArgumentOutOfRangeException("Template is not an Object Type template"); }
public static bool IsObjectType(ICodeTemplateInfo info) { switch (info.FileName.ToLower()) { case "editableroot.cst": case "editablerootlist.cst": case "editablechild.cst": case "editablechildlist.cst": case "editableswitchable.cst": case "namevaluelist.cst": case "readonlyroot.cst": case "readonlyrootlist.cst": case "readonlychild.cst": case "readonlychildlist.cst": return true; default: return false; } }
static ITemplateInfo CreateWcObject(ICodeTemplateInfo codeTemplateInfo) { var type = WCTypesInfo.Instance.FindBussinessObjectType(typeof(ITemplateInfo)); return (ITemplateInfo) Activator.CreateInstance(type,new object[]{codeTemplateInfo.Session}); }
static ITemplateInfo Create(ICodeTemplateInfo codeTemplateInfo) { var type = XafTypesInfo.Instance.FindBussinessObjectType <ITemplateInfo>(); return((ITemplateInfo)type.CreateInstance(codeTemplateInfo.Session)); }
static ITemplateInfo CreateWcObject(ICodeTemplateInfo codeTemplateInfo) { var type = WCTypesInfo.Instance.FindBussinessObjectType(typeof(ITemplateInfo)); return((ITemplateInfo)type.CreateInstance(new object[] { codeTemplateInfo.Session })); }