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()); } }
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)); }
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; }
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()); } }
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; } }
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()); } }