public StreamFlowInvokeResponse Invoke(StreamFlowMessageBO request) { var entity = new InvokeMethodQuery() { Context = Context, MessageQueue = request }; var response = _mediator.Send(entity).Result; return(response.Response); }
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); }
public InvokeMethodResponseCmd(StreamFlowMessageBO messageQueue) { MessageQueue = messageQueue; }
public InvokeMethodQuery(StreamFlowMessageBO messageQueue) { MessageQueue = messageQueue; }
public PushMessageCmd(StreamFlowMessageBO messageQueue) { MessageQueue = messageQueue; }
public async Task PushAsync(StreamFlowMessageBO request) { request.Recipient ??= TargetClient; await SignalRService.InvokeVoidAsync("Push", request); }
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) }); } }