/// <inheritdoc/>
        public virtual async Task HandleAsync(V1WorkflowProcessExitedDomainEvent e, CancellationToken cancellationToken = default)
        {
            var process = await this.GetOrReconcileProjectionAsync(e.AggregateId, cancellationToken);

            process.ExitedAt = e.CreatedAt.UtcDateTime;
            process.ExitCode = e.ExitCode;
            await this.Projections.UpdateAsync(process, cancellationToken);

            await this.Projections.SaveChangesAsync(cancellationToken);
        }
 /// <summary>
 /// Handles the specified <see cref="V1WorkflowProcessExitedDomainEvent"/>
 /// </summary>
 /// <param name="e">The <see cref="V1WorkflowProcessExitedDomainEvent"/> to handle</param>
 protected virtual void On(V1WorkflowProcessExitedDomainEvent e)
 {
     this.LastModified = e.CreatedAt;
     this.ExitedAt     = e.CreatedAt;
     this.ExitCode     = e.ExitCode;
 }