Fetch items from the Recycle bin
The data managers, for example the NewsManager, are not responsible for storing information about what items have been sent to the Recycle bin, since the items are not moved but only marked as deleted. This is the responsibility of the Recycle Bin module, which is notified for all items that were moved in or out of the Recycle Bin through the Telerik.Sitefinity.Services.EventHub.
Get all items in the Recycle bin
To check what items are in the Recycle bin, use the IRecycleBinManager:
using System.Linq;
using Telerik.Sitefinity.RecycleBin;
namespace SitefinityWebApp
{
public class FetchItemsFromRecycleBin
{
public IQueryable FetchItemsFromRB ()
{
IRecycleBinManager recycleBinItemsManager = RecycleBinManagerFactory.GetManager();
IQueryable<IRecycleBinDataItem> recycleBinEntries = recycleBinItemsManager.GetRecycleBinItems();
return recycleBinEntries;
}
}
}
Get a single item from the Recycle bin
You could also get the specific **IRecycleBinDataItem**for the corresponding data item that is marked as deleted in the following way:
using System;
using Telerik.Sitefinity.Modules.News;
using Telerik.Sitefinity.News.Model;
using Telerik.Sitefinity.RecycleBin;
namespace SitefinityWebApp
{
public class FetchSingleItemsFromRecycleBin
{
protected NewsItem FetchSingleItemFromRecycleBin(Guid itemId)
{
NewsManager newsManager = NewsManager.GetManager();
NewsItem newsItemToDelete = newsManager.GetNewsItem(itemId);
newsManager.RecycleBin.MoveToRecycleBin(newsItemToDelete);
newsManager.SaveChanges();
IRecycleBinManager recycleBinItemsManager = RecycleBinManagerFactory.GetManager();
IRecycleBinDataItem recycleBinEntry = recycleBinItemsManager.GetRecycleBinItemForDataItem(newsItemToDelete.Id);
return newsItemToDelete;
}
}
}
The **IRecycleBinDataItem**contains general information for each data item that was sent to the Recycle bin and Sitefinity CMS uses it to visualize the Recycle bin page in the backend.