Simplify failure handling
This commit is contained in:
@ -2,6 +2,6 @@
|
||||
{
|
||||
public interface IResultGetter
|
||||
{
|
||||
Task<ResultGetterResponse> GetAsync();
|
||||
Task<bool> GetAsync();
|
||||
}
|
||||
}
|
||||
|
||||
@ -6,12 +6,12 @@ namespace Hcs.WebApp.BackgroundServices.ResultGetters.NsiCommon
|
||||
{
|
||||
public class ExportNsiItemGetter_15_7_0_1(IClient client, IServiceScope scope, Operation operation) : ResultGetterBase(client, scope, operation)
|
||||
{
|
||||
public override async Task<ResultGetterResponse> GetAsync()
|
||||
public override async Task<bool> GetAsync()
|
||||
{
|
||||
var result = await client.NsiCommon.GetExportNsiItemResultAsync(operation.MessageGuid!);
|
||||
if (!result.Ready)
|
||||
{
|
||||
return ResultGetterResponse.NotReady;
|
||||
return false;
|
||||
}
|
||||
|
||||
if (result.Success)
|
||||
@ -20,10 +20,10 @@ namespace Hcs.WebApp.BackgroundServices.ResultGetters.NsiCommon
|
||||
var registry = await registryService.GetRegistryByOperationIdAsync(operation.Id);
|
||||
// TODO
|
||||
|
||||
return ResultGetterResponse.Successful;
|
||||
return true;
|
||||
}
|
||||
|
||||
return ResultGetterResponse.Failed;
|
||||
throw Failure(result.ErrorMessage);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
using Hcs.Broker;
|
||||
using Hcs.Broker.Api.Request.Adapter;
|
||||
using Hcs.WebApp.Data.Hcs;
|
||||
|
||||
namespace Hcs.WebApp.BackgroundServices.ResultGetters
|
||||
@ -9,6 +10,15 @@ namespace Hcs.WebApp.BackgroundServices.ResultGetters
|
||||
protected readonly IServiceScope scope = scope;
|
||||
protected readonly Operation operation = operation;
|
||||
|
||||
public abstract Task<ResultGetterResponse> GetAsync();
|
||||
public abstract Task<bool> GetAsync();
|
||||
|
||||
protected Exception Failure(IErrorMessage? errorMessage)
|
||||
{
|
||||
if (errorMessage != null)
|
||||
{
|
||||
return new Exception($"{errorMessage.ErrorCode} - {errorMessage.Description}");
|
||||
}
|
||||
return new Exception("Критическая ошибка");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,9 +0,0 @@
|
||||
namespace Hcs.WebApp.BackgroundServices.ResultGetters
|
||||
{
|
||||
public enum ResultGetterResponse
|
||||
{
|
||||
NotReady,
|
||||
Successful,
|
||||
Failed
|
||||
}
|
||||
}
|
||||
@ -69,13 +69,10 @@ namespace Hcs.WebApp.BackgroundServices
|
||||
try
|
||||
{
|
||||
var resultGetter = resultGetterFactory.CreateResultGetter(scope, client, entry.operation);
|
||||
var response = await resultGetter.GetAsync();
|
||||
switch (response)
|
||||
var success = await resultGetter.GetAsync();
|
||||
if (success)
|
||||
{
|
||||
case ResultGetterResponse.Successful:
|
||||
case ResultGetterResponse.Failed:
|
||||
entry.state.done = true;
|
||||
break;
|
||||
entry.state.done = true;
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
|
||||
Reference in New Issue
Block a user