/// <summary> /// /// </summary> /// <param name="pageId"></param> /// <returns></returns> public ResponseModel SavePageToClientMenu(int pageId) { var page = _pageRepository.GetById(pageId); var clientMenu = FetchFirst(c => c.PageId == pageId); if (clientMenu != null) { clientMenu.Name = page.Title; clientMenu.PageId = page.Id; clientMenu.Url = page.FriendlyUrl; if (page.ParentId.HasValue && page.Page1.ClientMenus.Any()) { clientMenu.ParentId = page.Page1.ClientMenus.First().Id; } else { clientMenu.ParentId = null; } clientMenu.IncludeInSiteNavigation = page.IncludeInSiteNavigation; clientMenu.StartPublishingDate = page.StartPublishingDate; clientMenu.EndPublishingDate = page.EndPublishingDate; if (page.RecordOrder * 10 != clientMenu.RecordOrder) { var relativePages = _pageRepository.Fetch(p => (page.ParentId.HasValue ? p.ParentId == page.ParentId : !p.ParentId.HasValue) && p.Id != page.Id); foreach (var relativePage in relativePages) { var relativeMenu = relativePage.ClientMenus.First(); relativeMenu.RecordOrder = relativePage.RecordOrder * 10; Update(relativeMenu); } clientMenu.RecordOrder = page.RecordOrder * 10; } clientMenu.RecordActive = page.RecordActive; return(HierarchyUpdate(clientMenu)); } clientMenu = new ClientMenu(page); return(HierarchyInsert(clientMenu)); }
public IQueryable <Page> Fetch(Expression <Func <Page, bool> > expression) { return(_pageRepository.Fetch(expression)); }