コード例 #1
0
        /// <summary>
        /// Проверить целостность выходных данных для конвертации
        /// </summary>
        public static IResultError IsFileDataRequestValid(FileDataRequestBase fileDataRequest)
        {
            string fileName      = Path.GetFileNameWithoutExtension(fileDataRequest?.FilePath);
            string fileExtension = FilePathOperations.ExtensionWithoutPointFromPath(fileDataRequest?.FilePath);

            bool isValidName       = !String.IsNullOrWhiteSpace(fileName);
            bool isValidExtension  = ValidFileExtensions.ContainsInDocAndDgnFileTypes(fileExtension);
            bool isValidDataSource = fileDataRequest?.FileDataSource != null;

            var errors = new List <IErrorCommon>();

            if (!isValidName)
            {
                errors.Add(new ErrorCommon(ErrorConvertingType.IncorrectFileName, $"Некорректное имя файла {fileName}"));
            }

            if (!isValidExtension)
            {
                errors.Add(new ErrorCommon(ErrorConvertingType.IncorrectExtension, $"Некорректное расширение файла {fileExtension}"));
            }

            if (!isValidDataSource)
            {
                errors.Add(new ErrorCommon(ErrorConvertingType.IncorrectDataSource, $"Некорректные входные данные конвертации"));
            }

            return(new ResultError(errors));
        }
コード例 #2
0
        public FilePath(string filePathServer, string filePathClient, bool onlyDgnAndDocTypes = false)
        {
            if (String.IsNullOrWhiteSpace(filePathServer))
            {
                throw new ArgumentNullException(nameof(filePathServer));
            }
            if (String.IsNullOrWhiteSpace(filePathClient))
            {
                throw new ArgumentNullException(nameof(filePathClient));
            }

            if (!ValidateExtension(filePathServer, onlyDgnAndDocTypes))
            {
                throw new KeyNotFoundException(nameof(filePathServer));
            }
            if (!ValidateExtension(filePathClient, onlyDgnAndDocTypes))
            {
                throw new KeyNotFoundException(nameof(filePathClient));
            }

            string fileTypeServer = FilePathOperations.ExtensionWithoutPointFromPath(filePathServer);
            string fileTypeClient = FilePathOperations.ExtensionWithoutPointFromPath(filePathClient);

            if (fileTypeServer != fileTypeClient)
            {
                throw new InvalidOperationException("Расширения клиентской и серверной частей не равны");
            }

            FileExtensionType = ValidFileExtensions.GetFileTypesValid(fileTypeServer);
            FilePathServer    = FilePathOperations.GetValidFilePath(filePathServer);
            FilePathClient    = FilePathOperations.GetValidFilePath(filePathClient);
        }
コード例 #3
0
 /// <summary>
 /// Конвертер информации о файле из локальной модели в трансферную
 /// </summary>
 private async Task <IResultValue <FileDataRequestClient> > ToFileDataRequest(IFileData fileData, byte[] fileSource,
                                                                              string fileAdditionalPath) =>
 await fileAdditionalPath.
 WhereContinueAsyncBind(filePath => !String.IsNullOrWhiteSpace(filePath),
                        filePath => _fileSystemOperations.FileToByteAndZip(filePath),
                        filePath => Task.FromResult((IResultValue <byte[]>) new ResultValue <byte[]>(new byte[0]))).
 ResultValueOkAsync(fileAdditionalSource =>
                    new FileDataRequestClient(fileData.FilePath, fileData.ColorPrintType, fileData.StatusProcessing,
                                              fileSource, FilePathOperations.ExtensionWithoutPointFromPath(fileAdditionalPath),
                                              fileAdditionalSource));
コード例 #4
0
        public FileData(string filePath, ColorPrintType colorPrintType)
        {
            string fileExtension = FilePathOperations.ExtensionWithoutPointFromPath(filePath);
            string fileName      = Path.GetFileNameWithoutExtension(filePath);

            if (String.IsNullOrEmpty(fileExtension) || String.IsNullOrEmpty(fileName) || String.IsNullOrEmpty(filePath))
            {
                throw new ArgumentNullException(nameof(filePath));
            }
            if (!ValidFileExtensions.ContainsInDocAndDgnFileTypes(fileExtension))
            {
                throw new KeyNotFoundException(nameof(fileExtension));
            }

            FileExtensionType = ValidFileExtensions.DocAndDgnFileTypeDictionary[fileExtension];
            FileName          = fileName;
            FilePath          = filePath;
            ColorPrintType    = colorPrintType;

            FileErrors = new List <IErrorCommon>();
        }
コード例 #5
0
 /// <summary>
 /// Проверить расширение на соответствие допустимым типам
 /// </summary>
 private static bool ValidateExtension(string filePath, bool onlyDgnAndDocTypes) =>
 FilePathOperations.ExtensionWithoutPointFromPath(filePath).
 Map(extension => onlyDgnAndDocTypes
                      ? ValidFileExtensions.ContainsInDocAndDgnFileTypes(extension)
                      : ValidFileExtensions.ContainsInFileTypesValid(extension));
コード例 #6
0
 /// <summary>
 /// Корректность пути сохранения Pdf
 /// </summary>
 private static bool PdfPathValid(string filePath) =>
 FilePathOperations.ExtensionWithoutPointFromPath(filePath).
 Map(fileExtension => !String.IsNullOrEmpty(filePath) && !String.IsNullOrEmpty(fileExtension) &&
     FileExtensionType.Pdf.ToString().ContainsIgnoreCase(fileExtension));
コード例 #7
0
 /// <summary>
 /// Получить путь к сохраненному файлу для обработки
 /// </summary>
 private static IResultCollection <IFileDataSourceServer> GetSavedFileDataSource(IDocumentLibrary documentLibrary, IFilePath filePath) =>
 new FileDataSourceServer(documentLibrary.FullName,
                          filePath.ChangeExtensions(FilePathOperations.ExtensionWithoutPointFromPath(documentLibrary.FullName)).
                          FilePathClient,
                          ConvertingModeType.Main).
 Map(fileDataSource => new ResultValue <IFileDataSourceServer>(fileDataSource).ToResultCollection());