Esempio n. 1
0
        /// <summary>
        /// Скопировать ресурсы и вернуть пути их расположения
        /// </summary>
        private ConvertingResources GetConvertingResourcesLazy()
        {
            _fileSystemOperations.CreateFolderByName(DataResourcesFolder);
            _fileSystemOperations.CreateFolderByName(DataSignaturesFolder);

            string signatureMicrostationFileName = Path.Combine(DataResourcesFolder, "signatureMicrostation.cel");
            string stampMicrostationFileName     = Path.Combine(DataResourcesFolder, "stampMicrostation.cel");

            return(new ConvertingResources(signatureMicrostationFileName, stampMicrostationFileName,
                                           _signatureServerServiceFactory, _converterDataFileFromDto,
                                           _fileSystemOperations, _filePathOperations));
        }
Esempio n. 2
0
 /// <summary>
 /// Создать папку для сохранения отконвертированных файлов по типу расширения
 /// </summary>
 public static string CreateSavingPath(string filePathServer, FileExtensionType fileExtensionType,
                                       IFileSystemOperations fileSystemOperations) =>
 Path.GetDirectoryName(filePathServer).
 Map(directory => fileSystemOperations.CreateFolderByName(Path.Combine(directory, Path.GetFileNameWithoutExtension(filePathServer)),
                                                          fileExtensionType.ToString())).
 Map(serverDirectory => FilePathOperations.CombineFilePath(serverDirectory,
                                                           Path.GetFileNameWithoutExtension(filePathServer),
                                                           fileExtensionType.ToString().ToLowerCaseCurrentCulture()));
 private async Task <IResultCollection <ISignatureFile> > GetSignatureNames() =>
 await _signatureServerServiceFactory.UsingServiceRetry(service => service.Operations.GetSignaturesNames()).
 ResultValueOkBindAsync(signatures => new ResultValue <string>(_fileSystemOperations.CreateFolderByName(SignatureFolder)).
                        WhereBad(_ => _filePathOperations.IsDirectoryExist(SignatureFolder),
                                 _ => new ResultValue <string>(new ErrorCommon(ErrorConvertingType.FileNotSaved,
                                                                               "Папка для сохранения подписей не создана"))).
                        Map(result => Task.FromResult((IResultValue <IList <SignatureDto> >) new ResultValue <IList <SignatureDto> >(signatures)))).
 ResultValueOkBindAsync(signatures => _converterDataFileFromDto.SignaturesFileFromDtoAsync(signatures, SignatureFolder).
                        MapAsync(result => (IResultValue <IReadOnlyCollection <ISignatureFile> >)result)).
 MapAsync(result => result.ToResultCollection());
Esempio n. 4
0
        /// <summary>
        /// Сохранить файл из трансферной модели на жесткий диск
        /// </summary>
        private async Task <IErrorCommon> SaveFileDataSourceFromDtoResponse(FileDataSourceResponseClient fileDataSourceResponseClient,
                                                                            string convertingDirectoryName)
        {
            string fileName           = Path.GetFileNameWithoutExtension(fileDataSourceResponseClient.FileName);
            string fileExtension      = FilePathOperations.ExtensionWithoutPoint(Path.GetExtension(fileDataSourceResponseClient.FileName));
            string fileExtensionValid = ValidFileExtensions.GetFileTypesValid(fileExtension).ToString().ToLowerCaseCurrentCulture();
            string directoryPath      = _fileSystemOperations.CreateFolderByName(convertingDirectoryName, fileExtensionValid.ToUpperCaseCurrentCulture());


            if (String.IsNullOrWhiteSpace(fileName))
            {
                return(new ErrorCommon(ErrorConvertingType.IncorrectFileName, $"Некорректное имя файла {fileName}"));
            }
            if (String.IsNullOrWhiteSpace(fileName))
            {
                return(new ErrorCommon(ErrorConvertingType.IncorrectExtension, $"Некорректное расширение файла {fileExtension}"));
            }
            if (String.IsNullOrWhiteSpace(directoryPath))
            {
                return(new ErrorCommon(ErrorConvertingType.RejectToSave, "Директория сохранения не создана"));
            }
            if (fileDataSourceResponseClient.FileDataSource.Length == 0)
            {
                return(new ErrorCommon(ErrorConvertingType.IncorrectDataSource,
                                       $"Некорректные входные данные {fileName}"));
            }

            string filePath = FilePathOperations.CombineFilePath(directoryPath, fileName, fileExtensionValid);

            Task <bool> UnzipFileAndSaveBool() => _fileSystemOperations.UnzipFileAndSave(filePath, fileDataSourceResponseClient.FileDataSource).
            MapAsync(result => result.OkStatus);

            await _dialogService.RetryOrIgnoreBoolFunction(UnzipFileAndSaveBool, $"Файл {filePath} открыт или используется. Повторить попытку сохранения?");

            return(new ErrorCommon(ErrorConvertingType.NoError, "Ошибки отсутствуют"));
        }