public IObservable <Unit> CreateDeal(CreateDealCommand command) { return(Observable.Create <Unit>( obs => { var subscription = GetDealUpdates(command.DealId) .Select(_ => Unit.Default) .Take(1) .Timeout(TimeSpan.FromSeconds(5), Scheduler.Default) .Subscribe(obs); //Send the command _messageBusClient.Enqueue(command); return subscription; })); }
public static Task Enqueue <T>(this IMessageBusClient client, T message) { var payload = message.ToJson(); return(client.Enqueue(message.GetType().Name, payload)); }