private SaveResult CreatePage( PageModel model, ContentManagementDb db ) { try { Page page = new Page(); page.Initialise(); AutoMap.Map( model, page ); page.CreatedByUserId = UserSession.Current.UserId; page.DomainId = UserSession.Current.DomainId; PageContent pageContent = new PageContent(); AutoMap.Map( model, pageContent ); page.PageContent.Add( pageContent ); pageContent.Initialize(); pageContent.LastEditedByUserId = page.CreatedByUserId; SetPublishStatus( page, pageContent, model.Publish ); db.Pages.Add( page ); db.SaveChanges(); return SaveResult.Success; } catch { return SaveResult.Fail; } }
public SaveResult SavePage( PageModel model ) { ContentManagementDb db = new ContentManagementDb(); Page page = db.Pages.Find( model.PageId ); if ( page == null ) { return CreatePage( model, db ); } return UpdatePage( page, model, db ); }
private SaveResult UpdatePage( Page page, PageModel model, ContentManagementDb db ) { if ( UserSession.Current.IsAdministrator == false ) return SaveResult.AccessDenied; if ( UserSession.Current.CurrentDomain( db ).CanAccess( page ) == false ) return SaveResult.IncorrectDomain; try { PageContent pageContent = page.PageContent.FirstOrDefault( s => s.PublishStatus == PublishStatus.Draft ); if ( pageContent == null ) { pageContent = new PageContent(); page.PageContent.Add( pageContent ); } AutoMap.Map( model, pageContent ); page.UpdateTimeStamp(); pageContent.UpdateTimeStamp(); pageContent.LastEditedByUserId = UserSession.Current.UserId; SetPublishStatus( page, pageContent, model.Publish ); db.SaveChanges(); return SaveResult.Success; } catch { return SaveResult.Fail; } }