예제 #1
0
    IEnumerable <TenantScopedStreamProcessorStatus> CreateScopedStreamProcessorStatus(EventHandlerInfo info, TenantId tenant = null)
    {
        var state = _eventHandlers.CurrentStateFor(info.Id);

        if (!state.Success)
        {
            throw state.Exception;
        }

        return(tenant == null
            ? _streamProcessorStatusConverter.Convert(state.Result)
            : _streamProcessorStatusConverter.ConvertForTenant(state.Result, tenant));
    }
예제 #2
0
    IEnumerable <TenantScopedStreamProcessorStatus> CreateScopedStreamProcessorStatus(ProjectionInfo info, TenantId tenant = null)
    {
        var state = _projections.CurrentStateFor(info.Definition.Scope, info.Definition.Projection);

        if (!state.Success)
        {
            throw state.Exception;
        }

        if (tenant == null)
        {
            Log.CreatingProjectionStatusForAllTenants(_logger, info.Definition.Projection, info.Definition.Scope);
            return(_streamProcessorStatusConverter.Convert(state.Result));
        }

        Log.CreatingProjectionStatusForTenant(_logger, info.Definition.Projection, info.Definition.Scope, tenant);
        return(_streamProcessorStatusConverter.ConvertForTenant(state.Result, tenant));
    }