Ejemplo n.º 1
0
 /// <summary>
 /// Конвертер информации о файле из локальной модели в трансферную
 /// </summary>
 private async Task <IResultValue <FileDataRequestClient> > ToFileDataRequest(IFileData fileData) =>
 await _fileSystemOperations.FileToByteAndZip(fileData.FilePath).
 ResultValueOkBindAsync(fileSource =>
                        AdditionalFileExtensions.FileExtensions.
                        Select(extension => FilePathOperations.ChangeFileName(fileData.FilePath, fileData.FileName, extension)).
                        FirstOrDefault(filePath => _filePathOperations.IsFileExist(filePath)).
                        Map(fileAdditionalPath => ToFileDataRequest(fileData, fileSource, fileAdditionalPath)));
 /// <summary>
 /// Конвертировать список отконвертированных файлов в окончательный ответ
 /// </summary>
 private async Task <IResultValue <FileDataSourceResponseServer> > FileDataSourceToResponse(IFileDataSourceServer fileDataSourceServer) =>
 await _fileSystemOperations.FileToByteAndZip(fileDataSourceServer.FilePathServer).
 MapAsync(resultFile =>
          new FileDataSourceResponseServer(fileDataSourceServer.FileNameClient, fileDataSourceServer.FileExtensionType,
                                           fileDataSourceServer.PaperSize.ToString(),
                                           fileDataSourceServer.PrinterName, resultFile.Value).
          Map(fileSource => new ResultValue <FileDataSourceResponseServer>(fileSource, resultFile.Errors)));
 /// <summary>
 /// Запаковать файл базы Microstation и преобразовать в байтовый массив
 /// </summary>
 private Task <IResultValue <byte[]> > MicrostationDataBaseToZip(string filePath) =>
 _fileSystemOperations.FileToByteAndZip(filePath);