public string PublishChanges(string ThisPage)
{
try {
CurrentPageGuid = new Guid(ThisPage);
LoadGuids();
CurrentEditPage = filePage.FileName.ToLowerInvariant();
bool bLock = pageHelper.IsPageLocked(CurrentPageGuid, SiteData.CurrentSite.SiteID, SecurityData.CurrentUserGuid);
Guid guidUser = pageHelper.GetCurrentEditUser(CurrentPageGuid, SiteData.CurrentSite.SiteID);
if (bLock || guidUser != SecurityData.CurrentUserGuid) {
return "Cannot publish changes, not current editing user.";
}
List<Widget> pageWidgets = widgetHelper.GetWidgets(CurrentPageGuid, true);
if (cmsAdminContent != null) {
ContentPage oldContent = pageHelper.FindContentByID(SiteData.CurrentSiteID, CurrentPageGuid);
ContentPage newContent = cmsAdminContent;
newContent.ContentID = Guid.NewGuid();
newContent.NavOrder = oldContent.NavOrder;
newContent.Parent_ContentID = oldContent.Parent_ContentID;
newContent.EditUserId = SecurityData.CurrentUserGuid;
newContent.EditDate = SiteData.CurrentSite.Now;
foreach (var wd in cmsAdminWidget) {
wd.EditDate = SiteData.CurrentSite.Now;
wd.Save();
}
newContent.SavePageEdit();
if (newContent.ContentType == ContentPageType.PageType.BlogEntry) {
pageHelper.ResolveDuplicateBlogURLs(newContent.SiteID);
}
cmsAdminWidget = new List<Widget>();
cmsAdminContent = null;
}
GetSetUserEditStateAsEmpty();
return "OK";
} catch (Exception ex) {
SiteData.WriteDebugException("webservice", ex);
return ex.ToString();
}
}