Пример #1
0
        public void TestBuildPostDataForTags2()
        {
            string postData = CdnPurger.BuildPostData(new string[] { "tag1", "tag2" });

            Console.WriteLine(postData);
            Assert.IsTrue("{\"tags\":[\"tag1\",\"tag2\"]}" == postData);
        }
Пример #2
0
        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);
        }
Пример #3
0
        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"
            });
        }
Пример #4
0
        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);
            }
        }
Пример #5
0
        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"
            });
        }