public virtual async Task Run(Subscription subscription)
        {
            Trace.WriteLine($"Running subscription {subscription.Name}");
            var events = _queryPerformer.ExecuteSubscriptionQuery(subscription);

            subscription.LastRunOn = SystemContext.Clock.Now;

            if (events.Events.Count() > 0 || subscription.Controls.ReportIfEmpty)
            {
                var response = _responseFormatter.FormatSubscriptionResponse(subscription.QueryName, subscription.Name, events);

                await SendResponse(subscription, response);
            }
            Trace.WriteLine($"Finished running subscription {subscription.Name}");
        }
Exemple #2
0
        public virtual void Run(Guid subscriptionId)
        {
            var subscription = _subscriptionRepository.LoadById(subscriptionId);

            Trace.WriteLine($"Running subscription {subscription.Id}");
            var events = _queryPerformer.ExecuteSubscriptionQuery(subscription);

            subscription.LastRunOn = SystemContext.Clock.Now;
            _subscriptionRepository.DeletePendingRequests(subscription.PendingRequests);

            if (events.Events.Count() > 0 || subscription.Controls.ReportIfEmpty)
            {
                var response = _responseFormatter.FormatSubscriptionResponse(subscription, events);

                SendResponse(subscription, response);
            }
            Trace.WriteLine($"Finished running subscription {subscription.Id}");
        }