Carrotware.CMS.UI.Admin.c3_admin.PageAddEdit.SavePage C# (CSharp) Method

SavePage() protected method

protected SavePage ( bool bRedirect ) : void
bRedirect bool
return void
        protected void SavePage(bool bRedirect)
        {
            ContentPage pageContents = null;
            if (guidVersionContentID != Guid.Empty) {
                pageContents = pageHelper.GetVersion(SiteID, guidVersionContentID);
            }
            if (guidContentID != Guid.Empty && pageContents == null) {
                pageContents = pageHelper.FindContentByID(SiteID, guidContentID);
            }
            if (guidImportContentID != Guid.Empty) {
                pageContents = ContentImportExportUtils.GetSerializedContentPageExport(guidImportContentID).ThePage;

                if (pageContents != null) {
                    pageContents.SiteID = SiteID;
                    pageContents.EditDate = SiteData.CurrentSite.Now;
                    pageContents.CreateUserId = SecurityData.CurrentUserGuid;
                    pageContents.CreateDate = SiteData.CurrentSite.Now;

                    var rp = pageHelper.GetLatestContentByURL(SiteID, false, pageContents.FileName);
                    if (rp != null) {
                        pageContents.Root_ContentID = rp.Root_ContentID;
                        pageContents.ContentID = rp.ContentID;
                    } else {
                        pageContents.Root_ContentID = Guid.Empty;
                        pageContents.ContentID = Guid.Empty;
                    }
                }
            }

            if (pageContents == null) {
                pageContents = new ContentPage(SiteData.CurrentSiteID, ContentPageType.PageType.ContentEntry);
            }

            DateTime dtSite = CMSConfigHelper.CalcNearestFiveMinTime(SiteData.CurrentSite.Now);
            pageContents.GoLiveDate = dtSite.AddMinutes(-5);
            pageContents.RetireDate = dtSite.AddYears(200);

            pageContents.IsLatestVersion = true;
            pageContents.Thumbnail = txtThumb.Text;

            pageContents.TemplateFile = ddlTemplate.SelectedValue;

            pageContents.TitleBar = txtTitle.Text;
            pageContents.NavMenuText = txtNav.Text;
            pageContents.PageHead = txtHead.Text;
            pageContents.FileName = txtFileName.Text;

            pageContents.MetaDescription = txtDescription.Text;
            pageContents.MetaKeyword = txtKey.Text;

            pageContents.EditDate = SiteData.CurrentSite.Now;
            pageContents.NavOrder = int.Parse(txtSort.Text);

            pageContents.PageText = reBody.Text;
            pageContents.LeftPageText = reLeftBody.Text;
            pageContents.RightPageText = reRightBody.Text;

            pageContents.PageActive = chkActive.Checked;
            pageContents.ShowInSiteNav = chkNavigation.Checked;
            pageContents.ShowInSiteMap = chkSiteMap.Checked;
            pageContents.BlockIndex = chkHide.Checked;

            pageContents.ContentType = ContentPageType.PageType.ContentEntry;

            if (ParentPagePicker.SelectedPage.HasValue) {
                pageContents.Parent_ContentID = ParentPagePicker.SelectedPage.Value;
            } else {
                pageContents.Parent_ContentID = null;
            }

            if (String.IsNullOrEmpty(hdnCreditUserID.Value)) {
                pageContents.CreditUserId = null;
            } else {
                var usr = new ExtendedUserData(hdnCreditUserID.Value);
                pageContents.CreditUserId = usr.UserId;
            }

            pageContents.GoLiveDate = ucReleaseDate.GetDate();
            pageContents.RetireDate = ucRetireDate.GetDate();
            pageContents.EditUserId = SecurityData.CurrentUserGuid;

            pageContents.NewTrackBackURLs = txtTrackback.Text;

            if (!chkDraft.Checked) {
                pageContents.SavePageEdit();
            } else {
                pageContents.SavePageAsDraft();
            }

            //if importing, copy in all meta data possible
            if (guidImportContentID != Guid.Empty) {
                List<Widget> widgets = ContentImportExportUtils.GetSerializedContentPageExport(guidImportContentID).ThePageWidgets;

                foreach (var wd in widgets) {
                    wd.Root_ContentID = pageContents.Root_ContentID;
                    wd.Root_WidgetID = Guid.NewGuid();
                    wd.WidgetDataID = Guid.NewGuid();
                    wd.IsPendingChange = true;
                    wd.EditDate = SiteData.CurrentSite.Now;
                    wd.Save();
                }

                ContentImportExportUtils.RemoveSerializedExportData(guidImportContentID);
            }

            cmsHelper.OverrideKey(pageContents.Root_ContentID);
            if (cmsHelper.cmsAdminWidget != null) {
                var ww = (from w in cmsHelper.cmsAdminWidget
                          where w.IsLatestVersion == true
                          && w.IsPendingChange == true
                          && (w.ControlPath.StartsWith("CLASS:Carrotware.CMS.UI.Controls.ContentRichText,")
                          || w.ControlPath.StartsWith("CLASS:Carrotware.CMS.UI.Controls.ContentPlainText,"))
                          select w);

                foreach (Widget w in ww) {
                    w.Save();
                }
            }

            cmsHelper.cmsAdminContent = null;
            cmsHelper.cmsAdminWidget = null;

            if (pageContents.FileName.ToLowerInvariant().EndsWith(SiteData.DefaultDirectoryFilename)) {
                VirtualDirectory.RegisterRoutes(true);
            }

            if (!bRedirect) {
                if (sPageMode.Length < 1) {
                    Response.Redirect(SiteData.CurrentScriptName + "?id=" + pageContents.Root_ContentID.ToString());
                } else {
                    Response.Redirect(SiteData.CurrentScriptName + "?mode=raw&id=" + pageContents.Root_ContentID.ToString());
                }
            } else {
                Response.Redirect(pageContents.FileName);
            }
        }