Exemplo n.º 1
0
        public async Task <TMessageResult> ProcessAsync <TMessage, TMessageResult>(TMessage message, ServerCallContext callContext)
            where TMessage : BaseMessage
            where TMessageResult : MessageResult, new()
        {
            try
            {
                var context = new GrpcContext(message, callContext);
                await _builder.DelegateProxyAsync(context);

                if (context.Result is TMessageResult)
                {
                    return((TMessageResult)context.Result);
                }
                else
                {
                    return(new TMessageResult()
                    {
                        Code = context.Result.Code, Message = context.Result.Message
                    });
                }
            }
            catch (Exception ex)
            {
                _logger.Error("消息处理失败,原因:{@Message},Msg:{@message}", ex, new object[] { message, ex.Message });
                return(new TMessageResult()
                {
                    Code = ResultCode.Exception, Message = "服务处理出错,请重试!"
                });
            }
        }
Exemplo n.º 2
0
        public async Task <TMessageResult> ProcessAsync <TMessage, TMessageResult>(
            TMessage message, ServerCallContext callContext)
            where TMessage : BaseMessage
            where TMessageResult : MessageResult, new()
        {
            try
            {
                var context = new GrpcContext(message, callContext);
                await _builder.DelegateProxyAsync(context);

                if (context.Result is TMessageResult)
                {
                    return((TMessageResult)context.Result);
                }
                else
                {
                    throw new InvalidOperationException("Cannot convert message result!");
                }
            }
            catch (Exception ex)
            {
                _log.LogError(ex, $"Message execute failed! reason:{ex.GetExceptionMessage()} Request:{_jsonSerializer.Serialize(message)}");
                throw;
            }
        }
Exemplo n.º 3
0
        public async Task <IMessageResultEnvelope> ProcessAsync(
            GrpcContext context, Func <IMessageEnvelope, IServiceScope, Task <IMessageResultEnvelope> > handler)
        {
            try
            {
                context.Hander = handler;
                await _builder.DelegateProxyAsync(context);

                return(context.Result);
            }
            catch (Exception ex)
            {
                _log.LogError(ex, $"Message execute failed! reason:{ex.GetExceptionMessage()} Request:{_jsonSerializer.Serialize(context.Message)}");
                throw;
            }
        }
Exemplo n.º 4
0
 public Task <TMessageResult> ProcessAsync <TMessage, TMessageResult>(TMessage message, ServerCallContext callContext)
     where TMessage : BaseMessage
     where TMessageResult : MessageResult, new()
 {
     return(Task.Run(() =>
     {
         var context = new GrpcContext(message, callContext);
         _builder.DelegateProxy(context);
         if (context.Result is TMessageResult)
         {
             return (TMessageResult)context.Result;
         }
         else
         {
             return new TMessageResult()
             {
                 Code = context.Result.Code, Message = context.Result.Message
             };
         }
     }));
 }
Exemplo n.º 5
0
 protected override Task DoHandleAsync(GrpcContext context)
 {
     Console.WriteLine("heelo");
     return(Task.CompletedTask);
 }