Esempio n. 1
0
        /// <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);
        }