コード例 #1
0
        public JToken HandleEvent(string sourceApi, string eventName, JToken eventPayload, string[] eventParameters)
        {
            var retval = JToken.Parse("{}");

            if (eventSubscriptionRepository.IsEventSubscriptionRegistered(eventName))
            {
                var subscriptions = eventSubscriptionRepository.FetchSubscriptions(eventName);
                if (subscriptions.Count == 1)
                {
                    retval = subscriptions[0].TriggerEvent(sourceApi, eventPayload, eventParameters);
                }
                else
                {
                    retval = JArray.FromObject(subscriptions.Select(subscription => subscription.TriggerEvent(sourceApi, eventPayload, eventParameters)).ToArray());
                }
            }
            else
            {
                retval["NoSubscriptions"] = $"No subscriptions exist for event {eventName}";
            }
            return(retval);
        }