示例#1
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));
    }
示例#2
0
    public async Task <IActionResult> GetOne(GetOneRequest request)
    {
        var getOneResult = await _projectionsService.TryGetOne(
            request.Projection,
            request.Scope,
            request.Key,
            request.Context.ExecutionContext.ToExecutionContext(),
            System.Threading.CancellationToken.None).ConfigureAwait(false);

        if (getOneResult.Success)
        {
            return(Ok(GetOneResponse.From(getOneResult.Result)));
        }
        Response.StatusCode = StatusCodes.Status500InternalServerError;
        return(new JsonResult(GetOneResponse.From(getOneResult.Exception.ToFailure())));
    }
    /// <inheritdoc/>
    public override async Task <GetOneResponse> GetOne(GetOneRequest request, ServerCallContext context)
    {
        var response     = new GetOneResponse();
        var getOneResult = await _projectionsService.TryGetOne(
            request.ProjectionId.ToGuid(),
            request.ScopeId.ToGuid(),
            request.Key,
            request.CallContext.ExecutionContext.ToExecutionContext(),
            context.CancellationToken).ConfigureAwait(false);

        if (getOneResult.Success)
        {
            response.State = getOneResult.Result.ToProtobuf();
            Log.SendingGetOneResult(_logger, request.Key, request.ProjectionId, request.ScopeId, getOneResult.Result.Type);
        }
        else
        {
            response.Failure = getOneResult.Exception.ToFailure();
            Log.SendingGetOneFailed(_logger, request.Key, request.ProjectionId, request.ScopeId, getOneResult.Exception);
        }

        return(response);
    }