public void TestBuildPostDataForTags2() { string postData = CdnPurger.BuildPostData(new string[] { "tag1", "tag2" }); Console.WriteLine(postData); Assert.IsTrue("{\"tags\":[\"tag1\",\"tag2\"]}" == postData); }
public void TestBuildPostData2() { string postData = CdnPurger.BuildPostData("goyabeta-57a7.kxcdn.com", new string[] { "test.html" }); Console.WriteLine(postData); Assert.IsTrue("{\"urls\":[\"goyabeta-57a7.kxcdn.com/test.html\"]}" == postData); }
public DialogViewModel Purge(int nodeId) { if (nodeId == -1 && CdnPurger.PurgeMethod == "tag") { // purge all ("umbhtml") CdnPurger.PurgeByTag(new string[] { "umbhtml" }); return(new DialogViewModel() { NodeId = nodeId, NodeName = "All content", Status = "purged" }); } try { var node = Umbraco.TypedContent(nodeId); if (node != null) { if (CdnPurger.PurgeMethod == "tag") { CdnPurger.PurgeByTag(new string[] { "node-" + node.Id }); } else { var urlProvider = UmbracoContext.Current.RoutingContext.UrlProvider; List <string> urls = new List <string>(urlProvider.GetOtherUrls(nodeId)); urls.Add(urlProvider.GetUrl(nodeId)); CdnPurger.PurgeByUrls(urls.ToArray()); } return(new DialogViewModel() { NodeId = nodeId, NodeName = node.Name, Status = "purged" }); } } catch (Exception ex) { return(new DialogViewModel() { ErrorMessage = "Error: " + ex.Message, Status = "error" }); } return(new DialogViewModel() { ErrorMessage = "Error purging CDN.", Status = "error" }); }
private static void PurgeCdn_MenuRendering(TreeControllerBase sender, MenuRenderingEventArgs e) { if (sender.TreeAlias != "content") { return; } if (CdnPurger.IsActive()) { var menuItem = new Umbraco.Web.Models.Trees.MenuItem("purgeCdn", "Purge CDN"); menuItem.AdditionalData.Add("actionView", "/App_Plugins/PurgeCdn/Views/purgecdn.html"); menuItem.AdditionalData.Add("contentId", e.NodeId); menuItem.Icon = "axis-rotation"; menuItem.SeperatorBefore = true; e.Menu.Items.Insert(e.Menu.Items.Count, menuItem); } }
public DialogViewModel InitDialog(int nodeId) { if (nodeId == -1) { if (CdnPurger.PurgeMethod == "tag") { return(new DialogViewModel() { NodeId = nodeId, NodeName = "All content", Status = "ok" }); } else { return(new DialogViewModel() { Status = "error", ErrorMessage = "Purging by tag not enabled." }); } } if (nodeId < -1) { return(new DialogViewModel() { Status = "error", ErrorMessage = "Purging of this node is not allowed." }); } var node = Umbraco.TypedContent(nodeId); if (node == null) { return(new DialogViewModel() { Status = "error", ErrorMessage = "Invalid node id: " + nodeId }); } if (node.TemplateId == 0) { return(new DialogViewModel() { Status = "error", ErrorMessage = "There is no template for this node." }); } // if KeyCDN Client ID and/or Secret are missing, return error message if (!CdnPurger.IsActive()) { return new DialogViewModel() { Status = "error", ErrorMessage = "KeyCDN Client ID and/or Secret not set." } } ; return(new DialogViewModel() { NodeId = nodeId, NodeName = node.Name, Status = "ok" }); }