Skip to main content

Umbraco Razor - Delete Pages by Category

The following script allows the User to delete a list of Event Pages by selecting a category:

The Second Example is the same as the First except the Umbraco Data type is listed in a Dropdown.

Demo


Example 1:

 @inherits umbraco.MacroEngines.DynamicNodeContext  
 @using umbraco.cms.businesslogic.web  
      @{  
           @* 1. Get the Querystring that Contains the Catecory from Part 3 *@  
           var qdeleteCat = Request["deleteCat"];  
           /* Filter*/  
           if (Request["deleteCat"] != null)  
           {  
            qdeleteCat = Request["deleteCat"];  
           }  
           else  
           {  
            qdeleteCat = "";  
           }  
           @* ------------------------------------------------------------- *@  
           @* 2. Get the Querystring that Contains the Confrim from Part 3 *@  
           var qConfirm = Request["confirmDelete"];  
           /* Filter*/  
           if (Request["confirmDelete"] != null)  
           {  
            qConfirm = Request["confirmDelete"];  
           }  
           else  
           {  
            qConfirm = "";  
           }  
           @* ------------------------------------------------------------- *@  
           @* 3.   
                a) Display a dialog for the user to enter the Catgory to be deleted.  
                b) List the Events that will be deleted.  
                c) Delete the Events after confirmation.  
           *@  
           @* a *@  
           if (qdeleteCat == "")   
           {  
                <div class="notification warning closeable" style="margin: 0 0 30px 0;">  
                <p>Please Enter the Category of the events you would like to delete:<p>  
                     <form><input type="text" id="deleteCat" name="deleteCat"></input></form>  
                     </div>  
           }  
           else{  
                     @* b *@  
                     if (qConfirm == "")  
                     {  
                          <p>Here are a list of Events that will be deleted. Confrim deletion by <a href="?deleteCat=@qdeleteCat&confirmDelete=true">Clicking Here</a></p>  
                       foreach (var thisPage in @Model.NodeById(1404).Descendants().Where("visible && NodeTypeAlias == \"AnEvent\""))  
                       {  
                            if (@thisPage.eventCategory.ToUpper().Equals(qdeleteCat.ToUpper()))  
                            {                   
                                     <p>@thisPage.Name  (<a href="@thisPage.Url" target="_blank">view</a>)</p>  
                            }  
                       }  
                     }  
                      @* c *@  
                     if (qConfirm == "true")  
                     {  
                          <p>The Folowing nodes have been DELETED:</p>  
                       foreach (var thisPage in @Model.NodeById(1404).Descendants().Where("visible && NodeTypeAlias == \"AnEvent\""))  
                       {  
                            if (@thisPage.eventCategory.ToUpper().Contains(qdeleteCat.ToUpper()))  
                            {                   
                                     <p>@thisPage.Name</p>  
                                     try{  
                                     <p> - Delete Node - </p>  
                                      Document docToDelete = new Document(@thisPage.Id);  
                                      umbraco.library.UnPublishSingleNode(docToDelete.Id);   
                                      docToDelete.delete(true);  
                                      umbraco.library.UpdateDocumentCache(docToDelete.Id);  
                                      }  
                                      catch{}    
                            }  
                       }  
                     }  
           }  
           @* ------------------------------------------------------------- *@  
      }  

Example 2

 @inherits umbraco.MacroEngines.DynamicNodeContext  
 @using umbraco.cms.businesslogic.web  
 @using System.Xml.XPath   
      @{  
           @* 1. Get the Querystring that Contains the Catecory from Part 3 *@  
           var qdeleteCat = Request["deleteCat"];  
           /* Filter*/  
           if (Request["deleteCat"] != null)  
           {  
            qdeleteCat = Request["deleteCat"];  
           }  
           else  
           {  
            qdeleteCat = "";  
           }  
           @* ------------------------------------------------------------- *@  
           @* 2. Get the Querystring that Contains the Confrim from Part 3 *@  
           var qConfirm = Request["confirmDelete"];  
           /* Filter*/  
           if (Request["confirmDelete"] != null)  
           {  
            qConfirm = Request["confirmDelete"];  
           }  
           else  
           {  
            qConfirm = "";  
           }  
           @* ------------------------------------------------------------- *@  
           @* 3.   
                a) Display a dialog for the user to enter the Catgory to be deleted.  
                b) List the Events that will be deleted.  
                c) Delete the Events after confirmation.  
           *@  
           @* a *@  
           if (qdeleteCat == "")   
           {  
                <div class="notification warning closeable" style="margin: 0 0 30px 0;">  
                <p>Please Enter the Category of the events you would like to delete:<p>  
                     <form method="GET">  
                     @{  
                          XPathNodeIterator iterator = umbraco.library.GetPreValues(1554);  
                          iterator.MoveNext();  
                          XPathNodeIterator preValues = iterator.Current.SelectChildren("preValue", "");  
                          <select id="deleteCat" name="deleteCat">  
                          @while (preValues.MoveNext())  
                          {  
                               string preValue = preValues.Current.Value;  
                               <option value="@preValue">@preValue</option>   
                          }  
                          </select>  
                     }  
                     <input type="submit" value="Submit">  
                     </form>  
                     </div>  
           }  
           else{  
                     @* b *@  
                     if (qConfirm == "")  
                     {  
                          <p>Here are a list of Events that will be deleted. Confrim deletion by <a href="?deleteCat=@qdeleteCat&confirmDelete=true">Clicking Here</a></p>  
                       foreach (var thisPage in @Model.NodeById(1404).Descendants().Where("visible && NodeTypeAlias == \"AnEvent\""))  
                       {  
                            if (@thisPage.eventCategory.ToUpper().Equals(qdeleteCat.ToUpper()))  
                            {                   
                                     <p>@thisPage.Name  (<a href="@thisPage.Url" target="_blank">view</a>)</p>  
                            }  
                       }  
                     }  
                      @* c *@  
                     if (qConfirm == "true")  
                     {  
                          <p>The Folowing nodes have been DELETED:</p>  
                       foreach (var thisPage in @Model.NodeById(1404).Descendants().Where("visible && NodeTypeAlias == \"AnEvent\""))  
                       {  
                            if (@thisPage.eventCategory.ToUpper().Contains(qdeleteCat.ToUpper()))  
                            {                   
                                     <p>@thisPage.Name</p>  
                                     try{  
                                     <p> - Delete Node - </p>  
                                      Document docToDelete = new Document(@thisPage.Id);  
                                      umbraco.library.UnPublishSingleNode(docToDelete.Id);   
                                      docToDelete.delete(true);  
                                      umbraco.library.UpdateDocumentCache(docToDelete.Id);  
                                      }  
                                      catch{}    
                            }  
                       }  
                     }  
           }  
           @* ------------------------------------------------------------- *@  
      }  

Comments

Popular posts from this blog

Create a .NET Contact Form that Gets the Last Url Visited in C# Can also be Used in Umbraco

This is a Simple Contact From done in C# .Net and also can be used in Umbraco.  Paste the code in to Visual Web Developer for a better view. The important bits are coment in the second file.  One of the Commented out lines highlights how to get the mailto address from an Umbraco field. The code Below includes the myContactForm.ascx.cs codebehind file and the myContactForm.ascx file. 1) The myContactForm.ascx file:  <%@ Control Language="C#" AutoEventWireup="true" CodeFile="ContactFormforPublications.ascx.cs" Inherits="usercontrols_ContactFormPublications" %> <div class="contact-form" id="contactForm" runat="server">     <h3>Request a Publication</h3>     <div class='int'>         <form runat="server">         <asp:Panel DefaultButton="contactFormSubmit" runat="server">         <fieldset>             <div class='

Umbraco 7 - C# Razor - Passing a parameter variable from a Template to a Partial View.

Passing a parameter variable from a Template to a Partial View Example - Passing a Page Id to a Partial View. In the example below we are passing 3 page Ids (1090. 1091, 1092) to a partial view.  The Partial View will display the details for each of these nodes on a home page.  See final output below. 1) In your Template: @Html.Partial("HomePageLinksToLandingPages", new ViewDataDictionary{{ "pageId", 1090}}) @Html.Partial("HomePageLinksToLandingPages", new ViewDataDictionary{{ "pageId", 1091}}) @Html.Partial("HomePageLinksToLandingPages", new ViewDataDictionary{{ "pageId", 1092}}) 2) The Partial View: @inherits Umbraco.Web.Mvc.UmbracoTemplatePage @{ var thisPageId = 1090; var stringPage = @ViewData["pageId"]; thisPageId = Convert.ToInt32(stringPage); } <div class="col-md-4"> <arti