Add Exception property to WorkflowFault (#283)

This commit is contained in:
aburada 2020-05-15 14:04:09 -04:00 committed by GitHub
parent d38af75d75
commit 3f153c0f13
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 17 additions and 7 deletions

View file

@ -1,8 +1,11 @@
namespace Elsa.Models
using System;
namespace Elsa.Models
{
public class WorkflowFault
{
public string FaultedActivityId { get; set; }
public string Message { get; set; }
public Exception Exception { get; set; }
}
}

View file

@ -89,14 +89,15 @@ namespace Elsa.Services.Models
Workflow.Status = WorkflowStatus.Executing;
}
public void Fault(IActivity activity, Exception exception) => Fault(activity, exception.Message);
public void Fault(IActivity activity, Exception exception) => Fault(activity, exception.Message, exception);
public void Fault(IActivity activity, string errorMessage)
public void Fault(IActivity activity, string errorMessage, Exception exception = null)
{
Workflow.FaultedAt = clock.GetCurrentInstant();
Workflow.Fault = new WorkflowFault
{
Message = errorMessage,
Exception = exception,
FaultedActivity = activity
};
Workflow.Status = WorkflowStatus.Faulted;

View file

@ -1,16 +1,20 @@
namespace Elsa.Services.Models
using System;
namespace Elsa.Services.Models
{
public class WorkflowFault
{
public IActivity FaultedActivity { get; set; }
public string Message { get; set; }
public Exception Exception { get; set; }
public Elsa.Models.WorkflowFault ToInstance()
{
return new Elsa.Models.WorkflowFault
{
FaultedActivityId = FaultedActivity?.Id,
Message = Message
Message = Message,
Exception = Exception
};
}
}

View file

@ -1,4 +1,4 @@
using System;
using System;
using System.Threading;
using System.Threading.Tasks;
using Elsa.Extensions;
@ -12,9 +12,11 @@ namespace Elsa.Results
public class FaultWorkflowResult : ActivityExecutionResult
{
private readonly string errorMessage;
private Exception exception;
public FaultWorkflowResult(Exception exception) : this(exception.Message)
{
this.exception = exception;
}
public FaultWorkflowResult(string errorMessage)
@ -35,7 +37,7 @@ namespace Elsa.Results
x => x.ActivityFaultedAsync(workflowContext, currentActivity, errorMessage, cancellationToken),
logger);
workflowContext.Fault(workflowContext.CurrentActivity, errorMessage);
workflowContext.Fault(workflowContext.CurrentActivity, errorMessage, exception);
}
}
}