private async Task SendToPortalQueue(IMassTransitEvent evnt) { if (_portalSendEndPoint != null) { await _portalSendEndPoint.Send(evnt); } else { using (var context = Context.CreateScope()) { var bus = context.ServiceProvider.GetService <IBusControl>(); _portalSendEndPoint = await bus.GetSendEndpoint(_queuePortal); await _portalSendEndPoint.Send(evnt); } } }
private void PustToUIQueue(IMassTransitEvent @event, string queue) { using (var context = Context.CreateScope()) { var busControl = context.ServiceProvider.GetService <IBusControl>(); _sendEndPoint = busControl.GetSendEndpoint(new Uri(queue)).ConfigureAwait(false).GetAwaiter().GetResult();//ConfigureAwait(false) to Prevent Deadlock[https://msdn.microsoft.com/en-us/magazine/mt238404.aspx] if (_sendEndPoint != null) { foreach (var me in State.PendingResponses) { _sendEndPoint.Send(me); } State.PendingResponses.Clear(); _sendEndPoint.Send(@event); } else { State.PendingResponses.Add(@event); } } }