/// <inheritdoc /> public override async Task <ReprocessEventsFromResponse> ReprocessEventsFrom(ReprocessEventsFromRequest request, ServerCallContext context) { var response = new ReprocessEventsFromResponse(); var getIds = GetEventHandlerId(request.ScopeId, request.EventHandlerId, out var eventHandler); if (!getIds.Success) { response.Failure = _exceptionToFailureConverter.ToFailure(getIds.Exception); return(response); } TenantId tenant = request.TenantId.ToGuid(); Log.ReprocessEventsFrom(_logger, eventHandler.EventHandler, eventHandler.Scope, tenant, request.StreamPosition); var reprocessing = await _eventHandlers.ReprocessEventsFrom(eventHandler, tenant, request.StreamPosition).ConfigureAwait(false); if (!reprocessing.Success) { Log.FailedDuringReprocessing(_logger, reprocessing.Exception); response.Failure = _exceptionToFailureConverter.ToFailure(reprocessing.Exception); } return(response); }
/// <inheritdoc /> public async Task ReprocessEventsFrom(EventHandlerId eventHandler, TenantId tenant, StreamPosition position, MicroserviceAddress runtime) { var client = _clients.CreateClientFor <EventHandlersClient>(runtime); var request = new ReprocessEventsFromRequest { ScopeId = eventHandler.Scope.ToProtobuf(), EventHandlerId = eventHandler.EventHandler.ToProtobuf(), TenantId = tenant.ToProtobuf(), StreamPosition = position, }; var response = await client.ReprocessEventsFromAsync(request); if (response.Failure != null) { throw new ReprocessEventsFromFailed(response.Failure.Reason); } }