public static string getXmlFilePathForGuidanceId(this TM_FileStorage tmFileStorage, Guid guidanceItemId, Guid libraryId) { var tmFileStorate = TM_FileStorage.Current; //first see if we already have this mapping if (tmFileStorate.GuidanceItems_FileMappings.hasKey(guidanceItemId)) { //"in getXmlFilePathForGuidanceId, found id in current mappings: {0}".info( guidanceItemId); return(tmFileStorate.GuidanceItems_FileMappings[guidanceItemId]); } //then update the GuidanceItems_FileMappings dictionary if (libraryId == Guid.Empty) { "[getXmlFilePathForGuidanceId] When creating a new GuidanceItem a libraryId must be provided".error(); return(null); } var tmLibrary = tmFileStorage.tmXmlDatabase().tmLibrary(libraryId); if (tmLibrary == null) { "[getXmlFilePathForGuidanceId] When creating a new GuidanceItem could not find library for libraryId: {0}".error(libraryId); return(null); } var libraryPath = tmFileStorage.xmlDB_Path_Library_RootFolder(tmLibrary); var newArticleFolder = libraryPath.pathCombine(TMConsts.DEFAULT_ARTICLE_FOLDER_NAME); var xmlPath = newArticleFolder.createDir() .pathCombine("{0}.xml".format(guidanceItemId)); "in getXmlFilePathForGuidanceId, no previous mapping found so adding new GuidanceItems_FileMappings for :{0}".info(xmlPath); tmFileStorate.GuidanceItems_FileMappings.add(guidanceItemId, xmlPath); //add it to the file_mappings dictionary so that we know it for next time return(xmlPath); }
public static string Get_Path_To_File(this TM_FileStorage tmFileStorage, string libraryName, string fileName) { var library = tmFileStorage.tmXmlDatabase().tmLibrary(libraryName); if (library.notNull()) { var filePath = tmFileStorage.xmlDB_Path_Library_RootFolder(library).pathCombine("_Images").pathCombine(fileName); if (filePath.fileExists()) { return(filePath); } } return(null); }
public static bool upload_File_to_Library(this TM_FileStorage tmFileStorage, Guid libraryId, string filename, byte[] fileContents) { UserRole.Admin.demand(); var targetLibrary = tmFileStorage.tmXmlDatabase().tmLibrary(libraryId); if (targetLibrary.notNull()) { var targetFolder = tmFileStorage.xmlDB_Path_Library_RootFolder(targetLibrary) .pathCombine("_Images") .createDir(); var targetFile = targetFolder.pathCombine(filename.safeFileName()); return(fileContents.saveAs(targetFile).fileExists()); } return(false); }
public static string install_LibraryFromZip(this TM_FileStorage tmFileStorage, string pathToGitHubZipBall, string libraryName) { UserGroup.Admin.assert(); try { var tmXmlDatabase = tmFileStorage.tmXmlDatabase(); if (tmFileStorage.isNull() || tmXmlDatabase.isNull()) { return(null); } var tmLibrary = tmXmlDatabase.tmLibrary(libraryName); if (tmLibrary.notNull()) { "[Install_LibraryFromZip] Skyping library {0} because it already existed".debug(libraryName); return(tmFileStorage.xmlDB_Path_Library_RootFolder(tmLibrary)); } var tmLibraries_Before = tmXmlDatabase.tmLibraries(); var result = tmFileStorage.xmlDB_Libraries_ImportFromZip(pathToGitHubZipBall, ""); var tmLibraries_After = tmXmlDatabase.tmLibraries(); var installedLibrary = tmXmlDatabase.tmLibrary(libraryName); Assert.IsTrue(result, "xmlDB_Libraries_ImportFromZip"); Assert.IsNotEmpty(tmLibraries_After, "Libraries should be there after install"); Assert.AreNotEqual(tmLibraries_After.size(), tmLibraries_Before.size(), "Libraries size should be different before and after"); Assert.IsNotNull(installedLibrary, "Could not find installed library: {0}".format(libraryName)); Assert.AreEqual(installedLibrary.Caption, libraryName, "After install library names didn't match"); return(tmFileStorage.xmlDB_Path_Library_RootFolder(installedLibrary)); } finally { UserGroup.None.assert(); } }