/// <summary> /// Archives the sitemap. /// </summary> /// <param name="sitemap">The sitemap.</param> public void ArchiveSitemap(Sitemap sitemap) { var archive = new SitemapArchive { Sitemap = sitemap, Title = sitemap.Title, ArchivedVersion = ToJson(sitemap) }; repository.Save(archive); }
/// <summary> /// Restores the sitemap from archive. /// </summary> /// <param name="archive">The archive.</param> /// <returns> /// Restored sitemap. /// </returns> public Sitemap RestoreSitemapFromArchive(SitemapArchive archive) { var sitemap = archive.Sitemap; var archivedSitemap = FromJson(archive.ArchivedVersion); foreach (var sitemapNode in sitemap.Nodes) { repository.Delete(sitemapNode); } sitemap.Title = archive.Title; repository.Save(sitemap); RestoreTheNodes(sitemap, null, archivedSitemap.Nodes.Where(node => node.ParentNode == null).OrderBy(node => node.DisplayOrder).ToList()); return(sitemap); }
/// <summary> /// Restores the sitemap from archive. /// </summary> /// <param name="archive">The archive.</param> /// <returns> /// Restored sitemap. /// </returns> public Sitemap RestoreSitemapFromArchive(SitemapArchive archive) { var sitemap = archive.Sitemap; var archivedSitemap = FromJson(archive.ArchivedVersion); foreach (var sitemapNode in sitemap.Nodes) { repository.Delete(sitemapNode); } sitemap.Title = archive.Title; repository.Save(sitemap); RestoreTheNodes(sitemap, null, archivedSitemap.Nodes.Where(node => node.ParentNode == null).OrderBy(node => node.DisplayOrder).ToList()); return sitemap; }