/// <summary> /// Отправить промежуточный отчет /// </summary> private async Task <IResultValue <IPackageServer> > SendIntermediateResponse(IPackageServer packageServer, IFileDataServer fileDataServer) => await _converterServerPackageDataToDto.FileDataToResponse(fileDataServer). Void(_ => _messagingService.ShowMessage("Отправка данных в базу...")). MapBindAsync(fileDataRequest => _convertingServerServiceFactory. UsingServiceRetry(service => service.Operations.UpdateFromIntermediateResponse(packageServer.Id, fileDataRequest))). ResultVoidBadAsync(errors => _loggerService.ErrorsLog(errors)). ResultVoidBadAsync(errors => _messagingService.ShowErrors(errors)). ResultValueOkAsync(packageServer.SetStatusProcessingProject);
/// <summary> /// Отобразить и записать в лог ошибки /// </summary> public void ShowAndLogErrors(IEnumerable <IErrorCommon> errorsConverting) => errorsConverting. Void(ShowErrors). Void(error => _loggerService.ErrorsLog(error));
/// <summary> /// Выполнить функцию для сервиса конвертации и проверить на ошибки /// </summary> protected async Task <IResultValue <TResult> > UsingServiceDefault <TResult>(Expression <Func <TService, Task <TResult> > > serviceExpression) => await GetService(IsInitMethodService(ReflectionInfo.GetExpressionName(serviceExpression))). Map(fileConvertingService => ExecuteAndHandleErrorAsync(() => serviceExpression.Compile()(fileConvertingService))). ResultVoidBadAsync(errors => _loggerService.ErrorsLog(errors)). WhereOkAsync(result => IsDisposeMethodService(ReflectionInfo.GetExpressionName(serviceExpression)), okFunc: result => result.ResultVoid(_ => Dispose()));