Exemple #1
0
        public static void RefreshAccountTemplates(string acctID, bool useWorker, params string[] viewTypesToRefresh)
        {
            string currContainerName    = StorageSupport.CurrActiveContainer.Name;
            string syscontentRoot       = "sys/AAA/";
            string acctTemplateLocation = "acc/" + acctID + "/" + DefaultWebTemplateLocation;
            string acctSiteLocation     = "acc/" + acctID + "/" + DefaultWebSiteLocation;
            string acctViewLocation     = acctSiteLocation + "/" + DefaultAccountViewLocation;

            // Sync to account local template
            var accountLocalTemplate = SyncTemplatesToSite(currContainerName, syscontentRoot + DefaultAccountTemplates, currContainerName, acctTemplateLocation, useWorker, false);
            // Render local template
            var renderLocalTemplate = SyncTemplatesToSite(currContainerName, acctTemplateLocation, currContainerName, acctSiteLocation, useWorker, true);
            List <OperationRequest> operationRequests = new List <OperationRequest>();

            operationRequests.Add(accountLocalTemplate);
            operationRequests.Add(renderLocalTemplate);
            foreach (string viewTypeToRefresh in viewTypesToRefresh)
            {
                OperationRequest refreshOp = RefreshDefaultViews(acctViewLocation, viewTypeToRefresh, useWorker);
                operationRequests.Add(refreshOp);
            }
            if (useWorker)
            {
                QueueSupport.PutToOperationQueue(operationRequests.ToArray());
            }
        }
Exemple #2
0
        public void PerformFinalizingActions()
        {
            var grouped = SubscriptionChainTargetsToUpdate.GroupBy(item => item.Owner);

            foreach (var grpItem in grouped)
            {
                SubscribeSupport.AddPendingRequests(grpItem.Key, grpItem.Select(item => item.TargetLocation).ToArray());
            }
            FinalizingOperationQueue.ForEach(oper => QueueSupport.PutToOperationQueue(oper));
        }
Exemple #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;
        }
Exemple #4
0
        public static void RenderWebTemplate(string grpID, bool useWorker, params string[] viewTypesToRefresh)
        {
            string currContainerName = StorageSupport.CurrActiveContainer.Name;
            string groupWwwPublicTemplateLocation = "grp/" + grpID + "/" + DefaultPublicWwwTemplateLocation;
            string groupWwwPublicSiteLocation     = "grp/" + grpID + "/" + DefaultPublicWwwSiteLocation;
            string groupWwwSiteViewLocation       = groupWwwPublicSiteLocation + "/" + DefaultPublicWwwViewLocation;

            List <OperationRequest> operationRequests = new List <OperationRequest>();
            var renderWwwTemplates = SyncTemplatesToSite(currContainerName, groupWwwPublicTemplateLocation, currContainerName, groupWwwPublicSiteLocation, useWorker, true);

            operationRequests.Add(renderWwwTemplates);
            foreach (string viewTypeToRefresh in viewTypesToRefresh)
            {
                OperationRequest refreshOp = RefreshDefaultViews(groupWwwSiteViewLocation, viewTypeToRefresh, useWorker);
                operationRequests.Add(refreshOp);
            }
            if (useWorker)
            {
                QueueSupport.PutToOperationQueue(operationRequests.ToArray());
            }
        }
Exemple #5
0
 public static void ExecuteSubscriptionChains(params SubscriptionChainRequestContent[] contentList)
 {
     InformationContext.Current.IsExecutingSubscriptions = true;
     try
     {
         string[] subscriptionTargetList =
             contentList.SelectMany(reqContent => reqContent.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);
         }
         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);
         }
     }
     finally
     {
         InformationContext.Current.IsExecutingSubscriptions = false;
     }
 }
Exemple #6
0
        public static void RefreshGroupTemplates(string grpID, bool useWorker, params string[] viewTypesToRefresh)
        {
            string syscontentRoot    = "sys/AAA/";
            string currContainerName = StorageSupport.CurrActiveContainer.Name;
            string anonContainerName = GetCurrentAnonContainerName(); //StorageSupport.CurrAnonPublicContainer.Name;
            //"demopublicoip-aaltoglobalimpact-org";
            string groupTemplateLocation       = "grp/" + grpID + "/" + DefaultWebTemplateLocation;
            string groupSiteLocation           = "grp/" + grpID + "/" + DefaultWebSiteLocation;
            string groupSiteViewLocation       = groupSiteLocation + "/" + DefaultGroupViewLocation;
            string groupPublicTemplateLocation = "grp/" + grpID + "/" + DefaultPublicGroupTemplateLocation;
            string groupPublicSiteLocation     = "grp/" + grpID + "/" + DefaultPublicGroupSiteLocation;
            string groupPublicViewLocation     = groupPublicSiteLocation + "/" + DefaultPublicGroupViewLocation;
            string defaultPublicSiteLocation   = "grp/default/" + DefaultPublicGroupSiteLocation;
            //string groupWwwPublicTemplateLocation = "grp/" + grpID + "/" + DefaultPublicWwwTemplateLocation;
            //string groupWwwPublicSiteLocation = "grp/" + grpID + "/" + DefaultPublicWwwSiteLocation;
            //string groupWwwSiteViewLocation = groupWwwPublicSiteLocation + "/" + DefaultPublicWwwViewLocation;
            string aboutAuthTargetLocation = DefaultAboutTargetLocation;

            // Sync to group local template
            List <OperationRequest> operationRequests = new List <OperationRequest>();
            var localGroupTemplates = SyncTemplatesToSite(currContainerName, syscontentRoot + DefaultGroupTemplates, currContainerName, groupTemplateLocation, useWorker, false);
            // Render local template
            var renderLocalTemplates = SyncTemplatesToSite(currContainerName, groupTemplateLocation, currContainerName, groupSiteLocation, useWorker, true);
            // Sync public pages to group local template
            var publicGroupTemplates = SyncTemplatesToSite(currContainerName, syscontentRoot + DefaultPublicGroupTemplates, currContainerName, groupPublicTemplateLocation, useWorker, false);
            // Render local template
            var renderPublicTemplates = SyncTemplatesToSite(currContainerName, groupPublicTemplateLocation, currContainerName, groupPublicSiteLocation, useWorker, true);

            /*
             * // Sync public www-pages to group local template
             * var publicWwwTemplates = SyncTemplatesToSite(currContainerName, syscontentRoot + DefaultPublicWwwTemplates,
             *                                           currContainerName, groupWwwPublicTemplateLocation, useWorker, false);
             *
             * // Render local template
             * var renderWwwTemplates = SyncTemplatesToSite(currContainerName, groupWwwPublicTemplateLocation, currContainerName, groupWwwPublicSiteLocation, useWorker, true);
             */
            operationRequests.Add(localGroupTemplates);
            operationRequests.Add(renderLocalTemplates);
            operationRequests.Add(publicGroupTemplates);
            operationRequests.Add(renderPublicTemplates);
            //operationRequests.Add(publicWwwTemplates);
            //operationRequests.Add(renderWwwTemplates);
            foreach (string viewTypeToRefresh in viewTypesToRefresh)
            {
                OperationRequest refreshOp = RefreshDefaultViews(groupSiteViewLocation, viewTypeToRefresh, useWorker);
                operationRequests.Add(refreshOp);
                refreshOp = RefreshDefaultViews(groupPublicViewLocation, viewTypeToRefresh, useWorker);
                operationRequests.Add(refreshOp);
                //refreshOp = RefreshDefaultViews(groupWwwSiteViewLocation, viewTypeToRefresh, useWorker);
                //operationRequests.Add(refreshOp);
            }
            // Publish group public content
#if never // Moved to separate operations to be web-ui activated
            var publishPublicContent = SyncTemplatesToSite(currContainerName, groupPublicSiteLocation, anonContainerName, groupPublicSiteLocation, useWorker, false);
            operationRequests.Add(publishPublicContent);
            if (grpID == DefaultGroupID) // Currently also publish www
            {
                OperationRequest publishDefault = SyncTemplatesToSite(currContainerName, groupPublicSiteLocation, anonContainerName, defaultPublicSiteLocation, useWorker, false);
                operationRequests.Add(publishDefault);
                publishDefault = SyncTemplatesToSite(currContainerName, groupPublicSiteLocation, currContainerName,
                                                     aboutAuthTargetLocation, useWorker, false);
                operationRequests.Add(publishDefault);
                string defaultWwwContainerName = GetCurrentWwwContainerName();
                publishDefault = SyncTemplatesToSite(currContainerName, groupWwwPublicSiteLocation,
                                                     defaultWwwContainerName, "", useWorker, false);
                operationRequests.Add(publishDefault);
            }
#endif
            if (useWorker)
            {
                //QueueSupport.PutToOperationQueue(localGroupTemplates, renderLocalTemplates);
                QueueSupport.PutToOperationQueue(operationRequests.ToArray());
            }
        }