示例#1
0
        public static bool article_Save(this TM_FileStorage tmFileStorage, TeamMentor_Article article)
        {
            editArticles.demand();
            var libraryId = article.Metadata.Library_Id;

            var guidanceXmlPath = tmFileStorage.getXmlFilePathForGuidanceId(article.Metadata.Id, libraryId);

            if (guidanceXmlPath.valid())
            {
                "Saving GuidanceItem {0} to {1}".info(article.Metadata.Id, guidanceXmlPath);
                article.saveAs(guidanceXmlPath);
                return(guidanceXmlPath.fileExists());
            }
            return(true);
        }
示例#2
0
        public static bool xmlDB_Save_Article(this TeamMentor_Article article, Guid libraryId, TM_Xml_Database tmDatabase)
        {
            if (libraryId == Guid.Empty)
            {
                "[xmlDB_Save_GuidanceItem] no LibraryId was provided".error();
                return(false);
            }
            var xmlLibraries    = TM_Xml_Database.Path_XmlLibraries;
            var guidanceXmlPath = tmDatabase.getXmlFilePathForGuidanceId(article.Metadata.Id, libraryId);

            "Saving GuidanceItem {0} to {1}".info(article.Metadata.Id, guidanceXmlPath);

            //tidy the html
            if (article.Content.DataType.lower() == "html")
            {
                var cdataContent = article.Content.Data.Value.replace("]]>", "]] >"); // xmlserialization below will break if there is a ]]>  in the text
                //cdataContent = cdataContent.fixXmlDoubleEncodingIssue();
                var tidiedHtml = cdataContent.tidyHtml();

                article.Content.Data.Value = tidiedHtml;
                if (article.serialize(false).inValid())        //see if the tidied content can be serialized  and if not use the original data
                {
                    article.Content.Data.Value = cdataContent;
                }
            }
            article.Metadata.Library_Id = libraryId;        //ensure the LibraryID is correct

            if (article.serialize(false).valid())           // make sure the article can be serilialized  correctly
            {
                article.saveAs(guidanceXmlPath);
                //add it to in Memory cache
                article.update_Cache_GuidanceItems(tmDatabase);
                return(guidanceXmlPath.fileExists());
            }
            return(false);
        }