Beispiel #1
0
        /// <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());
        }
Beispiel #3
0
        /// <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);
            }
        }