/// <summary>结束更新文档</summary> private async Task EndUpdate(bool success, FileConvertType type, TDocument newFileDoc, TDocument uploadFileDoc) { var filter = Builders <TDocument> .Filter.Eq(f => f.FileId, uploadFileDoc.FileId); var updateBuilder = Builders <TDocument> .Update; UpdateDefinition <TDocument> update = null; var updateFileId = success ? newFileDoc.FileId : uploadFileDoc.FileId; switch (type) { case FileConvertType.Pdf: update = updateBuilder.Set(u => u.PdfFileId, updateFileId); break; case FileConvertType.Image: update = updateBuilder.Set(u => u.ImageFileId, updateFileId); break; case FileConvertType.Thumbnail: update = updateBuilder.Set(u => u.ThumbnailFileId, updateFileId); break; case FileConvertType.FullText: update = updateBuilder.Set(u => u.FullTextFileId, updateFileId); break; case FileConvertType.Html: update = updateBuilder.Set(u => u.HtmlFileId, updateFileId); break; } await this.UploadFilesCollection.UpdateOneAsync(filter, update); switch (type) { case FileConvertType.Pdf: uploadFileDoc.PdfFileId = updateFileId; break; case FileConvertType.Image: uploadFileDoc.ImageFileId = updateFileId; break; case FileConvertType.Thumbnail: uploadFileDoc.ThumbnailFileId = updateFileId; break; case FileConvertType.FullText: uploadFileDoc.FullTextFileId = updateFileId; break; case FileConvertType.Html: uploadFileDoc.HtmlFileId = updateFileId; break; } }
public async Task <IHttpActionResult> Convert(FileConvertType type, string sourceFile, string destFile) { sourceFile = sourceFile.UrlDecode(); destFile = destFile.UrlDecode(); switch (type) { case FileConvertType.Pdf: await GetService <IPdfConverter>().ExecuteAsync(sourceFile, destFile); break; case FileConvertType.Image: await GetService <IImageConverter>().ExecuteAsync(sourceFile, destFile); break; case FileConvertType.Thumbnail: await GetService <IThumbnailConverter>().ExecuteAsync(sourceFile, destFile); break; case FileConvertType.FullText: await GetService <IFulltextConverter>().ExecuteAsync(sourceFile, destFile); break; case FileConvertType.Html: await GetService <IHtmlConverter>().ExecuteAsync(sourceFile, destFile); break; } return(Ok()); }
/// <summary>结束生成文档</summary> public async Task EndBuild(bool success, FileConvertType type, TDocument newFileDoc, TDocument uploadFileDoc, TDocument normalizedFileDoc) { if (success) { var destFile = this.UploadPath + newFileDoc.RelativePath; newFileDoc.Md5 = BuildMD5(destFile, null); switch (type) { case FileConvertType.Pdf: newFileDoc.PdfFileId = newFileDoc.FileId; break; case FileConvertType.Image: newFileDoc.ImageFileId = newFileDoc.FileId; break; case FileConvertType.Thumbnail: newFileDoc.ThumbnailFileId = newFileDoc.FileId; break; case FileConvertType.FullText: newFileDoc.FullTextFileId = newFileDoc.FileId; break; case FileConvertType.Html: newFileDoc.HtmlFileId = newFileDoc.FileId; break; } await this.UploadFilesCollection.InsertOneAsync(newFileDoc); } await EndUpdate(success, type, newFileDoc, uploadFileDoc); if (normalizedFileDoc != null && normalizedFileDoc != uploadFileDoc) { await EndUpdate(success, type, newFileDoc, normalizedFileDoc); } }