/// <inheritdoc/> public virtual async Task HandleAsync(V1WorkflowActivityFaultedDomainEvent e, CancellationToken cancellationToken = default) { var activity = await this.GetOrReconcileProjectionAsync(e.AggregateId, cancellationToken); activity.LastModified = e.CreatedAt.UtcDateTime; activity.ExecutedAt = e.CreatedAt.UtcDateTime; activity.Status = V1WorkflowActivityStatus.Faulted; activity.Error = this.Mapper.Map <Integration.Models.Error>(e.Error); await this.Projections.UpdateAsync(activity, cancellationToken); await this.Projections.SaveChangesAsync(cancellationToken); await this.UpdateParentWorkflowInstanceAsync(activity, cancellationToken); await this.PublishIntegrationEventAsync(e, cancellationToken); }
/// <summary> /// Handles the specified <see cref="V1WorkflowActivityFaultedDomainEvent"/> /// </summary> /// <param name="e">The <see cref="V1WorkflowActivityFaultedDomainEvent"/> to handle</param> protected virtual void On(V1WorkflowActivityFaultedDomainEvent e) { this.Status = V1WorkflowActivityStatus.Faulted; this.Error = e.Error; this.On(this.RegisterEvent(new V1WorkflowActivityExecutedDomainEvent(this.Id, this.Status, this.Error))); }