Carrotware.CMS.UI.Admin.c3_admin.BlogPostAddEdit.SavePage C# (CSharp) Метод

SavePage() защищенный Метод

protected SavePage ( bool bRedirect ) : void
bRedirect bool
Результат 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;
                    }
                    pageContents.Parent_ContentID = null;
                    pageContents.NavOrder = SiteData.BlogSortOrderNumber;
                }
            }

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

            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.PageSlug = txtPageSlug.Text;

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

            pageContents.EditDate = SiteData.CurrentSite.Now;
            pageContents.NavOrder = SiteData.BlogSortOrderNumber;

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

            pageContents.PageActive = chkActive.Checked;
            pageContents.ShowInSiteNav = false;
            pageContents.ShowInSiteMap = false;
            pageContents.BlockIndex = chkHide.Checked;

            pageContents.ContentType = ContentPageType.PageType.BlogEntry;

            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;

            List<ContentCategory> lstCat = new List<ContentCategory>();
            List<ContentTag> lstTag = new List<ContentTag>();

            lstCat = (from cr in GeneralUtilities.GetSelectedValues(listCats).Select(x => new Guid(x))
                      join l in SiteData.CurrentSite.GetCategoryList() on cr equals l.ContentCategoryID
                      select l).ToList();

            lstTag = (from cr in GeneralUtilities.GetSelectedValues(listTags).Select(x => new Guid(x))
                      join l in SiteData.CurrentSite.GetTagList() on cr equals l.ContentTagID
                      select l).ToList();

            pageContents.ContentCategories = lstCat;
            pageContents.ContentTags = lstTag;

            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);
            }
        }