This short blog post contains information about how to restore archived item programmatically in Sitecore 8. Use the below code snippet to achieve the functionality:
void RestoreArchivedItems()
{
using (new SecurityDisabler())
{
DateTime archiveDate = new DateTime(2016, 11, 1);
string originalLocationPathPrefix = "/sitecore/content/Home";
string archivedBy = "sitecore\\admin";
// get the archive database for the master database
Sitecore.Data.Archiving.Archive archive = Sitecore.Data.Database.GetDatabase("master").Archives["archive"];
// get archived items
var archivedItems =
archive.GetEntries(0, int.MaxValue)
.Where(entry =>
entry.ArchiveDate > archiveDate &&
entry.OriginalLocation.StartsWith(originalLocationPathPrefix) && entry.ArchivedBy.Equals(archivedBy, StringComparison.OrdinalIgnoreCase)
).ToList();
foreach (var archiveItem in archivedItems)
{
// restore the item
archive.RestoreItem(archiveItem.ArchivalId);
}
}
}
Comments and suggestions are most welcome. Happy coding!
0 comments :
Post a Comment