/// <summary> /// put page/media /// </summary> private static byte[] _WikiPutFile(stDokuWiki.WikiEngine.WikiFile wiki, WikiFileType type, string namesspace, WikiFileMeta wfm = null) { WikiData wd = null; switch (namesspace.Contains(":")) { case true: { switch (type) { case WikiFileType.FileWriteMd: { if (wfm == null) { throw new WikiErrorPageException( string.Format( "not write {0}, input data is empty", namesspace ) ); } wd = wiki.PutFile(namesspace, null, wfm); break; } case WikiFileType.FileWriteBinary: { wd = wiki.GetFile(namesspace); break; } case WikiFileType.FileWriteAttic: { throw new WikiNotImplementPageException(WikiFileType.FileWriteAttic.ToString()); } case WikiFileType.FileWriteMeta: { throw new WikiNotImplementPageException(WikiFileType.FileWriteMeta.ToString()); } default: case WikiFileType.FileReadMd: case WikiFileType.FileReadMeta: case WikiFileType.FileReadAttic: case WikiFileType.FileReadBinary: { throw new WikiErrorPageException( string.Format( "type set is read, not support for this version, name space: {0}", namesspace ) ); } } break; } case false: { throw new WikiErrorPageException( string.Format( "not valid name space: {0}", namesspace ) ); } } if ( (wd == null) || (wd.FileContent == null) || (wd.FileContent.Length == 0) ) { return(null); } return(wd.FileContent); }
/// <summary> /// get page/media /// </summary> private static byte[] _WikiGetFile(stDokuWiki.WikiEngine.WikiFile wiki, WikiFileType type, string namesspace) { WikiData wd = null; switch (namesspace.Contains(":")) { case true: { switch (type) { default: case WikiFileType.FileReadMd: case WikiFileType.FileWriteMd: { wd = wiki.GetFile(namesspace); break; } case WikiFileType.FileReadBinary: case WikiFileType.FileWriteBinary: { wd = wiki.GetFile(namesspace); break; } case WikiFileType.FileReadAttic: case WikiFileType.FileWriteAttic: { wd = wiki.GetFileFromAttic(namesspace, "0"); break; } case WikiFileType.FileReadMeta: { return(Encoding.UTF8.GetBytes( wiki.MetaListToMdString( wiki.GetFileMeta(namesspace) ) )); } case WikiFileType.FileWriteMeta: { throw new WikiNotImplementPageException(WikiFileType.FileWriteMeta.ToString()); } } break; } /// operation default case false: { switch (type) { default: case WikiFileType.FileReadMd: case WikiFileType.FileWriteMd: { wd = wiki.GetFile(":start"); break; } case WikiFileType.FileReadBinary: case WikiFileType.FileWriteBinary: { wd = wiki.GetFile(":logo.png"); break; } case WikiFileType.FileReadAttic: case WikiFileType.FileWriteAttic: { // TODO: get last from attic wd = wiki.GetFileFromAttic(":start", "0"); break; } case WikiFileType.FileReadMeta: { throw new WikiNotImplementPageException(WikiFileType.FileReadMeta.ToString()); } case WikiFileType.FileWriteMeta: { throw new WikiNotImplementPageException(WikiFileType.FileWriteMeta.ToString()); } } break; } } if ( (wd == null) || (wd.FileContent == null) || (wd.FileContent.Length == 0) ) { return(null); } return(wd.FileContent); }