コード例 #1
0
        public StreamFlowInvokeResponse Invoke(StreamFlowMessageBO request)
        {
            var entity = new InvokeMethodQuery()
            {
                Context      = Context,
                MessageQueue = request
            };
            var response = _mediator.Send(entity).Result;

            return(response.Response);
        }
コード例 #2
0
        public async Task <HttpStatusCode> Push(StreamFlowMessageBO request)
        {
            var entity = new PushMessageCmd()
            {
                Context      = Context,
                MessageQueue = request
            };
            var response = await _mediator.Send(entity).ConfigureAwait(false);

            return(response.HttpStatusCode);
        }
コード例 #3
0
 public InvokeMethodResponseCmd(StreamFlowMessageBO messageQueue)
 {
     MessageQueue = messageQueue;
 }
コード例 #4
0
 public InvokeMethodQuery(StreamFlowMessageBO messageQueue)
 {
     MessageQueue = messageQueue;
 }
コード例 #5
0
 public PushMessageCmd(StreamFlowMessageBO messageQueue)
 {
     MessageQueue = messageQueue;
 }
コード例 #6
0
 public async Task PushAsync(StreamFlowMessageBO request)
 {
     request.Recipient ??= TargetClient;
     await SignalRService.InvokeVoidAsync("Push", request);
 }
コード例 #7
0
        public async Task <StreamFlowInvokeResult <TResponse> > InvokeAsync <TResponse>(StreamFlowMessageBO request)
        {
            //request.Recipient ??= TargetClient;
            var signalRResponse = await SignalRService.InvokeAsync(request);

            var tResponse = Activator.CreateInstance <TResponse>();

            switch (signalRResponse.HttpStatusCode)
            {
            case HttpStatusCode.Processing:

                tResponse.GetType().GetProperty("Message")?
                .SetValue(tResponse, $"Request is queued, waiting for connection to be re-established", null);
                tResponse.GetType().GetProperty("HttpStatusCode")?
                .SetValue(tResponse, HttpStatusCode.Processing, null);

                return(new(){
                    HttpStatusCode = HttpStatusCode.Processing,
                    Response = tResponse
                });

            case HttpStatusCode.NotFound:
                {
                    tResponse.GetType().GetProperty("Message")?
                    .SetValue(tResponse, $"Service is currently offline", null);
                    tResponse.GetType().GetProperty("HttpStatusCode")?
                    .SetValue(tResponse, HttpStatusCode.NotFound, null);

                    return(new(){
                        HttpStatusCode = HttpStatusCode.NotFound,
                        Response = tResponse
                    });
                }

            default:
                return(new(){
                    HttpStatusCode = HttpStatusCode.Accepted,
                    Response = JsonSerializer.Deserialize <TResponse>(signalRResponse.Response)
                });
            }
        }