private void MovePageRecursively(Models.Site site, string pageFullName, string newParent, TableServiceContext serviceContext) { var oldPage = Get(new Page(site, pageFullName)); var entity = PageEntityHelper.ToPageEntity(oldPage); if (!string.IsNullOrEmpty(newParent)) { var newPage = new Page(new Page(site, newParent), oldPage.Name); entity.FullName = newPage.FullName; entity.ParentPage = newPage.Parent.FullName; } else { entity.FullName = oldPage.Name; entity.ParentPage = ""; } foreach (var item in ChildPages(oldPage)) { MovePageRecursively(site, item.FullName, entity.FullName, serviceContext); } serviceContext.AddObject(PageTable, entity); var oldEntity = PageEntityHelper.ToPageEntity(oldPage); serviceContext.AttachTo(PageTable, oldEntity, "*"); serviceContext.DeleteObject(oldEntity); }
public void SaveAsDraft(Models.Page page) { var entity = PageEntityHelper.ToPageEntity(page); var serviceContext = CloudTableHelper.GetTableServiceContext(); if (GetDraft(page) != null) { serviceContext.AttachTo(PageDraftTable, entity); serviceContext.UpdateObject(entity); } else { serviceContext.AddObject(PageDraftTable, entity); } serviceContext.SaveChangesWithRetries(); }
private void InsertOrUpdate(Models.Page @new, Models.Page old) { @new.OnSaving(); var entity = PageEntityHelper.ToPageEntity(@new); var serviceContext = CloudTableHelper.GetTableServiceContext(); if (Get(old) == null) { serviceContext.AddObject(PageTable, entity); } else { serviceContext.AttachTo(PageTable, entity, "*"); serviceContext.UpdateObject(entity); } serviceContext.SaveChangesWithRetries(); }
public Models.Page Copy(Models.Site site, string sourcePageFullName, string newPageFullName) { var page = Get(new Page(site, sourcePageFullName)); var newPage = new Page(site, newPageFullName); var entity = PageEntityHelper.ToPageEntity(page); entity.FullName = newPageFullName; if (newPage.Parent != null) { entity.ParentPage = newPage.Parent.FullName; } var serviceContext = CloudTableHelper.GetTableServiceContext(); serviceContext.AddObject(PageTable, entity); serviceContext.SaveChangesWithRetries(); return(PageEntityHelper.ToPage(entity)); }
private void LocalizeWithChildPages(TableServiceContext serviceContext, Page page, Site targetSite) { var entity = CloudTableHelper.GetTableServiceContext().CreateQuery <PageEntity>(PageTable) .Where(it => it.PartitionKey == targetSite.FullName && it.RowKey == page.FullName) .FirstOrDefault(); if (entity == null) { page = Get(page); entity = PageEntityHelper.ToPageEntity(page); entity.SiteName = targetSite.FullName; serviceContext.AddObject(PageTable, entity); foreach (var item in ChildPages(page)) { LocalizeWithChildPages(serviceContext, item, targetSite); } } }