public Page Save(Page page) { oxite_CMS_Page pageToSave = null; if (page.ID != Guid.Empty) { pageToSave = context.oxite_CMS_Pages.FirstOrDefault(p => p.SiteID == page.Site.ID && p.PageID == page.ID); } if (pageToSave == null) { pageToSave = new oxite_CMS_Page(); pageToSave.SiteID = page.Site.ID; pageToSave.PageID = page.ID != Guid.Empty ? page.ID : Guid.NewGuid(); context.oxite_CMS_Pages.InsertOnSubmit(pageToSave); } pageToSave.TemplateName = page.TemplateName; pageToSave.Title = page.Title; pageToSave.Description = page.Description; pageToSave.Slug = page.Slug; pageToSave.PublishedDate = page.Published; context.SubmitChanges(); return(GetPage(pageToSave.SiteID, pageToSave.Slug)); }
internal static ContentItem SaveContentItem(OxiteCMSDataContext context, ContentItem contentItem) { oxite_CMS_ContentItem item = contentItem.Page != null ? context.oxite_CMS_ContentItems.Where(ci => ci.SiteID == contentItem.Site.ID && ci.PageID == contentItem.Page.ID && string.Compare(ci.ContentItemName, contentItem.Name, true) == 0).OrderByDescending(ci => ci.Version).FirstOrDefault() : context.oxite_CMS_ContentItems.Where(ci => ci.SiteID == contentItem.Site.ID && ci.PageID == null && string.Compare(ci.ContentItemName, contentItem.Name, true) == 0).OrderByDescending(ci => ci.Version).FirstOrDefault(); short version; if (item != null) { if (item.Body == contentItem.Body) { return(null); } version = item.Version; version++; } else { version = 1; } item = new oxite_CMS_ContentItem { SiteID = contentItem.Site.ID, PageID = contentItem.Page != null ? (Guid?)contentItem.Page.ID : (Guid?)null, ContentItemID = contentItem.ID != Guid.Empty ? contentItem.ID : Guid.NewGuid(), ContentItemName = contentItem.Name, ContentItemDisplayName = contentItem.DisplayName, Body = contentItem.Body, CreatedDate = DateTime.UtcNow, CreatorUserID = contentItem.Creator.ID, PublishedDate = contentItem.Published, Version = version }; context.oxite_CMS_ContentItems.InsertOnSubmit(item); context.SubmitChanges(); return(GetContentItem(context, item.SiteID, item.ContentItemName)); }