コード例 #1
0
        /// <summary>
        /// Search for specified string using regular expressions inside file with specified upload id and file name, replaces string with replacement text, saves resulted file to out file.
        /// Returns details about resulted file.
        /// </summary>
        /// <param name="model">Request model.</param>
        /// <returns>Resulted file details.</returns>

        public FileSafeResult Redaction([FromBody] RedactionOptionsModel model)

        {
            var           pathProcessor = new PathProcessor(model.id, model.FileName, true);
            SlidesService slidesService = new SlidesService();
            var           foundLines    = slidesService.Redaction(
                pathProcessor.DefaultSourceFile,
                pathProcessor.DefaultOutFile,
                model
                );

            if (foundLines == null)
            {
                return new FileSafeResult
                       {
                           IsSuccess = false,
                           idError   = "InvalidReg"
                       }
            }
            ;

            if (foundLines.Length < 1)
            {
                return new FileSafeResult
                       {
                           IsSuccess = false,
                           idError   = "NotFound"
                       }
            }
            ;

            return(pathProcessor.GetResult());
        }
コード例 #2
0
        /// <summary>
        /// Search for specified string using regular expressions inside file with specified upload id and file name, saves found lines into file.
        /// Returns details about resulted file.
        /// </summary>
        /// <param name="model">Request model.</param>
        /// <returns>Resulted file details.</returns>
        public FileSafeResult Search([FromBody] SearchRequestModel model)
        {
            SlidesService slidesService = new SlidesService();
            var           pathProcessor = new PathProcessor(model.id, file: model.FileName, checkDefaultSourceFileExistence: true);

            var foundLines = slidesService.Search(
                pathProcessor.DefaultSourceFile,
                model.Query
                );

            if (foundLines == null)
            {
                return new FileSafeResult
                       {
                           IsSuccess = false,
                           idError   = "InvalidReg"
                       }
            }
            ;

            if (foundLines.Length < 1)
            {
                return new FileSafeResult
                       {
                           IsSuccess = false,
                           idError   = "NotFound"
                       }
            }
            ;

            var foundLinesFile = pathProcessor.GetOutFilePath("foundLines.txt");

            System.IO.File.WriteAllLines(foundLinesFile, foundLines);
            return(pathProcessor.GetResult("foundLines.txt"));
        }
        ///<Summary>
        /// ConvertFile method
        ///</Summary>
        public Response ConvertFile(string fileName, string folderName, string outputType)
        {
            var pathProcessor = new PathProcessor(folderName, fileName, fileName != null);

            var result = Conversion(
                pathProcessor.DefaultSourceFile,
                pathProcessor.OutFolder, outputType

                );
            FileSafeResult fileSafeResult = new FileSafeResult();

            if (result == null)
            {
                fileSafeResult = pathProcessor.GetResultZipped();
            }
            else
            {
                fileSafeResult = pathProcessor.GetResult(Path.GetFileName(result));
            }

            return(new Response
            {
                FileName = fileSafeResult.FileName,
                FolderName = fileSafeResult.id,
                Status = "OK",
                StatusCode = 200,
            });
        }
コード例 #4
0
        /// <summary>
        /// Removes watermark from file with specified upload id and file name.
        /// </summary>
        /// <param name="model">Request model.</param>
        /// <returns>Resulted file details.</returns>

        public FileSafeResult RemoveWatermark([FromBody] BaseRequestModel model)
        {
            SlidesService slidesService = new SlidesService();
            var           pathProcessor = new PathProcessor(model.id, model.FileName, true);

            slidesService.RemoveWatermark(
                pathProcessor.DefaultSourceFile,
                pathProcessor.DefaultOutFile
                );

            return(pathProcessor.GetResult());
        }
コード例 #5
0
        /// <summary>
        /// Adds text watermark into file with specified upload id and file name.
        /// </summary>
        /// <param name="model">Watermark options.</param>
        /// <returns>Resulted file details.</returns>

        public FileSafeResult AddTextWatermark([FromBody] TextWatermarkOptionsModel model)

        {
            SlidesService slidesService = new SlidesService();
            var           pathProcessor = new PathProcessor(model.id, model.FileName, true);

            slidesService.AddTextWatermark(
                pathProcessor.DefaultSourceFile,
                pathProcessor.DefaultOutFile,
                model
                );

            return(pathProcessor.GetResult());
        }
コード例 #6
0
        /// <summary>
        /// Applies protection to file with specified upload id and file name.
        /// Method adds view/edit protection with specified password and applies read-only/final flag.
        /// </summary>
        /// <param name="model">Request model.</param>
        /// <returns>Resulted file details.</returns>

        public FileSafeResult Lock([FromBody] ProtectOptions model)
        {
            SlidesService slidesService = new SlidesService();
            var           pathProcessor = new PathProcessor(model.id, model.FileName, true);

            slidesService.LockFile(
                sourceFile: pathProcessor.DefaultSourceFile,
                outFile: pathProcessor.DefaultOutFile,
                markAsReadonly: model.MarkAsReadonly,
                markAsFinal: model.MarkAsFinal,
                passwordEdit: model.PasswordEdit,
                passwordView: model.PasswordView
                );

            return(pathProcessor.GetResult());
        }
コード例 #7
0
        /// <summary>
        /// Converts source file with specified upload id and file name into target format.
        /// Returns details about resulted file.
        /// </summary>
        /// <param name="model">Request model.</param>
        /// <returns>Resulted file details.</returns>
        public FileSafeResult Conversion([FromBody] ConversionOptions model)
        {
            SlidesService slidesService = new SlidesService();

            var pathProcessor = new PathProcessor(model.id, model.FileName, model.FileName != null);
            var result        = slidesService.ConvertFile(
                pathProcessor.DefaultSourceFile,
                pathProcessor.OutFolder,
                model.Format.ParseEnum <SlidesConversionFormat>()
                );

            if (result == null)
            {
                return(pathProcessor.GetResultZipped());
            }
            else
            {
                return(pathProcessor.GetResult(Path.GetFileName(result)));
            }
        }
コード例 #8
0
        /// <summary>
        /// Merge source documents files with specified upload id into one file.
        /// Returns details about resulted file.
        /// </summary>
        /// <param name="model">Request model.</param>
        /// <returns>Resulted file details.</returns>

        public FileSafeResult Merger([FromBody] MergerOptions model)
        {
            SlidesService slidesService = new SlidesService();
            var           pathProcessor = new PathProcessor(model.idMain, null, false);

            PathProcessor pathProcessorStyleMaster = null;

            if (model.idStyleMaster != null && model.FileNameStyleMaster != null)
            {
                pathProcessorStyleMaster = new PathProcessor(model.idStyleMaster, model.FileNameStyleMaster, true);
            }

            var result = slidesService.Merger(
                pathProcessor.OutFolder,
                string.IsNullOrEmpty(model.Format)
                                                        ? SlidesConversionFormat.pptx
                                                        : model.Format.ParseEnum <SlidesConversionFormat>(),
                pathProcessorStyleMaster?.DefaultSourceFile,
                model.MainFiles.Select(fileName => Path.Combine(pathProcessor.SourceFolder, fileName)).ToArray()
                );

            return(pathProcessor.GetResult(Path.GetFileName(result)));
        }
コード例 #9
0
        /// <summary>
        /// Removes password protection from file with specified upload id and file name.
        /// Method tries to remove readonly and view protection with specified password.
        /// </summary>
        /// <param name="model">Request model.</param>
        /// <returns>Resulted file details.</returns>

        public FileSafeResult Unlock([FromBody] UnProtectOptions model)
        {
            SlidesService slidesService = new SlidesService();
            var           pathProcessor = new PathProcessor(model.id, model.FileName, true);

            try
            {
                slidesService.UnlockFile(
                    pathProcessor.DefaultSourceFile,
                    pathProcessor.DefaultOutFile,
                    model.Password
                    );

                return(pathProcessor.GetResult());
            }
            catch (InvalidPasswordException)
            {
                return(new FileSafeResult
                {
                    IsSuccess = false,
                    idError = "InvalidPassword"
                });
            }
        }