Exemple #1
0
        /// <summary>
        /// Конвертер информации из трансферной модели в класс клиентской части и сохранение файла
        /// </summary>
        public async Task <FileStatus> ToFileStatusFromResponseAndSaveFile(FileDataResponseClient fileResponse)
        {
            var fileConvertSavedErrorType = await SaveFileDataSourceFromDtoResponse(fileResponse);

            var fileConvertErrorTypes = fileResponse.FileErrors.Select(ToErrorCommon).
                                        UnionNotNull(fileConvertSavedErrorType).
                                        Where(error => error.ErrorConvertingType != ErrorConvertingType.NoError);

            return(new FileStatus(fileResponse.FilePath, StatusProcessing.End, fileConvertErrorTypes));
        }
 /// <summary>
 /// Поменять статус файла после перед записью
 /// </summary>
 public FileStatus GetFileStatusCompleteResponseBeforeWriting(FileDataResponseClient fileDataResponseClient) =>
 ConverterClientPackageDataFromDto.ConvertToFileStatusFromResponse(fileDataResponseClient);
 /// <summary>
 /// Поменять статус файла после записи
 /// </summary>
 public async Task <FileStatus> GetFileStatusCompleteResponseAndWritten(FileDataResponseClient fileDataResponseClient) =>
 await _converterClientPackageDataFromDto.ToFileStatusFromResponseAndSaveFile(fileDataResponseClient);
Exemple #4
0
 /// <summary>
 /// Конвертер информации из трансферной модели в класс клиентской части перед сохранением
 /// </summary>
 public static FileStatus ConvertToFileStatusFromResponse(FileDataResponseClient fileResponse) =>
 new FileStatus(fileResponse.FilePath, StatusProcessing.Writing,
                fileResponse.FileErrors.Select(ToErrorCommon));
Exemple #5
0
        /// <summary>
        /// Сохранить данные из трансферной модели на жесткий диск
        /// </summary>
        private async Task <IEnumerable <IErrorCommon> > SaveFileDataSourceFromDtoResponse(FileDataResponseClient fileDataResponse)
        {
            if (fileDataResponse.FilesDataSource == null)
            {
                return new List <IErrorCommon> {
                           new ErrorCommon(ErrorConvertingType.IncorrectDataSource, "Некорректные входные данные")
                }
            }
            ;

            string fileDirectoryName       = Path.GetDirectoryName(fileDataResponse.FilePath);
            string convertingDirectoryName = Path.Combine(fileDirectoryName ?? throw new InvalidOperationException(nameof(fileDirectoryName)),
                                                          ProjectSettings.DirectoryForSavingConvertedFiles);

            var fileConvertErrorTypeTasks = fileDataResponse.FilesDataSource?.
                                            Where(fileData => fileData.FileExtensionType != FileExtensionType.Print).
                                            Select(fileData => SaveFileDataSourceFromDtoResponse(fileData, convertingDirectoryName));

            return(await Task.WhenAll(fileConvertErrorTypeTasks));
        }