/// <summary> /// Добавить форматы /// </summary> private static async Task PaperSizeUpdate(IUnitOfWork unitOfWork, FileDataResponseServer fileDataResponseServer) { var paperSizes = fileDataResponseServer.FilesDataSource. Select(fileDataSource => fileDataSource.PaperSize).Distinct(). Select(paperSize => new PaperSizeEntity(paperSize)); foreach (var paperSize in paperSizes) { await unitOfWork.Session.SaveOrUpdateAsync(paperSize); } }
/// <summary> /// Обновить модель базы данных на основе промежуточного ответа с данными /// </summary> public static void UpdateFileDataFromIntermediateResponse(PackageDataEntity packageDataEntity, FileDataResponseServer fileDataResponseServer) { if (CheckStatusProcessing.CompletedStatusProcessingProject. Contains(packageDataEntity.StatusProcessingProject)) { return; } var fileDataEntity = packageDataEntity.FileDataEntities.First(fileData => fileData.FilePath == fileDataResponseServer.FilePath); UpdateFileDataFromResponse(fileDataEntity, fileDataResponseServer); }
/// <summary> /// Обновить модель файла данных на основе окончательного ответа /// </summary> public static FileDataEntity UpdateFileDataFromResponse(FileDataEntity fileDataEntity, FileDataResponseServer fileDataResponse) { var fileDataSourceEntity = fileDataResponse.FilesDataSource. Select(fileData => ToFileDataSource(fileData, fileDataEntity)). ToList(); fileDataEntity.StatusProcessing = fileDataResponse.StatusProcessing; fileDataEntity.FileErrors = fileDataResponse.FileErrors.Select(ToErrorComponent).ToList(); fileDataEntity.FileDataSourceServerEntities = fileDataSourceEntity; return(fileDataEntity); }
/// <summary> /// Обновить информацию после промежуточного ответа /// </summary> public async Task <StatusProcessingProject> UpdateFromIntermediateResponse(Guid packageId, FileDataResponseServer fileDataResponseServer) => await _filesDataServerService.UpdateFromIntermediateResponse(packageId, fileDataResponseServer);
/// <summary> /// Обновить информацию после промежуточного ответа. При отмене - удалить пакет /// </summary> public async Task <StatusProcessingProject> UpdateFromIntermediateResponse(Guid packageId, FileDataResponseServer fileDataResponseServer) { using var unitOfWork = _container.Resolve <IUnitOfWork>(); var packageDataEntity = await unitOfWork.Session.LoadAsync <PackageDataEntity>(packageId.ToString()); if (!await DeleteFilesDataOnAbortionStatus(unitOfWork, packageDataEntity)) { ConverterFilesDataEntitiesFromDtoServer.UpdateFileDataFromIntermediateResponse(packageDataEntity, fileDataResponseServer); } await PaperSizeUpdate(unitOfWork, fileDataResponseServer); await unitOfWork.CommitAsync(); return(packageDataEntity.StatusProcessingProject); }