Example #1
0
        private static void TestSubscriptionExecution(string groupID)
        {
            string interestGroupLocation = "grp/" + groupID + "/";
            var    informationObjects    =
                StorageSupport.CurrActiveContainer.GetInformationObjects(interestGroupLocation, null,
                                                                         io => io is AddressAndLocation &&
                                                                         SubscribeSupport.GetSubscriptions(
                                                                             io.RelativeLocation) != null).ToArray
                    ();
            OperationRequest operationRequest       = new OperationRequest();
            SubscriptionChainRequestContent content = SubscriptionChainRequestContent.CreateDefault();
            SubscriptionChainRequestMessage message = SubscriptionChainRequestMessage.CreateDefault();

            message.ContentItemID = content.ID;
            content.SubmitTime    = DateTime.UtcNow;
            SubscriptionTarget[] targets = informationObjects.
                                           Select(io =>
            {
                SubscriptionTarget target = SubscriptionTarget.CreateDefault();
                target.BlobLocation       = io.RelativeLocation;
                return(target);
            }).ToArray();
            content.SubscriptionTargetCollection.CollectionContent.AddRange(targets);
            content.StoreInformation();
            WorkerSupport.ExecuteSubscriptionChain(message);
        }
Example #2
0
        public static void ExecuteSubscriptionChain(SubscriptionChainRequestMessage subscriptionChainRequest)
        {
            InformationContext.Current.IsExecutingSubscriptions = true;
            SubscriptionChainRequestContent requestContent =
                SubscriptionChainRequestContent.RetrieveFromDefaultLocation(subscriptionChainRequest.ContentItemID);

            requestContent.ProcessingStartTime = DateTime.UtcNow;
            requestContent.StoreInformation();
            string[] subscriptionTargetList =
                requestContent.SubscriptionTargetCollection.CollectionContent.Select(subTarget => subTarget.BlobLocation)
                .ToArray();
            var subscriptions    = SubscribeSupport.GetSubscriptionChainItemsInOrderOfExecution(subscriptionTargetList);
            int currSubscription = 1;
            var informationObjectSubscriptions =
                subscriptions.Where(sub => sub.SubscriptionType != SubscribeSupport.SubscribeType_WebPageToSource).
                ToArray();
            var webPageSubscriptions =
                subscriptions.Where(sub => sub.SubscriptionType == SubscribeSupport.SubscribeType_WebPageToSource).
                ToArray();

            foreach (var subscription in informationObjectSubscriptions)
            {
                ExecuteSubscription(subscription);
                Debug.WriteLine("Executing subscription {0} of total {1} of {2} for {3}", currSubscription++, subscriptions.Length, subscription.SubscriptionType,
                                subscription.SubscriberRelativeLocation);
            }
            requestContent.ProcessingEndTimeInformationObjects = DateTime.UtcNow;
            requestContent.StoreInformation();
            foreach (var subscription in webPageSubscriptions)
            {
                //ExecuteSubscription(subscription);
                OperationRequest operationRequest = new OperationRequest();
                operationRequest.SubscriberNotification = subscription;
                QueueSupport.PutToOperationQueue(operationRequest);
                Debug.WriteLine("Executing subscription {0} of total {1} of {2} for {3}", currSubscription++, subscriptions.Length, subscription.SubscriptionType,
                                subscription.SubscriberRelativeLocation);
            }
            requestContent.ProcessingEndTimeWebTemplatesRendering = DateTime.UtcNow;
            requestContent.ProcessingEndTime = DateTime.UtcNow;
            requestContent.StoreInformation();
            InformationContext.Current.IsExecutingSubscriptions = false;
        }
Example #3
0
 public static void ExecuteSubscriptionChain(SubscriptionChainRequestMessage subscriptionChainRequest)
 {
     InformationContext.Current.IsExecutingSubscriptions = true;
     SubscriptionChainRequestContent requestContent =
         SubscriptionChainRequestContent.RetrieveFromDefaultLocation(subscriptionChainRequest.ContentItemID);
     requestContent.ProcessingStartTime = DateTime.UtcNow;
     requestContent.StoreInformation();
     string[] subscriptionTargetList =
         requestContent.SubscriptionTargetCollection.CollectionContent.Select(subTarget => subTarget.BlobLocation)
             .ToArray();
     var subscriptions = SubscribeSupport.GetSubscriptionChainItemsInOrderOfExecution(subscriptionTargetList);
     int currSubscription = 1;
     var informationObjectSubscriptions =
         subscriptions.Where(sub => sub.SubscriptionType != SubscribeSupport.SubscribeType_WebPageToSource).
             ToArray();
     var webPageSubscriptions =
         subscriptions.Where(sub => sub.SubscriptionType == SubscribeSupport.SubscribeType_WebPageToSource).
             ToArray();
     foreach (var subscription in informationObjectSubscriptions)
     {
         ExecuteSubscription(subscription);
         Debug.WriteLine("Executing subscription {0} of total {1} of {2} for {3}", currSubscription++, subscriptions.Length, subscription.SubscriptionType,
             subscription.SubscriberRelativeLocation);
     }
     requestContent.ProcessingEndTimeInformationObjects = DateTime.UtcNow;
     requestContent.StoreInformation();
     foreach (var subscription in webPageSubscriptions)
     {
         //ExecuteSubscription(subscription);
         OperationRequest operationRequest = new OperationRequest();
         operationRequest.SubscriberNotification = subscription;
         QueueSupport.PutToOperationQueue(operationRequest);
         Debug.WriteLine("Executing subscription {0} of total {1} of {2} for {3}", currSubscription++, subscriptions.Length, subscription.SubscriptionType,
             subscription.SubscriberRelativeLocation);
     }
     requestContent.ProcessingEndTimeWebTemplatesRendering = DateTime.UtcNow;
     requestContent.ProcessingEndTime = DateTime.UtcNow;
     requestContent.StoreInformation();
     InformationContext.Current.IsExecutingSubscriptions = false;
 }