Пример #1
0
    /// <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);
    }