PolicyResult<TResult>
The captured result of executing a policy
using System;
namespace Polly
{
public class PolicyResult<TResult>
{
public OutcomeType Outcome { get; }
public Exception FinalException { get; }
public ExceptionType? ExceptionType { get; }
public TResult Result { get; }
public TResult FinalHandledResult { get; }
public FaultType? FaultType { get; }
public Context Context { get; }
internal PolicyResult(TResult result, OutcomeType outcome, Exception finalException, ExceptionType? exceptionType, Context context)
: this(result, outcome, finalException, exceptionType, default(TResult), (FaultType?)null, context)
{
}
internal PolicyResult(TResult result, OutcomeType outcome, Exception finalException, ExceptionType? exceptionType, TResult finalHandledResult, FaultType? faultType, Context context)
{
Result = result;
Outcome = outcome;
FinalException = finalException;
ExceptionType = exceptionType;
FinalHandledResult = finalHandledResult;
FaultType = faultType;
Context = context;
}
internal static PolicyResult<TResult> Successful(TResult result, Context context)
{
return new PolicyResult<TResult>(result, OutcomeType.Successful, null, null, context);
}
internal static PolicyResult<TResult> Failure(Exception exception, ExceptionType exceptionType, Context context)
{
return new PolicyResult<TResult>(default(TResult), OutcomeType.Failure, exception, exceptionType, default(TResult), (exceptionType != 0) ? Polly.FaultType.UnhandledException : Polly.FaultType.ExceptionHandledByThisPolicy, context);
}
internal static PolicyResult<TResult> Failure(TResult handledResult, Context context)
{
return new PolicyResult<TResult>(default(TResult), OutcomeType.Failure, null, null, handledResult, Polly.FaultType.ResultHandledByThisPolicy, context);
}
}
}