static bool PurgeSiteRecycleBin(string pSiteUrl, string pListName, int pMaxRecycleBinDelete) { try { using (SPSite site = new SPSite(pSiteUrl)) { LogMessage(DateTime.Now + ": started purging Site Recycle Bin"); LogMessage(DateTime.Now + ": " + site.RecycleBin.Count + " items in Site Recycle Bin"); SPRecycleBinQuery query = new SPRecycleBinQuery(); query.RowLimit = pMaxRecycleBinDelete; SPRecycleBinItemCollection recycleitems = site.GetRecycleBinItems(query); if (_ReportOnly == false) // delete items { foreach (SPRecycleBinItem item in recycleitems) { if (item.DirName.Contains(_ListName)) // item is from the Workflow History list { item.Delete(); _SiteRecycleBinCounter++; } } LogMessage(DateTime.Now + ": MaxRecycleBinDelete: " + pMaxRecycleBinDelete); LogMessage(DateTime.Now + ": " + _SiteRecycleBinCounter + " items purged"); LogMessage(DateTime.Now + ": finished purging Site Recycle Bin"); } else // in Report Mode - read-only { foreach (SPRecycleBinItem item in recycleitems) { if (item.DirName.Contains(_ListName)) // item is from the Workflow History list { _SiteRecycleBinCounter++; } } LogMessage(DateTime.Now + ": running in Report Mode (read-only)"); LogMessage(DateTime.Now + ": MaxRecycleBinDelete: " + pMaxRecycleBinDelete); LogMessage(DateTime.Now + ": " + _SiteRecycleBinCounter + " items will be deleted"); LogMessage(DateTime.Now + ": finished purging Site Recycle Bin"); } } // end using return(true); } // end try catch (Exception ex) { LogMessage(DateTime.Now + ": ERROR in PurgeSiteRecycleBin: " + ex.Message); LogMessage(DateTime.Now + ": finished purging Site Recycle Bin"); return(false); } }