Пример #1
0
    /// <inheritdoc />
    public override Task <GetOneProjectionResponse> GetOne(GetOneProjectionRequest request, ServerCallContext context)
    {
        var response = new GetOneProjectionResponse();

        var getIds = GetScopeAndProjectionIds(request.ScopeId, request.ProjectionId, out var scope, out var projection);

        if (!getIds.Success)
        {
            response.Failure = _exceptionToFailureConverter.ToFailure(getIds.Exception);
            return(Task.FromResult(response));
        }

        Log.GetOne(_logger, projection, scope);

        var info = _projections.All.FirstOrDefault(_ => _.Definition.Scope == scope && _.Definition.Projection == projection);

        if (info == default)
        {
            Log.ProjectionNotRegistered(_logger, projection, scope);
            response.Failure = _exceptionToFailureConverter.ToFailure(new ProjectionNotRegistered(scope, projection));
            return(Task.FromResult(response));
        }

        response.Projection = CreateStatusFromInfo(info, request.TenantId?.ToGuid());
        return(Task.FromResult(response));
    }
Пример #2
0
    /// <inheritdoc />
    public override Task <GetOneResponse> GetOne(GetOneRequest request, ServerCallContext context)
    {
        var response = new GetOneResponse();

        var getIds = GetEventHandlerId(request.ScopeId, request.EventHandlerId, out var eventHandler);

        if (!getIds.Success)
        {
            response.Failure = _exceptionToFailureConverter.ToFailure(getIds.Exception);
            return(Task.FromResult(response));
        }

        Log.GetOne(_logger, eventHandler.EventHandler, eventHandler.Scope);

        var info = _eventHandlers.All.FirstOrDefault(_ => _.Id == eventHandler);

        if (info == default)
        {
            Log.EventHandlerNotRegistered(_logger, eventHandler.EventHandler, eventHandler.Scope);
            response.Failure = _exceptionToFailureConverter.ToFailure(new EventHandlerNotRegistered(eventHandler));
            return(Task.FromResult(response));
        }

        response.EventHandlers = CreateStatusFromInfo(info, request.TenantId?.ToGuid());
        return(Task.FromResult(response));
    }