/// <inheritdoc/> public async Task <IStreamProcessorState> AddFailingPartitionFor( IStreamProcessorId streamProcessorId, StreamProcessorState oldState, StreamPosition failedPosition, PartitionId partition, DateTimeOffset retryTime, string reason, CancellationToken cancellationToken) { var failingPartition = new FailingPartitionState(failedPosition, retryTime, reason, 1, DateTimeOffset.UtcNow); var failingPartitions = new Dictionary <PartitionId, FailingPartitionState>(oldState.FailingPartitions) { [partition] = failingPartition }; var newState = new StreamProcessorState(failedPosition + 1, failingPartitions, oldState.LastSuccessfullyProcessed); await PersistNewState(streamProcessorId, newState, cancellationToken).ConfigureAwait(false); return(newState); }
/// <summary> /// Converts the <see cref="FailingPartitionState" /> to the runtime representation of <see cref="runtime.FailingPartitionState" />. /// </summary> /// <param name="state">The <see cref="FailingPartitionState" />.</param> /// <returns>The converted <see cref="runtime.FailingPartitionState" />.</returns> public static runtime.FailingPartitionState ToRuntimeRepresentation(this FailingPartitionState state) =>
/// <summary> /// Converts the <see cref="FailingPartitionState" /> to the runtime representation of <see cref="runtime.FailingPartitionState" />. /// </summary> /// <param name="state">The <see cref="FailingPartitionState" />.</param> /// <returns>The converted <see cref="runtime.FailingPartitionState" />.</returns> public static runtime.FailingPartitionState ToRuntimeRepresentation(this FailingPartitionState state) => new runtime.FailingPartitionState(state.Position, state.RetryTime, state.Reason, state.ProcessingAttempts, state.LastFailed);