/// <summary> /// Generate the necessary parameters /// </summary> public List <KeyValuePair <string, string> > GetParams() { var p = new List <KeyValuePair <string, string> >(); if (FriendlyName != null) { p.Add(new KeyValuePair <string, string>("FriendlyName", FriendlyName)); } if (EventTypes != null) { p.AddRange(EventTypes.Select(prop => new KeyValuePair <string, string>("EventTypes", prop))); } if (WebhookUrl != null) { p.Add(new KeyValuePair <string, string>("WebhookUrl", WebhookUrl)); } if (Status != null) { p.Add(new KeyValuePair <string, string>("Status", Status.ToString())); } return(p); }
private async Task <IMessage> SubscribeToEvents(IBus bus, IMessage message, IMessagesWaiter messagesWaiter) { // Handle only commands if (message is ICommand) { // Create events to subscribe for this command Type[] eventTypes = EventTypes.Select(t => t.IsGenericTypeDefinition ? t.MakeGenericType(message.GetType()) : t).ToArray(); // Create wait task using (IMessageWaiter messageWaiter = await messagesWaiter.GetAsync(eventTypes, m => m is ICommandEvent ce && ce.CommandId == message.MessageId)) { return(await messageWaiter.WhenAsync(TimeSpan.FromSeconds(30))); } } return(null); }