Example #1
0
        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);
        }
Example #2
0
        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);
        }
Example #3
0
        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);
        }
Example #4
0
        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,
         });
     }
 }
Example #6
0
        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);
        }
Example #7
0
        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);
        }
Example #9
0
 public static void LoadTemplateFromTemplateData(SimpleTemplateData data)
 {
     data.HtmlNodeList = HtmlHelper.ParseHtml(Path.Combine(data.FilePath, data.FileName));
 }