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

Umbraco Razor Sort Nodes Ascending or Descending

Umbraco Razor get Querystring

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