public static Dictionary <string, SimpleTemplateData> BuildTemplateList() { var templateList = new Dictionary <string, SimpleTemplateData>(); if (!Directory.Exists(Settings.TemplateLocation)) { return(templateList); } var files = Directory.GetFiles(Settings.TemplateLocation); foreach (var file in files) { var fileInf = new FileInfo(file); if (fileInf.Extension == ".srtpl") { var templateData = new SimpleTemplateData { Name = Path.GetFileNameWithoutExtension(fileInf.Name), FileName = fileInf.Name, FilePath = fileInf.DirectoryName }; templateData.StyleFiles = new List <SimpleStyleData>(); templateList.Add(templateData.Name, templateData); } } return(templateList); }
public static void CopyStyleToTemplate(SimpleTemplateData data) { var styleContent = string.Empty; foreach (var style in data.StyleFiles) { styleContent += style.Content + Environment.NewLine; style.Node.Remove(); } if (string.IsNullOrEmpty(styleContent)) { return; } var headNode = data.HtmlNodeList.FirstOrDefault(x => x.OriginalName == "head"); if (headNode == null) { return; } var styleNode = new HtmlNode(HtmlNodeType.Element, headNode.OwnerDocument, SLContext.CurrentCtx.TemplateNodeId); styleNode.Name = "style"; styleNode.InnerHtml = styleContent; headNode.AppendChild(styleNode); }
public static SimpleTemplateData BuildTemplate(string templateName) { if (string.IsNullOrEmpty(templateName)) { return(null); } var data = new SimpleTemplateData(); if (Settings.TemplateList.ContainsKey(templateName) && Settings.TemplateList[templateName].FileExists) { data = Settings.TemplateList[templateName]; LoadTemplateFromTemplateData(data); } else { var templateFile = Path.Combine(SLContext.Config.ProjectPath, templateName); data = TemplateFileHelper.LoadTemplateFromFile(templateFile); if (!data.FileExists) { SLLog.WriteWarning("BuildTemplate", "TemplateBuilder", "Template wurde nicht gefunden!"); return(null); } } data.StyleFiles = LoadStyleFromTemplate(data); CopyStyleToTemplate(data); return(data); }
public static SimpleTemplateData LoadTemplateFromFile(string file) { var fileInf = new FileInfo(file); var templateData = new SimpleTemplateData { Name = Path.GetFileNameWithoutExtension(fileInf.Name), FileName = fileInf.Name, FilePath = fileInf.DirectoryName }; templateData.HtmlNodeList = HtmlHelper.ParseHtml(file); return(templateData); }
public void SaveTemplate(SimpleTemplateData data) { try { } catch (Exception ex) { SLLog.WriteError(new LogData { Source = ToString(), FunctionName = "SaveTemplate Error!", Ex = ex, }); } }
public static string SaveTemplate(SimpleTemplateData template) { var validationResult = TemplateValidator.ValidateTemplate(template); if (!string.IsNullOrEmpty(validationResult)) { return(validationResult); } var templatePath = Path.Combine(Settings.TemplateLocation, template.Name); if (!Directory.Exists(templatePath)) { Directory.CreateDirectory(templatePath); } return(string.Empty); }
public static List <SimpleStyleData> LoadStyleFromTemplate(SimpleTemplateData data) { var styleList = new List <SimpleStyleData>(); var linkNodeList = data.HtmlNodeList.Where(x => x.OriginalName == "link"); foreach (HtmlNode node in linkNodeList) { foreach (HtmlAttribute attr in node.Attributes) { if (attr.OriginalName == "rel" && attr.Value == "stylesheet") { var stylePathAttr = node.Attributes.FirstOrDefault(x => x.OriginalName == "href"); if (stylePathAttr.Value.StartsWith("http")) { break; } var styleFilePath = Path.Combine(SLContext.Config.ProjectPath, stylePathAttr.Value); if (!File.Exists(styleFilePath)) { break; } var styleFileInfo = new FileInfo(styleFilePath); styleList.Add(new SimpleStyleData { Name = Path.GetFileNameWithoutExtension(styleFileInfo.Name), FileName = styleFileInfo.Name, FilePath = styleFileInfo.DirectoryName, Content = FileHelper.FileToString(styleFilePath), Node = node, }); break; } } } return(styleList); }
public static string ValidateTemplate(SimpleTemplateData template) { if (string.IsNullOrEmpty(Settings.TemplateLocation)) { return("TemplateLocation not set!"); } if (Directory.Exists(Settings.TemplateLocation)) { return(string.Format("No directory '{0}' found!", Settings.TemplateLocation)); } if (template == null) { return("TemplateData is null!"); } if (string.IsNullOrEmpty(template.Name)) { return("Templatename is null or empty!"); } return(string.Empty); }
public static void LoadTemplateFromTemplateData(SimpleTemplateData data) { data.HtmlNodeList = HtmlHelper.ParseHtml(Path.Combine(data.FilePath, data.FileName)); }