Пример #1
0
        protected void btnRemove_Click(object sender, EventArgs e)
        {
            CheckBox    chkSelected = null;
            HiddenField hdnUserId   = null;

            foreach (GridViewRow dgItem in gvUsers.Rows)
            {
                hdnUserId = (HiddenField)dgItem.FindControl("hdnUserId");

                if (hdnUserId != null)
                {
                    chkSelected = (CheckBox)dgItem.FindControl("chkSelected");

                    Guid             guidUsrID = new Guid(hdnUserId.Value);
                    ExtendedUserData exUsr     = new ExtendedUserData(guidUsrID);

                    if (chkSelected.Checked)
                    {
                        exUsr.RemoveFromSite(guidSiteID);
                    }
                }
            }

            Response.Redirect(SiteData.CurrentScriptName + "?id=" + guidSiteID.ToString());
        }
        protected override void OnDataBinding(EventArgs e)
        {
            RepeaterItem container = (RepeaterItem)this.NamingContainer;

            string sFieldValue = string.Empty;
            string sValue      = "";
            string sField      = DataField.ToString();

            try {
                if (sField.StartsWith("Author_") || sField.StartsWith("Credit_"))
                {
                    SiteNav sn = (SiteNav)DataBinder.GetDataItem(container);
                    if (sn != null)
                    {
                        ExtendedUserData usr = null;
                        if (sField.StartsWith("Credit_"))
                        {
                            sField = DataField.ToString().Replace("Credit_", String.Empty);
                            usr    = sn.GetCreditUserInfo();
                        }

                        if (sField.StartsWith("Author_") || usr == null)
                        {
                            sField = DataField.ToString().Replace("Credit_", String.Empty).Replace("Author_", String.Empty);
                            usr    = sn.GetUserInfo();
                        }

                        if (usr != null)
                        {
                            object obj = ReflectionUtilities.GetPropertyValue(usr, sField);
                            if (obj != null)
                            {
                                sValue = obj.ToString();
                            }
                        }
                    }

                    sFieldValue = String.Format(FieldFormat, sValue);
                }
                else
                {
                    sFieldValue = String.Format(FieldFormat, DataBinder.Eval(container, "DataItem." + sField));
                }
            } catch {
                if (!SiteData.IsWebView)
                {
                    sFieldValue = sField;
                }
            }

            this.Text = sFieldValue;

            string sFileName = DataBinder.Eval(container, "DataItem.FileName").ToString();
            Guid   pageID    = new Guid(DataBinder.Eval(container, "DataItem.Root_ContentID").ToString());

            this.NavigateUrl = sFileName;
            this.ContentID   = pageID;

            base.OnDataBinding(e);
        }
Пример #3
0
        protected override void OnPreRender(EventArgs e)
        {
            if (_usr == null)
            {
                _usr = ExtendedUserData.GetEditorFromURL();
            }
            if (_usr == null)
            {
                ContentPage cp = cu.GetContainerContentPage(this);

                switch (this.SourceField)
                {
                case AuthorSource.Editor:
                    _usr = cp.GetUserInfo();
                    break;

                case AuthorSource.Created:
                    _usr = cp.GetCreateUserInfo();
                    break;

                case AuthorSource.Credited:
                    _usr = cp.GetCreditUserInfo();
                    break;

                default:
                    _usr = cp.BylineUser;
                    break;
                }
            }

            AssignUser();

            base.OnPreRender(e);
        }
        protected override void OnPreRender(EventArgs e)
        {
            string sFieldValue = string.Empty;
            string sField      = DataField.ToString();

            try {
                ContentPage cp = cu.GetContainerContentPage(this);

                if (cp != null)
                {
                    if (sField.StartsWith("Author_") || sField.StartsWith("Credit_"))
                    {
                        ExtendedUserData usr = null;
                        if (sField.StartsWith("Credit_"))
                        {
                            sField = DataField.ToString().Replace("Credit_", String.Empty);
                            usr    = cp.GetCreditUserInfo();
                        }

                        if (sField.StartsWith("Author_") || usr == null)
                        {
                            sField = DataField.ToString().Replace("Credit_", String.Empty).Replace("Author_", String.Empty);
                            usr    = cp.GetUserInfo();
                        }

                        if (usr == null)
                        {
                            usr = cp.BylineUser;
                        }

                        if (usr != null)
                        {
                            object objData = ReflectionUtilities.GetPropertyValue(usr, sField);
                            if (objData != null)
                            {
                                sFieldValue = String.Format(FieldFormat, objData);
                            }
                        }
                    }
                    else
                    {
                        object objData = ReflectionUtilities.GetPropertyValue(cp, sField);
                        if (objData != null)
                        {
                            sFieldValue = String.Format(FieldFormat, objData);
                        }
                    }
                }
            } catch {
                if (!SiteData.IsWebView)
                {
                    sFieldValue = sField;
                }
            }

            this.Text = sFieldValue;

            base.OnPreRender(e);
        }
        public void SetPage(ContentPage page)
        {
            this.ContentPage = page;

            this.OriginalFileName   = page.FileName;
            this.SelectedCategories = this.ContentPage.ContentCategories.Select(x => x.ContentCategoryID.ToString().ToLower()).ToList();
            this.SelectedTags       = this.ContentPage.ContentTags.Select(x => x.ContentTagID.ToString().ToLower()).ToList();
            this.InitSelections();

            if (this.ContentPage != null)
            {
                using (ContentPageHelper pageHelper = new ContentPageHelper()) {
                    if (this.ContentPage.Root_ContentID != Guid.Empty)
                    {
                        this.VersionHistory = (from v in pageHelper.GetVersionHistory(this.ContentPage.SiteID, this.ContentPage.Root_ContentID)
                                               join u in ExtendedUserData.GetUserList() on v.EditUserId equals u.UserId
                                               orderby v.EditDate descending
                                               select new KeyValuePair <string, string>(v.ContentID.ToString(),
                                                                                        String.Format("{0} ({1}) {2}", v.EditDate, u.UserName, (v.IsLatestVersion ? " [**] " : " ")))
                                               ).ToDictionary(kvp => kvp.Key, kvp => kvp.Value);
                    }
                    else
                    {
                        this.ContentPage.CreateDate = DateTime.UtcNow.Date;
                        this.ContentPage.EditDate   = DateTime.UtcNow.Date;
                        this.ContentPage.ContentID  = Guid.NewGuid();

                        if (this.ContentPage.ContentType == ContentPageType.PageType.ContentEntry)
                        {
                            this.ContentPage.NavOrder = pageHelper.GetSitePageCount(this.ContentPage.SiteID, this.ContentPage.ContentType) * 2;
                        }
                        else
                        {
                            this.ContentPage.Parent_ContentID = null;
                            this.ContentPage.NavOrder         = SiteData.BlogSortOrderNumber;
                        }

                        DateTime dtSite = CMSConfigHelper.CalcNearestFiveMinTime(SiteData.CurrentSite.Now);
                        this.ContentPage.GoLiveDate = dtSite;
                        this.ContentPage.RetireDate = dtSite.AddYears(200);

                        float iThird = (float)(this.ContentPage.NavOrder - 1) / (float)3;

                        Dictionary <string, float> dictTemplates = pageHelper.GetPopularTemplateList(this.ContentPage.SiteID, this.ContentPage.ContentType);
                        if (dictTemplates.Any() && dictTemplates.First().Value >= iThird)
                        {
                            try {
                                this.ContentPage.TemplateFile = dictTemplates.First().Key;
                            } catch { }
                        }
                    }
                }

                RefreshWidgetList();
            }
        }
Пример #6
0
        protected void btnSave_Click(object sender, EventArgs e)
        {
            if (pageContents != null)
            {
                pageContents.TitleBar    = txtTitle.Text;
                pageContents.NavMenuText = txtNav.Text;
                pageContents.PageHead    = txtHead.Text;

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

                pageContents.EditDate = SiteData.CurrentSite.Now;

                pageContents.GoLiveDate = ucReleaseDate.GetDate();
                pageContents.RetireDate = ucRetireDate.GetDate();

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

                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 (String.IsNullOrEmpty(hdnCreditUserID.Value))
                {
                    pageContents.CreditUserId = null;
                }
                else
                {
                    var usr = new ExtendedUserData(hdnCreditUserID.Value);
                    pageContents.CreditUserId = usr.UserId;
                }

                pageContents.FileName = ContentPageHelper.CreateFileNameFromSlug(pageContents.SiteID, pageContents.GoLiveDate, pageContents.PageSlug);

                cmsHelper.cmsAdminContent = pageContents;

                Master.ShowSave();

                Response.Redirect(SiteData.CurrentScriptName + "?pageid=" + pageContents.Root_ContentID.ToString() + Master.SavedSuffix);
            }
        }
Пример #7
0
        protected void btnAddUsers_Click(object sender, EventArgs e)
        {
            if (!String.IsNullOrEmpty(hdnUserID.Value))
            {
                MembershipRole role = getCurrentGroup();

                ExtendedUserData exUsr = new ExtendedUserData(hdnUserID.Value);
                exUsr.AddToRole(role.RoleName);
            }

            Response.Redirect(SiteData.CurrentScriptName + "?id=" + groupID.ToString());
        }
		protected void Page_Load(object sender, EventArgs e) {
			Master.ActivateTab(AdminBaseMasterPage.SectionID.ContentHistory);

			if (!IsPostBack) {
				txtDate.Text = SiteData.CurrentSite.Now.ToString(Helper.ShortDatePattern);
				ddlSize.SelectedValue = pagedDataGrid.PageSize.ToString();

				GeneralUtilities.BindListDefaultText(ddlUsers, ExtendedUserData.GetUserList(), null, "select user", Guid.Empty.ToString());
			}

			LoadGrid();
		}
Пример #9
0
        private Guid FindUser(Guid userId)
        {
            ExtendedUserData usr = new ExtendedUserData(userId);

            if (usr == null)
            {
                return(SecurityData.CurrentUserGuid);
            }
            else
            {
                return(userId);
            }
        }
Пример #10
0
        protected void Page_Load(object sender, EventArgs e)
        {
            Master.UsesSaved = true;
            Master.HideSave();

            guidContentID = GetGuidPageIDFromQuery();

            cmsHelper.OverrideKey(guidContentID);

            if (cmsHelper.cmsAdminContent != null)
            {
                pageContents     = cmsHelper.cmsAdminContent;
                litPageName.Text = pageContents.FileName;

                if (!IsPostBack)
                {
                    GeneralUtilities.BindList(listCats, SiteData.CurrentSite.GetCategoryList().OrderBy(x => x.CategoryText));
                    GeneralUtilities.BindList(listTags, SiteData.CurrentSite.GetTagList().OrderBy(x => x.TagText));

                    txtTitle.Text = pageContents.TitleBar;
                    txtNav.Text   = pageContents.NavMenuText;
                    txtHead.Text  = pageContents.PageHead;
                    txtThumb.Text = pageContents.Thumbnail;

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

                    txtReleaseDate.Text = pageContents.GoLiveDate.ToShortDateString();
                    txtReleaseTime.Text = pageContents.GoLiveDate.ToShortTimeString();
                    txtRetireDate.Text  = pageContents.RetireDate.ToShortDateString();
                    txtRetireTime.Text  = pageContents.RetireDate.ToShortTimeString();

                    lblUpdated.Text = pageContents.EditDate.ToString();

                    chkActive.Checked = pageContents.PageActive;
                    chkHide.Checked   = pageContents.BlockIndex;

                    if (pageContents.CreditUserId.HasValue)
                    {
                        var usr = new ExtendedUserData(pageContents.CreditUserId.Value);
                        hdnCreditUserID.Value = usr.UserName;
                        txtSearchUser.Text    = string.Format("{0} ({1})", usr.UserName, usr.EmailAddress);
                    }

                    GeneralUtilities.SelectListValues(listTags, pageContents.ContentTags.Cast <IContentMetaInfo>().Select(x => x.ContentMetaInfoID.ToString()).ToList());
                    GeneralUtilities.SelectListValues(listCats, pageContents.ContentCategories.Cast <IContentMetaInfo>().Select(x => x.ContentMetaInfoID.ToString()).ToList());
                }
            }
        }
Пример #11
0
        protected void btnAddUsers_Click(object sender, EventArgs e)
        {
            if (!String.IsNullOrEmpty(hdnUserID.Value))
            {
                ExtendedUserData exUsr = new ExtendedUserData(hdnUserID.Value);
                exUsr.AddToSite(guidSiteID);

                if (chkAddToEditor.Checked)
                {
                    exUsr.AddToRole(SecurityData.CMSGroup_Editors);
                }
            }

            Response.Redirect(SiteData.CurrentScriptName + "?id=" + guidSiteID.ToString());
        }
Пример #12
0
        protected override void OnPreRender(EventArgs e)
        {
            if (usr == null)
            {
                usr = ExtendedUserData.GetEditorFromURL();
            }
            if (usr == null)
            {
                ContentPage cp = cu.GetContainerContentPage(this);
                usr = cp.BylineUser;
            }

            AssignUser();

            base.OnPreRender(e);
        }
Пример #13
0
        public ActionResult ChangeProfile(ChangeProfileInfo model)
        {
            model.ReconstructSettings();
            this.ViewData[ChangeProfileInfo.Key] = model;

            LoadPage(model.Settings.Uri);

            var settings = model.Settings;

            if (settings.UseValidateHuman)
            {
                bool IsValidated = model.ValidateHuman.ValidateValue(model.ValidationValue);
                if (!IsValidated)
                {
                    ModelState.AddModelError("ValidationValue", model.ValidateHuman.AltValidationFailText);
                    model.ValidationValue = String.Empty;
                }
            }

            if (ModelState.IsValid && SecurityData.IsAuthenticated)
            {
                string successView = settings.PostPartialName;
                if (!String.IsNullOrEmpty(settings.PostPartialName))
                {
                    successView = settings.PostPartialSuccess;
                }

                ExtendedUserData exUsr = SecurityData.CurrentExUser;

                IdentityResult result = securityHelper.UserManager.SetEmail(exUsr.UserKey, model.Email);

                exUsr.UserNickName = model.UserNickName;
                exUsr.FirstName    = model.FirstName;
                exUsr.LastName     = model.LastName;

                exUsr.Save();

                if (result.Succeeded)
                {
                    return(PartialView(successView, model));
                }
            }

            Helper.HandleErrorDict(ModelState);

            return(PartialView(settings.PostPartialName, model));
        }
Пример #14
0
        protected override void OnDataBinding(EventArgs e)
        {
            RepeaterItem container = (RepeaterItem)this.NamingContainer;

            object contentData = DataBinder.GetDataItem(container);

            if (contentData is ISiteContent)
            {
                ISiteContent content = (ISiteContent)(contentData);

                usr = content.BylineUser;

                AssignUser();
            }

            base.OnDataBinding(e);
        }
Пример #15
0
        protected void Page_Load(object sender, EventArgs e)
        {
            Master.UsesSaved = true;
            Master.HideSave();

            guidContentID = GetGuidPageIDFromQuery();

            cmsHelper.OverrideKey(guidContentID);

            if (cmsHelper.cmsAdminContent != null)
            {
                pageContents     = cmsHelper.cmsAdminContent;
                litPageName.Text = pageContents.FileName;

                if (!IsPostBack)
                {
                    txtTitle.Text = pageContents.TitleBar;
                    txtNav.Text   = pageContents.NavMenuText;
                    txtHead.Text  = pageContents.PageHead;
                    txtThumb.Text = pageContents.Thumbnail;

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

                    txtReleaseDate.Text = pageContents.GoLiveDate.ToShortDateString();
                    txtReleaseTime.Text = pageContents.GoLiveDate.ToShortTimeString();
                    txtRetireDate.Text  = pageContents.RetireDate.ToShortDateString();
                    txtRetireTime.Text  = pageContents.RetireDate.ToShortTimeString();

                    lblUpdated.Text = pageContents.EditDate.ToString();

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

                    if (pageContents.CreditUserId.HasValue)
                    {
                        var usr = new ExtendedUserData(pageContents.CreditUserId.Value);
                        hdnCreditUserID.Value = usr.UserName;
                        txtSearchUser.Text    = string.Format("{0} ({1})", usr.UserName, usr.EmailAddress);
                    }
                }
            }
        }
Пример #16
0
        protected void Page_Load(object sender, EventArgs e)
        {
            Master.ActivateTab(AdminBaseMasterPage.SectionID.UserFn);

            Master.UsesSaved = true;
            Master.HideSave();
            Master.SetSaveMessage("Profile Updated");

            divInfoMsg.Visible = false;
            InfoMessage.Text   = String.Empty;

            if (!IsPostBack)
            {
                txtEmail.Text = SecurityData.CurrentUser.Email;
                ExtendedUserData exUsr = new ExtendedUserData(SecurityData.CurrentUser.UserName);
                txtNickName.Text  = exUsr.UserNickName;
                txtFirstName.Text = exUsr.FirstName;
                txtLastName.Text  = exUsr.LastName;
                reBody.Text       = exUsr.UserBio;
            }
        }
Пример #17
0
        protected void btnSaveEmail_Click(object sender, EventArgs e)
        {
            MembershipUser usr = SecurityData.CurrentUser;

            usr.Email = txtEmail.Text;
            Membership.UpdateUser(usr);

            ExtendedUserData exUsr = new ExtendedUserData(SecurityData.CurrentUser.UserName);

            exUsr.UserNickName = txtNickName.Text;
            exUsr.FirstName    = txtFirstName.Text;
            exUsr.LastName     = txtLastName.Text;
            exUsr.UserBio      = reBody.Text;

            exUsr.Save();

            divInfoMsg.Visible = true;
            InfoMessage.Text   = "Profile Updated";

            Master.ShowSave();
        }
Пример #18
0
        protected void btnSave_Click(object sender, EventArgs e)
        {
            if (pageContents != null)
            {
                pageContents.TitleBar    = txtTitle.Text;
                pageContents.NavMenuText = txtNav.Text;
                pageContents.PageHead    = txtHead.Text;

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

                pageContents.EditDate = SiteData.CurrentSite.Now;

                pageContents.GoLiveDate = ucReleaseDate.GetDate();
                pageContents.RetireDate = ucRetireDate.GetDate();

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

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

                cmsHelper.cmsAdminContent = pageContents;

                Master.ShowSave();

                Response.Redirect(SiteData.CurrentScriptName + "?pageid=" + pageContents.Root_ContentID.ToString() + Master.SavedSuffix);
            }
        }
Пример #19
0
        protected override void OnPreRender(EventArgs e)
        {
            if (_usr == null)
            {
                _usr = ExtendedUserData.GetEditorFromURL();
            }
            if (_usr == null)
            {
                ContentPage cp = cu.GetContainerContentPage(this);
                if (this.SourceField == AuthorSource.Editor)
                {
                    _usr = cp.GetUserInfo();
                }
                else
                {
                    _usr = cp.GetCreditUserInfo();
                }
            }

            AssignUser();

            base.OnPreRender(e);
        }
        public void ImportStuff()
        {
            this.HasLoaded = false;
            this.Site      = ContentImportExportUtils.GetSerializedSiteExport(this.ImportID);

            SiteData.CurrentSite = null;

            SiteData site = SiteData.CurrentSite;

            this.Message = String.Empty;
            string sMsg = String.Empty;

            if (this.ImportSite || this.ImportPages || this.ImportPosts)
            {
                List <string> tags = site.GetTagList().Select(x => x.TagSlug.ToLowerInvariant()).ToList();
                List <string> cats = site.GetCategoryList().Select(x => x.CategorySlug.ToLowerInvariant()).ToList();

                this.Site.TheTags.RemoveAll(x => tags.Contains(x.TagSlug.ToLowerInvariant()));
                this.Site.TheCategories.RemoveAll(x => cats.Contains(x.CategorySlug.ToLowerInvariant()));

                sMsg += "<li>Imported Tags and Categories</li>";

                List <ContentTag> lstTag = (from l in this.Site.TheTags.Distinct()
                                            select new ContentTag {
                    ContentTagID = Guid.NewGuid(),
                    SiteID = site.SiteID,
                    IsPublic = l.IsPublic,
                    TagSlug = l.TagSlug,
                    TagText = l.TagText
                }).ToList();

                List <ContentCategory> lstCat = (from l in this.Site.TheCategories.Distinct()
                                                 select new ContentCategory {
                    ContentCategoryID = Guid.NewGuid(),
                    SiteID = site.SiteID,
                    IsPublic = l.IsPublic,
                    CategorySlug = l.CategorySlug,
                    CategoryText = l.CategoryText
                }).ToList();

                foreach (var v in lstTag)
                {
                    v.Save();
                }
                foreach (var v in lstCat)
                {
                    v.Save();
                }
            }
            SetMsg(sMsg);

            if (this.ImportSnippets)
            {
                List <string> snippets = site.GetContentSnippetList().Select(x => x.ContentSnippetSlug.ToLowerInvariant()).ToList();

                this.Site.TheSnippets.RemoveAll(x => snippets.Contains(x.ContentSnippetSlug.ToLowerInvariant()));

                sMsg += "<li>Imported Content Snippets</li>";

                List <ContentSnippet> lstSnip = (from l in this.Site.TheSnippets.Distinct()
                                                 select new ContentSnippet {
                    SiteID = site.SiteID,
                    Root_ContentSnippetID = Guid.NewGuid(),
                    ContentSnippetID = Guid.NewGuid(),
                    CreateUserId = SecurityData.CurrentUserGuid,
                    CreateDate = site.Now,
                    EditUserId = SecurityData.CurrentUserGuid,
                    EditDate = site.Now,
                    RetireDate = l.RetireDate,
                    GoLiveDate = l.GoLiveDate,
                    ContentSnippetActive = l.ContentSnippetActive,
                    ContentBody = l.ContentBody,
                    ContentSnippetSlug = l.ContentSnippetSlug,
                    ContentSnippetName = l.ContentSnippetName
                }).ToList();

                foreach (var v in lstSnip)
                {
                    v.Save();
                }
            }
            SetMsg(sMsg);

            if (this.ImportSite)
            {
                sMsg            += "<li>Updated Site Name</li>";
                site.SiteName    = this.Site.TheSite.SiteName;
                site.SiteTagline = this.Site.TheSite.SiteTagline;
                site.BlockIndex  = this.Site.TheSite.BlockIndex;
                site.Save();
            }
            SetMsg(sMsg);

            if (!this.MapUsers)
            {
                this.Site.TheUsers = new List <SiteExportUser>();
            }

            //iterate author collection and find if in the system
            foreach (SiteExportUser seu in this.Site.TheUsers)
            {
                SecurityData sd = new SecurityData();

                ExtendedUserData usr = null;
                seu.ImportUserID = Guid.Empty;

                //attempt to find the user in the userbase
                usr = ExtendedUserData.FindByEmail(seu.Email);
                if (usr != null && usr.UserId != Guid.Empty)
                {
                    seu.ImportUserID = usr.UserId;
                }
                else
                {
                    usr = ExtendedUserData.FindByUsername(seu.Login);
                    if (usr != null && usr.UserId != Guid.Empty)
                    {
                        seu.ImportUserID = usr.UserId;
                    }
                }

                if (this.CreateUsers)
                {
                    if (seu.ImportUserID == Guid.Empty)
                    {
                        ApplicationUser user = new ApplicationUser {
                            UserName = seu.Login, Email = seu.Email
                        };
                        var result = sd.CreateApplicationUser(user, out usr);
                        if (result.Succeeded)
                        {
                            usr = ExtendedUserData.FindByUsername(seu.Login);
                        }
                        else
                        {
                            throw new Exception(String.Format("Could not create user: {0} ({1}) \r\n{2}", seu.Login, seu.Email, String.Join("\r\n", result.Errors)));
                        }
                        seu.ImportUserID = usr.UserId;
                    }

                    if (seu.ImportUserID != Guid.Empty)
                    {
                        ExtendedUserData ud = new ExtendedUserData(seu.ImportUserID);
                        if (!String.IsNullOrEmpty(seu.FirstName) || !String.IsNullOrEmpty(seu.LastName))
                        {
                            ud.FirstName = seu.FirstName;
                            ud.LastName  = seu.LastName;
                            ud.Save();
                        }
                    }
                }
            }

            if (this.ImportPages)
            {
                sMsg        += "<li>Imported Pages</li>";
                this.Content = site.GetFullSiteFileList();

                int iOrder = 0;

                SiteNav navHome = GetHomePage(site);

                if (navHome != null)
                {
                    iOrder = 2;
                }

                foreach (var impCP in (from c in this.Site.ThePages
                                       where c.ThePage.ContentType == ContentPageType.PageType.ContentEntry
                                       orderby c.ThePage.NavOrder, c.ThePage.NavMenuText
                                       select c).ToList())
                {
                    ContentPage cp = impCP.ThePage;
                    cp.Root_ContentID = impCP.NewRootContentID;
                    cp.ContentID      = Guid.NewGuid();
                    cp.SiteID         = site.SiteID;
                    cp.ContentType    = ContentPageType.PageType.ContentEntry;
                    cp.EditDate       = SiteData.CurrentSite.Now;
                    cp.EditUserId     = this.Site.FindImportUser(impCP.TheUser);
                    cp.CreateUserId   = this.Site.FindImportUser(impCP.TheUser);
                    if (impCP.CreditUser != null)
                    {
                        cp.CreditUserId = this.Site.FindImportUser(impCP.CreditUser);
                    }
                    cp.NavOrder     = iOrder;
                    cp.TemplateFile = this.PageTemplate;

                    ContentPageExport parent = (from c in this.Site.ThePages
                                                where c.ThePage.ContentType == ContentPageType.PageType.ContentEntry &&
                                                c.ThePage.FileName.ToLowerInvariant() == impCP.ParentFileName.ToLowerInvariant()
                                                select c).FirstOrDefault();

                    BasicContentData navParent = null;
                    BasicContentData navData   = GetFileInfoFromList(site, cp.FileName);

                    if (parent != null)
                    {
                        cp.Parent_ContentID = parent.NewRootContentID;
                        navParent           = GetFileInfoFromList(site, parent.ThePage.FileName);
                    }

                    //if URL exists already, make this become a new version in the current series
                    if (navData != null)
                    {
                        cp.Root_ContentID = navData.Root_ContentID;

                        impCP.ThePage.RetireDate = navData.RetireDate;
                        impCP.ThePage.GoLiveDate = navData.GoLiveDate;

                        if (navData.NavOrder == 0)
                        {
                            cp.NavOrder = 0;
                        }
                    }
                    //preserve homepage
                    if (navHome != null && navHome.FileName.ToLowerInvariant() == cp.FileName.ToLowerInvariant())
                    {
                        cp.NavOrder = 0;
                    }
                    //if the file url in the upload has an existing ID, use that, not the ID from the queue
                    if (navParent != null)
                    {
                        cp.Parent_ContentID = navParent.Root_ContentID;
                    }

                    cp.RetireDate = impCP.ThePage.RetireDate;
                    cp.GoLiveDate = impCP.ThePage.GoLiveDate;

                    cp.SavePageEdit();

                    iOrder++;
                }
            }
            SetMsg(sMsg);

            if (this.ImportPosts)
            {
                sMsg        += "<li>Imported Posts</li>";
                this.Content = site.GetFullSiteFileList();

                List <ContentTag>      lstTags       = site.GetTagList();
                List <ContentCategory> lstCategories = site.GetCategoryList();

                foreach (var impCP in (from c in this.Site.ThePages
                                       where c.ThePage.ContentType == ContentPageType.PageType.BlogEntry
                                       orderby c.ThePage.CreateDate
                                       select c).ToList())
                {
                    ContentPage cp = impCP.ThePage;
                    cp.Root_ContentID   = impCP.NewRootContentID;
                    cp.ContentID        = Guid.NewGuid();
                    cp.SiteID           = site.SiteID;
                    cp.Parent_ContentID = null;
                    cp.ContentType      = ContentPageType.PageType.BlogEntry;
                    cp.EditDate         = SiteData.CurrentSite.Now;
                    cp.EditUserId       = this.Site.FindImportUser(impCP.TheUser);
                    cp.CreateUserId     = this.Site.FindImportUser(impCP.TheUser);
                    if (impCP.CreditUser != null)
                    {
                        cp.CreditUserId = this.Site.FindImportUser(impCP.CreditUser);
                    }
                    cp.NavOrder     = SiteData.BlogSortOrderNumber;
                    cp.TemplateFile = this.PostTemplate;

                    cp.ContentCategories = (from l in lstCategories
                                            join o in impCP.ThePage.ContentCategories on l.CategorySlug.ToLowerInvariant() equals o.CategorySlug.ToLowerInvariant()
                                            select l).Distinct().ToList();

                    cp.ContentTags = (from l in lstTags
                                      join o in impCP.ThePage.ContentTags on l.TagSlug.ToLowerInvariant() equals o.TagSlug.ToLowerInvariant()
                                      select l).Distinct().ToList();

                    BasicContentData navData = GetFileInfoFromList(site, cp.FileName);

                    //if URL exists already, make this become a new version in the current series
                    if (navData != null)
                    {
                        cp.Root_ContentID = navData.Root_ContentID;

                        impCP.ThePage.RetireDate = navData.RetireDate;
                        impCP.ThePage.GoLiveDate = navData.GoLiveDate;
                    }

                    cp.RetireDate = impCP.ThePage.RetireDate;
                    cp.GoLiveDate = impCP.ThePage.GoLiveDate;

                    cp.SavePageEdit();
                }

                using (ContentPageHelper cph = new ContentPageHelper()) {
                    //cph.BulkBlogFileNameUpdateFromDate(site.SiteID);
                    cph.ResolveDuplicateBlogURLs(site.SiteID);
                    cph.FixBlogNavOrder(site.SiteID);
                }
            }
            SetMsg(sMsg);

            if (this.ImportComments)
            {
                sMsg        += "<li>Imported Comments</li>";
                this.Content = site.GetFullSiteFileList();

                foreach (var impCP in (from c in this.Site.TheComments
                                       orderby c.TheComment.CreateDate
                                       select c).ToList())
                {
                    int              iCommentCount = -1;
                    PostComment      pc            = impCP.TheComment;
                    BasicContentData navData       = GetFileInfoFromList(site, pc.FileName);
                    if (navData != null)
                    {
                        pc.Root_ContentID   = navData.Root_ContentID;
                        pc.ContentCommentID = Guid.NewGuid();

                        iCommentCount = PostComment.GetCommentCountByContent(site.SiteID, pc.Root_ContentID, pc.CreateDate, pc.CommenterIP, pc.PostCommentText);
                        if (iCommentCount < 1)
                        {
                            iCommentCount = PostComment.GetCommentCountByContent(site.SiteID, pc.Root_ContentID, pc.CreateDate, pc.CommenterIP);
                        }

                        if (iCommentCount < 1)
                        {
                            pc.Save();
                        }
                    }
                }
            }

            SetMsg(sMsg);
        }
 protected void LoadGrid()
 {
     GeneralUtilities.BindDataBoundControl(dvMembers, ExtendedUserData.GetUserList());
 }
Пример #22
0
        private void ImportStuff()
        {
            SiteData.CurrentSite = null;

            SiteData site = SiteData.CurrentSite;

            litMessage.Text = "<p>No Items Selected For Import</p>";
            string sMsg = "";

            if (chkSite.Checked || chkPages.Checked || chkPosts.Checked)
            {
                List <string> tags = site.GetTagList().Select(x => x.TagSlug.ToLowerInvariant()).ToList();
                List <string> cats = site.GetCategoryList().Select(x => x.CategorySlug.ToLowerInvariant()).ToList();

                wpSite.Tags.RemoveAll(x => tags.Contains(x.InfoKey.ToLowerInvariant()));
                wpSite.Categories.RemoveAll(x => cats.Contains(x.InfoKey.ToLowerInvariant()));

                sMsg += "<p>Imported Tags and Categories</p>";

                List <ContentTag> lstTag = (from l in wpSite.Tags.Distinct()
                                            select new ContentTag {
                    ContentTagID = Guid.NewGuid(),
                    IsPublic = true,
                    SiteID = site.SiteID,
                    TagSlug = l.InfoKey,
                    TagText = l.InfoLabel
                }).Distinct().ToList();

                List <ContentCategory> lstCat = (from l in wpSite.Categories.Distinct()
                                                 select new ContentCategory {
                    ContentCategoryID = Guid.NewGuid(),
                    IsPublic = true,
                    SiteID = site.SiteID,
                    CategorySlug = l.InfoKey,
                    CategoryText = l.InfoLabel
                }).Distinct().ToList();

                foreach (var v in lstTag)
                {
                    v.Save();
                }
                foreach (var v in lstCat)
                {
                    v.Save();
                }
            }
            SetMsg(sMsg);

            if (chkSite.Checked)
            {
                sMsg            += "<p>Updated Site Name</p>";
                site.SiteName    = wpSite.SiteTitle;
                site.SiteTagline = wpSite.SiteDescription;
                site.Save();
            }
            SetMsg(sMsg);

            if (!chkMapAuthor.Checked)
            {
                wpSite.Authors = new List <WordPressUser>();
            }

            //itterate author collection and find if in the system
            foreach (WordPressUser wpu in wpSite.Authors)
            {
                wpu.ImportUserID = Guid.Empty;

                MembershipUser usr = null;
                //attempt to find the user in the userbase
                usr = SecurityData.GetUserListByEmail(wpu.Email).FirstOrDefault();
                if (usr != null)
                {
                    wpu.ImportUserID = new Guid(usr.ProviderUserKey.ToString());
                }
                else
                {
                    usr = SecurityData.GetUserListByName(wpu.Login).FirstOrDefault();
                    if (usr != null)
                    {
                        wpu.ImportUserID = new Guid(usr.ProviderUserKey.ToString());
                    }
                }

                if (chkAuthors.Checked)
                {
                    if (wpu.ImportUserID == Guid.Empty)
                    {
                        usr = Membership.CreateUser(wpu.Login, ProfileManager.GenerateSimplePassword(), wpu.Email);
                        Roles.AddUserToRole(wpu.Login, SecurityData.CMSGroup_Users);
                        wpu.ImportUserID = new Guid(usr.ProviderUserKey.ToString());
                    }

                    if (wpu.ImportUserID != Guid.Empty)
                    {
                        ExtendedUserData ud = new ExtendedUserData(wpu.ImportUserID);
                        if (ud != null)
                        {
                            if (!String.IsNullOrEmpty(wpu.FirstName) || !String.IsNullOrEmpty(wpu.LastName))
                            {
                                ud.FirstName = wpu.FirstName;
                                ud.LastName  = wpu.LastName;
                                ud.Save();
                            }
                        }
                        else
                        {
                            throw new Exception(String.Format("Could not find new user: {0} ({1})", wpu.Login, wpu.Email));
                        }
                    }
                }
            }

            wpSite.Comments.ForEach(r => r.ImportRootID = Guid.Empty);

            using (ISiteNavHelper navHelper = SiteNavFactory.GetSiteNavHelper()) {
                if (chkPages.Checked)
                {
                    sMsg += "<p>Imported Pages</p>";

                    int     iOrder  = 0;
                    SiteNav navHome = navHelper.FindHome(site.SiteID, false);
                    if (navHome != null)
                    {
                        iOrder = 2;
                    }

                    foreach (var wpp in (from c in wpSite.Content
                                         where c.PostType == WordPressPost.WPPostType.Page
                                         orderby c.PostOrder, c.PostTitle
                                         select c).ToList())
                    {
                        GrabAttachments(wpp);
                        RepairBody(wpp);

                        ContentPage cp = ContentImportExportUtils.CreateWPContentPage(wpSite, wpp, site);
                        cp.SiteID       = site.SiteID;
                        cp.ContentType  = ContentPageType.PageType.ContentEntry;
                        cp.EditDate     = SiteData.CurrentSite.Now;
                        cp.NavOrder     = iOrder;
                        cp.TemplateFile = ddlTemplatePage.SelectedValue;

                        WordPressPost parent = (from c in wpSite.Content
                                                where c.PostType == WordPressPost.WPPostType.Page &&
                                                c.PostID == wpp.ParentPostID
                                                select c).FirstOrDefault();

                        SiteNav navParent = null;

                        SiteNav navData = navHelper.GetLatestVersion(site.SiteID, false, cp.FileName.ToLowerInvariant());
                        if (parent != null)
                        {
                            navParent = navHelper.GetLatestVersion(site.SiteID, false, parent.ImportFileName.ToLowerInvariant());
                        }

                        //if URL exists already, make this become a new version in the current series
                        if (navData != null)
                        {
                            cp.Root_ContentID = navData.Root_ContentID;
                            if (navData.NavOrder == 0)
                            {
                                cp.NavOrder = 0;
                            }
                        }

                        if (navParent != null)
                        {
                            cp.Parent_ContentID = navParent.Root_ContentID;
                        }
                        else
                        {
                            if (parent != null)
                            {
                                cp.Parent_ContentID = parent.ImportRootID;
                            }
                        }
                        //preserve homepage
                        if (navHome != null && navHome.FileName.ToLowerInvariant() == cp.FileName.ToLowerInvariant())
                        {
                            cp.NavOrder = 0;
                        }

                        cp.RetireDate = CMSConfigHelper.CalcNearestFiveMinTime(cp.CreateDate).AddYears(200);
                        cp.GoLiveDate = CMSConfigHelper.CalcNearestFiveMinTime(cp.CreateDate).AddMinutes(-5);

                        //if URL exists already, make this become a new version in the current series
                        if (navData != null)
                        {
                            cp.Root_ContentID = navData.Root_ContentID;
                            cp.RetireDate     = navData.RetireDate;
                            cp.GoLiveDate     = navData.GoLiveDate;
                        }

                        cp.SavePageEdit();

                        wpSite.Comments.Where(x => x.PostID == wpp.PostID).ToList().ForEach(r => r.ImportRootID = cp.Root_ContentID);

                        iOrder++;
                    }
                }

                if (chkPosts.Checked)
                {
                    sMsg += "<p>Imported Posts</p>";

                    foreach (var wpp in (from c in wpSite.Content
                                         where c.PostType == WordPressPost.WPPostType.BlogPost
                                         orderby c.PostOrder
                                         select c).ToList())
                    {
                        GrabAttachments(wpp);
                        RepairBody(wpp);

                        ContentPage cp = ContentImportExportUtils.CreateWPContentPage(wpSite, wpp, site);
                        cp.SiteID           = site.SiteID;
                        cp.Parent_ContentID = null;
                        cp.ContentType      = ContentPageType.PageType.BlogEntry;
                        cp.EditDate         = SiteData.CurrentSite.Now;
                        cp.NavOrder         = SiteData.BlogSortOrderNumber;
                        cp.TemplateFile     = ddlTemplatePost.SelectedValue;

                        SiteNav navData = navHelper.GetLatestVersion(site.SiteID, false, cp.FileName.ToLowerInvariant());

                        cp.RetireDate = CMSConfigHelper.CalcNearestFiveMinTime(cp.CreateDate).AddYears(200);
                        cp.GoLiveDate = CMSConfigHelper.CalcNearestFiveMinTime(cp.CreateDate).AddMinutes(-5);

                        //if URL exists already, make this become a new version in the current series
                        if (navData != null)
                        {
                            cp.Root_ContentID = navData.Root_ContentID;
                            cp.RetireDate     = navData.RetireDate;
                            cp.GoLiveDate     = navData.GoLiveDate;
                        }

                        cp.SavePageEdit();

                        wpSite.Comments.Where(x => x.PostID == wpp.PostID).ToList().ForEach(r => r.ImportRootID = cp.Root_ContentID);
                    }

                    using (ContentPageHelper cph = new ContentPageHelper()) {
                        //cph.BulkBlogFileNameUpdateFromDate(site.SiteID);
                        cph.ResolveDuplicateBlogURLs(site.SiteID);
                        cph.FixBlogNavOrder(site.SiteID);
                    }
                }
            }
            SetMsg(sMsg);

            wpSite.Comments.RemoveAll(r => r.ImportRootID == Guid.Empty);

            if (wpSite.Comments.Any())
            {
                sMsg += "<p>Imported Comments</p>";
            }

            foreach (WordPressComment wpc in wpSite.Comments)
            {
                int iCommentCount = -1;

                iCommentCount = PostComment.GetCommentCountByContent(site.SiteID, wpc.ImportRootID, wpc.CommentDateUTC, wpc.AuthorIP, wpc.CommentContent);
                if (iCommentCount < 1)
                {
                    iCommentCount = PostComment.GetCommentCountByContent(site.SiteID, wpc.ImportRootID, wpc.CommentDateUTC, wpc.AuthorIP);
                }

                if (iCommentCount < 1)
                {
                    PostComment pc = new PostComment();
                    pc.ContentCommentID = Guid.NewGuid();
                    pc.Root_ContentID   = wpc.ImportRootID;
                    pc.CreateDate       = site.ConvertUTCToSiteTime(wpc.CommentDateUTC);
                    pc.IsApproved       = false;
                    pc.IsSpam           = false;

                    pc.CommenterIP     = wpc.AuthorIP;
                    pc.CommenterName   = wpc.Author;
                    pc.CommenterEmail  = wpc.AuthorEmail;
                    pc.PostCommentText = wpc.CommentContent;
                    pc.CommenterURL    = wpc.AuthorURL;

                    if (wpc.Approved == "1")
                    {
                        pc.IsApproved = true;
                    }
                    if (wpc.Approved.ToLowerInvariant() == "trash")
                    {
                        pc.IsSpam = true;
                    }
                    if (wpc.Type.ToLowerInvariant() == "trackback" || wpc.Type.ToLowerInvariant() == "pingback")
                    {
                        pc.CommenterEmail = wpc.Type;
                    }

                    pc.Save();
                }
            }
            SetMsg(sMsg);

            BindData();
        }
Пример #23
0
        public void ImportStuff()
        {
            this.HasLoaded = false;
            this.Site      = ContentImportExportUtils.GetSerializedWPExport(this.ImportID);

            SiteData.CurrentSite = null;

            SiteData site = SiteData.CurrentSite;

            this.Message = String.Empty;
            string sMsg = String.Empty;

            if (this.ImportSite || this.ImportPages || this.ImportPosts)
            {
                List <string> tags = site.GetTagList().Select(x => x.TagSlug.ToLower()).ToList();
                List <string> cats = site.GetCategoryList().Select(x => x.CategorySlug.ToLower()).ToList();

                this.Site.Tags.RemoveAll(x => tags.Contains(x.InfoKey.ToLower()));
                this.Site.Categories.RemoveAll(x => cats.Contains(x.InfoKey.ToLower()));

                sMsg += "<li>Imported Tags and Categories</li>";

                List <ContentTag> lstTag = (from l in this.Site.Tags.Distinct()
                                            select new ContentTag {
                    ContentTagID = Guid.NewGuid(),
                    IsPublic = true,
                    SiteID = site.SiteID,
                    TagSlug = l.InfoKey,
                    TagText = l.InfoLabel
                }).Distinct().ToList();

                List <ContentCategory> lstCat = (from l in this.Site.Categories.Distinct()
                                                 select new ContentCategory {
                    ContentCategoryID = Guid.NewGuid(),
                    IsPublic = true,
                    SiteID = site.SiteID,
                    CategorySlug = l.InfoKey,
                    CategoryText = l.InfoLabel
                }).Distinct().ToList();

                foreach (var v in lstTag)
                {
                    v.Save();
                }
                foreach (var v in lstCat)
                {
                    v.Save();
                }
            }
            SetMsg(sMsg);

            if (this.ImportSite)
            {
                sMsg            += "<li>Updated Site Name</li>";
                site.SiteName    = this.Site.SiteTitle;
                site.SiteTagline = this.Site.SiteDescription;
                site.Save();
            }
            SetMsg(sMsg);

            if (!this.MapUsers)
            {
                this.Site.Authors = new List <WordPressUser>();
            }

            //iterate author collection and find if in the system
            foreach (WordPressUser wpu in this.Site.Authors)
            {
                SecurityData sd = new SecurityData();

                ExtendedUserData usr = null;
                wpu.ImportUserID = Guid.Empty;

                //attempt to find the user in the userbase
                usr = ExtendedUserData.FindByEmail(wpu.Email);
                if (usr != null)
                {
                    wpu.ImportUserID = usr.UserId;
                }
                else
                {
                    usr = ExtendedUserData.FindByUsername(wpu.Login);
                    if (usr != null)
                    {
                        wpu.ImportUserID = usr.UserId;
                    }
                }

                if (this.CreateUsers)
                {
                    if (wpu.ImportUserID == Guid.Empty)
                    {
                        ApplicationUser user = new ApplicationUser {
                            UserName = wpu.Login, Email = wpu.Email
                        };
                        var result = sd.CreateApplicationUser(user, out usr);
                        if (result.Succeeded)
                        {
                            usr = ExtendedUserData.FindByUsername(wpu.Login);
                        }
                        else
                        {
                            throw new Exception(String.Format("Could not create user: {0} ({1}) \r\n{3}", wpu.Login, wpu.Email, String.Join("\r\n", result.Errors)));
                        }
                        wpu.ImportUserID = usr.UserId;
                    }

                    if (wpu.ImportUserID != Guid.Empty)
                    {
                        ExtendedUserData ud = new ExtendedUserData(wpu.ImportUserID);
                        if (!String.IsNullOrEmpty(wpu.FirstName) || !String.IsNullOrEmpty(wpu.LastName))
                        {
                            ud.FirstName = wpu.FirstName;
                            ud.LastName  = wpu.LastName;
                            ud.Save();
                        }
                    }
                }
            }

            this.Site.Comments.ForEach(r => r.ImportRootID = Guid.Empty);

            using (ISiteNavHelper navHelper = SiteNavFactory.GetSiteNavHelper()) {
                if (this.ImportPages)
                {
                    sMsg += "<li>Imported Pages</li>";

                    int     iOrder  = 0;
                    SiteNav navHome = navHelper.FindHome(site.SiteID, false);
                    if (navHome != null)
                    {
                        iOrder = 2;
                    }

                    foreach (var wpp in (from c in this.Site.Content
                                         where c.PostType == WordPressPost.WPPostType.Page
                                         orderby c.PostOrder, c.PostTitle
                                         select c).ToList())
                    {
                        GrabAttachments(wpp);
                        RepairBody(wpp);

                        ContentPage cp = ContentImportExportUtils.CreateWPContentPage(this.Site, wpp, site);
                        cp.SiteID       = site.SiteID;
                        cp.ContentType  = ContentPageType.PageType.ContentEntry;
                        cp.EditDate     = SiteData.CurrentSite.Now;
                        cp.NavOrder     = iOrder;
                        cp.TemplateFile = this.PageTemplate;

                        WordPressPost parent = (from c in this.Site.Content
                                                where c.PostType == WordPressPost.WPPostType.Page &&
                                                c.PostID == wpp.ParentPostID
                                                select c).FirstOrDefault();

                        SiteNav navParent = null;

                        SiteNav navData = navHelper.GetLatestVersion(site.SiteID, false, cp.FileName.ToLower());
                        if (parent != null)
                        {
                            navParent = navHelper.GetLatestVersion(site.SiteID, false, parent.ImportFileName.ToLower());
                        }

                        //if URL exists already, make this become a new version in the current series
                        if (navData != null)
                        {
                            cp.Root_ContentID = navData.Root_ContentID;
                            if (navData.NavOrder == 0)
                            {
                                cp.NavOrder = 0;
                            }
                        }

                        if (navParent != null)
                        {
                            cp.Parent_ContentID = navParent.Root_ContentID;
                        }
                        else
                        {
                            if (parent != null)
                            {
                                cp.Parent_ContentID = parent.ImportRootID;
                            }
                        }
                        //preserve homepage
                        if (navHome != null && navHome.FileName.ToLower() == cp.FileName.ToLower())
                        {
                            cp.NavOrder = 0;
                        }

                        cp.RetireDate = CMSConfigHelper.CalcNearestFiveMinTime(cp.CreateDate).AddYears(200);
                        cp.GoLiveDate = CMSConfigHelper.CalcNearestFiveMinTime(cp.CreateDate).AddMinutes(-5);

                        //if URL exists already, make this become a new version in the current series
                        if (navData != null)
                        {
                            cp.Root_ContentID = navData.Root_ContentID;
                            cp.RetireDate     = navData.RetireDate;
                            cp.GoLiveDate     = navData.GoLiveDate;
                        }

                        cp.SavePageEdit();

                        this.Site.Comments.Where(x => x.PostID == wpp.PostID).ToList().ForEach(r => r.ImportRootID = cp.Root_ContentID);

                        iOrder++;
                    }
                }

                if (this.ImportPosts)
                {
                    sMsg += "<li>Imported Posts</li>";

                    foreach (var wpp in (from c in this.Site.Content
                                         where c.PostType == WordPressPost.WPPostType.BlogPost
                                         orderby c.PostOrder
                                         select c).ToList())
                    {
                        GrabAttachments(wpp);
                        RepairBody(wpp);

                        ContentPage cp = ContentImportExportUtils.CreateWPContentPage(this.Site, wpp, site);
                        cp.SiteID           = site.SiteID;
                        cp.Parent_ContentID = null;
                        cp.ContentType      = ContentPageType.PageType.BlogEntry;
                        cp.EditDate         = SiteData.CurrentSite.Now;
                        cp.NavOrder         = SiteData.BlogSortOrderNumber;
                        cp.TemplateFile     = this.PostTemplate;

                        SiteNav navData = navHelper.GetLatestVersion(site.SiteID, false, cp.FileName.ToLower());

                        cp.RetireDate = CMSConfigHelper.CalcNearestFiveMinTime(cp.CreateDate).AddYears(200);
                        cp.GoLiveDate = CMSConfigHelper.CalcNearestFiveMinTime(cp.CreateDate).AddMinutes(-5);

                        //if URL exists already, make this become a new version in the current series
                        if (navData != null)
                        {
                            cp.Root_ContentID = navData.Root_ContentID;
                            cp.RetireDate     = navData.RetireDate;
                            cp.GoLiveDate     = navData.GoLiveDate;
                        }

                        cp.SavePageEdit();

                        this.Site.Comments.Where(x => x.PostID == wpp.PostID).ToList().ForEach(r => r.ImportRootID = cp.Root_ContentID);
                    }

                    using (ContentPageHelper cph = new ContentPageHelper()) {
                        //cph.BulkBlogFileNameUpdateFromDate(site.SiteID);
                        cph.ResolveDuplicateBlogURLs(site.SiteID);
                        cph.FixBlogNavOrder(site.SiteID);
                    }
                }
            }
            SetMsg(sMsg);

            this.Site.Comments.RemoveAll(r => r.ImportRootID == Guid.Empty);

            if (this.Site.Comments.Any())
            {
                sMsg += "<li>Imported Comments</li>";
            }

            foreach (WordPressComment wpc in this.Site.Comments)
            {
                int iCommentCount = -1;

                iCommentCount = PostComment.GetCommentCountByContent(site.SiteID, wpc.ImportRootID, wpc.CommentDateUTC, wpc.AuthorIP, wpc.CommentContent);
                if (iCommentCount < 1)
                {
                    iCommentCount = PostComment.GetCommentCountByContent(site.SiteID, wpc.ImportRootID, wpc.CommentDateUTC, wpc.AuthorIP);
                }

                if (iCommentCount < 1)
                {
                    PostComment pc = new PostComment();
                    pc.ContentCommentID = Guid.NewGuid();
                    pc.Root_ContentID   = wpc.ImportRootID;
                    pc.CreateDate       = site.ConvertUTCToSiteTime(wpc.CommentDateUTC);
                    pc.IsApproved       = false;
                    pc.IsSpam           = false;

                    pc.CommenterIP     = wpc.AuthorIP;
                    pc.CommenterName   = wpc.Author;
                    pc.CommenterEmail  = wpc.AuthorEmail;
                    pc.PostCommentText = wpc.CommentContent;
                    pc.CommenterURL    = wpc.AuthorURL;

                    if (wpc.Approved == "1")
                    {
                        pc.IsApproved = true;
                    }
                    if (wpc.Approved.ToLower() == "trash")
                    {
                        pc.IsSpam = true;
                    }
                    if (wpc.Type.ToLower() == "trackback" || wpc.Type.ToLower() == "pingback")
                    {
                        pc.CommenterEmail = wpc.Type;
                    }

                    pc.Save();
                }
            }
            SetMsg(sMsg);
        }
Пример #24
0
        protected void Page_Load(object sender, EventArgs e)
        {
            Master.ActivateTab(AdminBaseMasterPage.SectionID.BlogContentAdd);

            RedirectIfNoSite();

            lblUpdated.Text    = SiteData.CurrentSite.Now.ToString();
            lblCreateDate.Text = SiteData.CurrentSite.Now.ToString();

            guidContentID        = GetGuidIDFromQuery();
            guidVersionContentID = GetGuidParameterFromQuery("versionid");
            guidImportContentID  = GetGuidParameterFromQuery("importid");

            sPageMode = GetStringParameterFromQuery("mode");
            if (sPageMode.ToLower() == "raw")
            {
                reBody.CssClass      = "rawEditor";
                reLeftBody.CssClass  = "rawEditor";
                reRightBody.CssClass = "rawEditor";
                divCenter.Visible    = false;
                divRight.Visible     = false;
                divLeft.Visible      = false;
            }

            if (!IsPostBack)
            {
                DateTime dtSite = CalcNearestFiveMinTime(SiteData.CurrentSite.Now);
                txtReleaseDate.Text = dtSite.ToShortDateString();
                txtReleaseTime.Text = dtSite.ToShortTimeString();
                txtRetireDate.Text  = dtSite.AddYears(200).ToShortDateString();
                txtRetireTime.Text  = dtSite.AddYears(200).ToShortTimeString();

                hdnRootID.Value = Guid.Empty.ToString();

                GeneralUtilities.BindList(listCats, SiteData.CurrentSite.GetCategoryList().OrderBy(x => x.CategoryText));
                GeneralUtilities.BindList(listTags, SiteData.CurrentSite.GetTagList().OrderBy(x => x.TagText));

                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)
                {
                    ContentPageExport cpe = ContentImportExportUtils.GetSerializedContentPageExport(guidImportContentID);

                    if (cpe != null)
                    {
                        pageContents                  = cpe.ThePage;
                        pageContents.EditDate         = SiteData.CurrentSite.Now;
                        pageContents.Parent_ContentID = null;
                    }

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

                List <ContentPage> lstContent = pageHelper.GetAllLatestContentList(SiteID);

                GeneralUtilities.BindList(ddlTemplate, cmsHelper.Templates);

                chkDraft.Visible   = false;
                divEditing.Visible = false;

                Dictionary <string, float> dictTemplates = pageHelper.GetPopularTemplateList(SiteID, ContentPageType.PageType.BlogEntry);
                if (dictTemplates.Any())
                {
                    try {
                        GeneralUtilities.SelectListValue(ddlTemplate, dictTemplates.First().Key);
                    } catch { }
                }

                if (pageContents == null)
                {
                    btnDeleteButton.Visible = false;
                }

                if (pageContents != null)
                {
                    bool bRet = pageHelper.RecordPageLock(pageContents.Root_ContentID, SiteData.CurrentSite.SiteID, SecurityData.CurrentUserGuid);

                    if (pageContents.ContentType != ContentPageType.PageType.BlogEntry)
                    {
                        Response.Redirect(SiteFilename.PageAddEditURL + "?id=" + Request.QueryString.ToString());
                    }

                    cmsHelper.OverrideKey(pageContents.Root_ContentID);
                    cmsHelper.cmsAdminContent = pageContents;
                    cmsHelper.cmsAdminWidget  = pageContents.GetWidgetList();

                    BindTextDataGrid();

                    guidRootContentID = pageContents.Root_ContentID;
                    hdnRootID.Value   = guidRootContentID.ToString();

                    txtOldFile.Text = pageContents.FileName;

                    if (guidImportContentID != Guid.Empty)
                    {
                        txtOldFile.Text = "";
                    }

                    Dictionary <string, string> dataVersions = (from v in pageHelper.GetVersionHistory(SiteID, pageContents.Root_ContentID)
                                                                join u in ExtendedUserData.GetUserList() on v.EditUserId equals u.UserId
                                                                orderby v.EditDate descending
                                                                select new KeyValuePair <string, string>(v.ContentID.ToString(), string.Format("{0} ({1}) {2}", v.EditDate, u.UserName, (v.IsLatestVersion ? " [**] " : " ")))
                                                                ).ToDictionary(kvp => kvp.Key, kvp => kvp.Value);

                    GeneralUtilities.BindListDefaultText(ddlVersions, dataVersions, null, "Page Versions", "00000");

                    bLocked = pageHelper.IsPageLocked(pageContents);

                    pnlHB.Visible      = !bLocked;
                    pnlButtons.Visible = !bLocked;
                    divEditing.Visible = bLocked;
                    chkDraft.Visible   = !bLocked;
                    pnlHBEmpty.Visible = bLocked;

                    if (bLocked && pageContents.Heartbeat_UserId != null)
                    {
                        MembershipUser usr = SecurityData.GetUserByGuid(pageContents.Heartbeat_UserId.Value);
                        litUser.Text = "Read only mode. User '" + usr.UserName + "' is currently editing the page.";
                    }

                    txtTitle.Text    = pageContents.TitleBar;
                    txtNav.Text      = pageContents.NavMenuText;
                    txtHead.Text     = pageContents.PageHead;
                    txtPageSlug.Text = pageContents.PageSlug;
                    txtThumb.Text    = pageContents.Thumbnail;

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

                    lblUpdated.Text    = pageContents.EditDate.ToString();
                    lblCreateDate.Text = pageContents.CreateDate.ToString();

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

                    chkActive.Checked = pageContents.PageActive;
                    chkHide.Checked   = pageContents.BlockIndex;

                    GeneralUtilities.BindDataBoundControl(gvTracks, pageContents.GetTrackbacks());

                    txtReleaseDate.Text = pageContents.GoLiveDate.ToShortDateString();
                    txtReleaseTime.Text = pageContents.GoLiveDate.ToShortTimeString();
                    txtRetireDate.Text  = pageContents.RetireDate.ToShortDateString();
                    txtRetireTime.Text  = pageContents.RetireDate.ToShortTimeString();

                    if (pageContents.CreditUserId.HasValue)
                    {
                        var usr = new ExtendedUserData(pageContents.CreditUserId.Value);
                        hdnCreditUserID.Value = usr.UserName;
                        txtSearchUser.Text    = string.Format("{0} ({1})", usr.UserName, usr.EmailAddress);
                    }

                    pageContents.Parent_ContentID = null;

                    GeneralUtilities.SelectListValue(ddlTemplate, pageContents.TemplateFile.ToLower());

                    GeneralUtilities.SelectListValues(listTags, pageContents.ContentTags.Cast <IContentMetaInfo>().Select(x => x.ContentMetaInfoID.ToString()).ToList());
                    GeneralUtilities.SelectListValues(listCats, pageContents.ContentCategories.Cast <IContentMetaInfo>().Select(x => x.ContentMetaInfoID.ToString()).ToList());
                }
            }

            SetBlankText(reBody);
            SetBlankText(reLeftBody);
            SetBlankText(reRightBody);

            if (ddlVersions.Items.Count < 1)
            {
                pnlReview.Visible = false;
            }
        }
Пример #25
0
        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 = 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 = Convert.ToDateTime(txtReleaseDate.Text + " " + txtReleaseTime.Text);
            pageContents.RetireDate = Convert.ToDateTime(txtRetireDate.Text + " " + txtRetireTime.Text);
            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.ToLower().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);
            }
        }
Пример #26
0
        protected void btnApply_Click(object sender, EventArgs e)
        {
            if (userID != Guid.Empty)
            {
                MembershipUser usr = Membership.GetUser(userID);
                usr.Email = Email.Text;
                Membership.UpdateUser(usr);

                ExtendedUserData exUsr = new ExtendedUserData(userID);
                exUsr.UserNickName = txtNickName.Text;
                exUsr.FirstName    = txtFirstName.Text;
                exUsr.LastName     = txtLastName.Text;
                exUsr.UserBio      = reBody.Text;

                exUsr.Save();

                if (!chkLocked.Checked)
                {
                    usr.UnlockUser();
                    Membership.UpdateUser(usr);
                }
                else
                {
                    if (!usr.IsLockedOut)
                    {
                        int iCount = 0;
                        while (iCount < 10)
                        {
                            Membership.ValidateUser(usr.UserName, "zzBadPassWord123a" + iCount.ToString());
                            Membership.ValidateUser(usr.UserName, "zzBadPassWord123b" + iCount.ToString());
                            iCount++;
                        }
                    }
                }

                exUsr.AddToRole(SecurityData.CMSGroup_Users);

                CheckBox    chkSelected = null;
                HiddenField hdnSiteID   = null;

                foreach (GridViewRow dgItem in gvSites.Rows)
                {
                    hdnSiteID = (HiddenField)dgItem.FindControl("hdnSiteID");

                    if (hdnSiteID != null)
                    {
                        Guid guidSiteID = new Guid(hdnSiteID.Value);
                        chkSelected = (CheckBox)dgItem.FindControl("chkSelected");

                        if (chkSelected.Checked)
                        {
                            exUsr.AddToSite(guidSiteID);
                        }
                        else
                        {
                            exUsr.RemoveFromSite(guidSiteID);
                        }
                    }
                }

                HiddenField hdnRoleId = null;

                foreach (GridViewRow dgItem in gvRoles.Rows)
                {
                    hdnRoleId = (HiddenField)dgItem.FindControl("hdnRoleId");
                    if (hdnRoleId != null)
                    {
                        chkSelected = (CheckBox)dgItem.FindControl("chkSelected");

                        if (chkSelected.Checked)
                        {
                            exUsr.AddToRole(hdnRoleId.Value);
                        }
                        else
                        {
                            exUsr.RemoveFromRole(hdnRoleId.Value);
                        }
                    }
                }
            }
        }
Пример #27
0
 public UserModel(ExtendedUserData user)
 {
     this.User = user;
 }
Пример #28
0
        protected void Page_Load(object sender, EventArgs e)
        {
            Master.ActivateTab(AdminBaseMasterPage.SectionID.UserAdmin);

            userID = GetGuidIDFromQuery();

            btnApply.Visible = SecurityData.IsAdmin;

            if (!IsPostBack)
            {
                if (userID != Guid.Empty)
                {
                    var dsRoles            = SecurityData.GetRoleListRestricted();
                    ExtendedUserData exUsr = new ExtendedUserData(userID);

                    CheckBox chkSelected = null;

                    gvSites.Visible = false;

                    if (SecurityData.IsAdmin)
                    {
                        gvSites.Visible = true;

                        GeneralUtilities.BindDataBoundControl(gvSites, SiteData.GetSiteList());

                        List <SiteData> lstSites = exUsr.GetSiteList();

                        chkSelected = null;

                        if (lstSites.Any())
                        {
                            HiddenField hdnSiteID = null;
                            foreach (GridViewRow dgItem in gvSites.Rows)
                            {
                                hdnSiteID = (HiddenField)dgItem.FindControl("hdnSiteID");
                                if (hdnSiteID != null)
                                {
                                    Guid locID = new Guid(hdnSiteID.Value);
                                    chkSelected = (CheckBox)dgItem.FindControl("chkSelected");
                                    int ct = (from l in lstSites where l.SiteID == locID select l).Count();
                                    if (ct > 0)
                                    {
                                        chkSelected.Checked = true;
                                    }
                                }
                            }
                        }
                    }

                    MembershipUser usr = Membership.GetUser(userID);
                    Email.Text          = usr.Email;
                    lblUserName.Text    = usr.UserName;
                    UserName.Text       = usr.UserName;
                    lblUserName.Visible = true;
                    UserName.Visible    = false;

                    chkLocked.Checked = usr.IsLockedOut;

                    txtNickName.Text  = exUsr.UserNickName;
                    txtFirstName.Text = exUsr.FirstName;
                    txtLastName.Text  = exUsr.LastName;
                    reBody.Text       = exUsr.UserBio;

                    GeneralUtilities.BindDataBoundControl(gvRoles, dsRoles);

                    chkSelected = null;

                    HiddenField hdnRoleId = null;
                    foreach (GridViewRow dgItem in gvRoles.Rows)
                    {
                        hdnRoleId = (HiddenField)dgItem.FindControl("hdnRoleId");
                        if (hdnRoleId != null)
                        {
                            chkSelected = (CheckBox)dgItem.FindControl("chkSelected");
                            if (Roles.IsUserInRole(usr.UserName, hdnRoleId.Value))
                            {
                                chkSelected.Checked = true;
                            }
                        }
                    }
                }
            }
        }
Пример #29
0
        protected void Page_Load(object sender, EventArgs e)
        {
            Master.ActivateTab(AdminBaseMasterPage.SectionID.ContentSnippet);

            guidRootItemID    = GetGuidIDFromQuery();
            guidVersionItemID = GetGuidParameterFromQuery("versionid");

            guidItemID = guidRootItemID;

            if (guidItemID == Guid.Empty)
            {
                guidItemID = guidVersionItemID;
            }

            if (!IsPostBack)
            {
                DateTime dtSite = CMSConfigHelper.CalcNearestFiveMinTime(SiteData.CurrentSite.Now);
                ucReleaseDate.SetDate(dtSite);
                ucRetireDate.SetDate(dtSite.AddYears(200));

                ContentSnippet item = null;

                if (guidRootItemID != Guid.Empty)
                {
                    item = ContentSnippet.Get(guidRootItemID);
                }
                else
                {
                    item = ContentSnippet.GetVersion(guidVersionItemID);
                }

                if (item != null)
                {
                    bool bRet = item.RecordSnippetLock(SecurityData.CurrentUserGuid);
                    bLocked = item.IsSnippetLocked();

                    if (bLocked && item.Heartbeat_UserId != null)
                    {
                        MembershipUser usr = SecurityData.GetUserByGuid(item.Heartbeat_UserId.Value);
                        litUser.Text = "Read only mode. User '" + usr.UserName + "' is currently editing the snippet.";
                    }

                    txtSlug.Text   = item.ContentSnippetSlug;
                    txtLabel.Text  = item.ContentSnippetName;
                    reBody.Text    = item.ContentBody;
                    guidRootItemID = item.Root_ContentSnippetID;

                    ucReleaseDate.SetDate(item.GoLiveDate);
                    ucRetireDate.SetDate(item.RetireDate);

                    chkPublic.Checked       = item.ContentSnippetActive;
                    btnDeleteButton.Visible = true;
                    pnlReview.Visible       = true;

                    Dictionary <string, string> dataVersions = (from v in ContentSnippet.GetHistory(guidRootItemID)
                                                                join u in ExtendedUserData.GetUserList() on v.EditUserId equals u.UserId
                                                                orderby v.EditDate descending
                                                                select new KeyValuePair <string, string>(v.ContentSnippetID.ToString(), string.Format("{0} ({1}) {2}", v.EditDate, u.UserName, (v.IsLatestVersion ? " [**] " : " ")))
                                                                ).ToDictionary(kvp => kvp.Key, kvp => kvp.Value);

                    GeneralUtilities.BindListDefaultText(ddlVersions, dataVersions, null, "Versions", "00000");
                }
                else
                {
                    btnDeleteButton.Visible = false;
                    pnlReview.Visible       = false;
                }
            }

            sPageMode = GetStringParameterFromQuery("mode");
            if (sPageMode.ToLowerInvariant() == "raw")
            {
                reBody.CssClass   = "rawEditor";
                divCenter.Visible = false;
            }

            pnlHB.Visible      = !bLocked;
            pnlHBEmpty.Visible = bLocked;
            pnlButtons.Visible = !bLocked;
            divEditing.Visible = bLocked;
        }
Пример #30
0
        private void ImportStuff()
        {
            SiteData.CurrentSite = null;

            SiteData site = SiteData.CurrentSite;

            litMessage.Text = "<p>No Items Selected For Import</p>";
            string sMsg = "";

            if (chkSite.Checked || chkPages.Checked || chkPosts.Checked)
            {
                List <string> tags = site.GetTagList().Select(x => x.TagSlug.ToLower()).ToList();
                List <string> cats = site.GetCategoryList().Select(x => x.CategorySlug.ToLower()).ToList();

                exSite.TheTags.RemoveAll(x => tags.Contains(x.TagSlug.ToLower()));
                exSite.TheCategories.RemoveAll(x => cats.Contains(x.CategorySlug.ToLower()));

                sMsg += "<p>Imported Tags and Categories</p>";

                List <ContentTag> lstTag = (from l in exSite.TheTags.Distinct()
                                            select new ContentTag {
                    ContentTagID = Guid.NewGuid(),
                    SiteID = site.SiteID,
                    IsPublic = l.IsPublic,
                    TagSlug = l.TagSlug,
                    TagText = l.TagText
                }).ToList();

                List <ContentCategory> lstCat = (from l in exSite.TheCategories.Distinct()
                                                 select new ContentCategory {
                    ContentCategoryID = Guid.NewGuid(),
                    SiteID = site.SiteID,
                    IsPublic = l.IsPublic,
                    CategorySlug = l.CategorySlug,
                    CategoryText = l.CategoryText
                }).ToList();

                foreach (var v in lstTag)
                {
                    v.Save();
                }
                foreach (var v in lstCat)
                {
                    v.Save();
                }
            }
            SetMsg(sMsg);

            if (chkSnippet.Checked)
            {
                List <string> snippets = site.GetContentSnippetList().Select(x => x.ContentSnippetSlug.ToLower()).ToList();

                exSite.TheSnippets.RemoveAll(x => snippets.Contains(x.ContentSnippetSlug.ToLower()));

                sMsg += "<p>Imported Content Snippets</p>";

                List <ContentSnippet> lstSnip = (from l in exSite.TheSnippets.Distinct()
                                                 select new ContentSnippet {
                    SiteID = site.SiteID,
                    Root_ContentSnippetID = Guid.NewGuid(),
                    ContentSnippetID = Guid.NewGuid(),
                    CreateUserId = SecurityData.CurrentUserGuid,
                    CreateDate = site.Now,
                    EditUserId = SecurityData.CurrentUserGuid,
                    EditDate = site.Now,
                    RetireDate = l.RetireDate,
                    GoLiveDate = l.GoLiveDate,
                    ContentSnippetActive = l.ContentSnippetActive,
                    ContentBody = l.ContentBody,
                    ContentSnippetSlug = l.ContentSnippetSlug,
                    ContentSnippetName = l.ContentSnippetName
                }).ToList();

                foreach (var v in lstSnip)
                {
                    v.Save();
                }
            }
            SetMsg(sMsg);

            if (chkSite.Checked)
            {
                sMsg            += "<p>Updated Site Name</p>";
                site.SiteName    = exSite.TheSite.SiteName;
                site.SiteTagline = exSite.TheSite.SiteTagline;
                site.Save();
            }
            SetMsg(sMsg);

            if (!chkMapAuthor.Checked)
            {
                exSite.TheUsers = new List <SiteExportUser>();
            }

            //itterate author collection and find if in the system
            foreach (SiteExportUser seu in exSite.TheUsers)
            {
                seu.ImportUserID = Guid.Empty;

                MembershipUser usr = null;
                //attempt to find the user in the userbase
                usr = SecurityData.GetUserListByEmail(seu.Email).FirstOrDefault();
                if (usr != null)
                {
                    seu.ImportUserID = new Guid(usr.ProviderUserKey.ToString());
                }
                else
                {
                    usr = SecurityData.GetUserListByName(seu.Login).FirstOrDefault();
                    if (usr != null)
                    {
                        seu.ImportUserID = new Guid(usr.ProviderUserKey.ToString());
                    }
                }

                if (chkAuthors.Checked)
                {
                    if (seu.ImportUserID == Guid.Empty)
                    {
                        usr = Membership.CreateUser(seu.Login, ProfileManager.GenerateSimplePassword(), seu.Email);
                        Roles.AddUserToRole(seu.Login, SecurityData.CMSGroup_Users);
                        seu.ImportUserID = new Guid(usr.ProviderUserKey.ToString());
                    }

                    if (seu.ImportUserID != Guid.Empty)
                    {
                        ExtendedUserData ud = new ExtendedUserData(seu.ImportUserID);
                        if (ud != null)
                        {
                            if (!String.IsNullOrEmpty(seu.FirstName) || !String.IsNullOrEmpty(seu.LastName))
                            {
                                ud.FirstName = seu.FirstName;
                                ud.LastName  = seu.LastName;
                                ud.Save();
                            }
                        }
                        else
                        {
                            throw new Exception(String.Format("Could not find new user: {0} ({1})", seu.Login, seu.Email));
                        }
                    }
                }
            }

            if (chkPages.Checked)
            {
                sMsg        += "<p>Imported Pages</p>";
                sitePageList = site.GetFullSiteFileList();

                int iOrder = 0;

                SiteNav navHome = GetHomePage(site);

                if (navHome != null)
                {
                    iOrder = 2;
                }

                foreach (var impCP in (from c in exSite.ThePages
                                       where c.ThePage.ContentType == ContentPageType.PageType.ContentEntry
                                       orderby c.ThePage.NavOrder, c.ThePage.NavMenuText
                                       select c).ToList())
                {
                    ContentPage cp = impCP.ThePage;
                    cp.Root_ContentID = impCP.NewRootContentID;
                    cp.ContentID      = Guid.NewGuid();
                    cp.SiteID         = site.SiteID;
                    cp.ContentType    = ContentPageType.PageType.ContentEntry;
                    cp.EditDate       = SiteData.CurrentSite.Now;
                    cp.EditUserId     = exSite.FindImportUser(impCP.TheUser);
                    cp.CreateUserId   = exSite.FindImportUser(impCP.TheUser);
                    if (impCP.CreditUser != null)
                    {
                        cp.CreditUserId = exSite.FindImportUser(impCP.CreditUser);
                    }
                    cp.NavOrder     = iOrder;
                    cp.TemplateFile = ddlTemplatePage.SelectedValue;

                    ContentPageExport parent = (from c in exSite.ThePages
                                                where c.ThePage.ContentType == ContentPageType.PageType.ContentEntry &&
                                                c.ThePage.FileName.ToLower() == impCP.ParentFileName.ToLower()
                                                select c).FirstOrDefault();

                    BasicContentData navParent = null;
                    BasicContentData navData   = GetFileInfoFromList(site, cp.FileName);

                    if (parent != null)
                    {
                        cp.Parent_ContentID = parent.NewRootContentID;
                        navParent           = GetFileInfoFromList(site, parent.ThePage.FileName);
                    }

                    //if URL exists already, make this become a new version in the current series
                    if (navData != null)
                    {
                        cp.Root_ContentID = navData.Root_ContentID;

                        impCP.ThePage.RetireDate = navData.RetireDate;
                        impCP.ThePage.GoLiveDate = navData.GoLiveDate;

                        if (navData.NavOrder == 0)
                        {
                            cp.NavOrder = 0;
                        }
                    }
                    //preserve homepage
                    if (navHome != null && navHome.FileName.ToLower() == cp.FileName.ToLower())
                    {
                        cp.NavOrder = 0;
                    }
                    //if the file url in the upload has an existing ID, use that, not the ID from the queue
                    if (navParent != null)
                    {
                        cp.Parent_ContentID = navParent.Root_ContentID;
                    }

                    cp.RetireDate = impCP.ThePage.RetireDate;
                    cp.GoLiveDate = impCP.ThePage.GoLiveDate;

                    cp.SavePageEdit();

                    iOrder++;
                }
            }
            SetMsg(sMsg);

            if (chkPosts.Checked)
            {
                sMsg        += "<p>Imported Posts</p>";
                sitePageList = site.GetFullSiteFileList();

                List <ContentTag>      lstTags       = site.GetTagList();
                List <ContentCategory> lstCategories = site.GetCategoryList();

                foreach (var impCP in (from c in exSite.ThePages
                                       where c.ThePage.ContentType == ContentPageType.PageType.BlogEntry
                                       orderby c.ThePage.CreateDate
                                       select c).ToList())
                {
                    ContentPage cp = impCP.ThePage;
                    cp.Root_ContentID   = impCP.NewRootContentID;
                    cp.ContentID        = Guid.NewGuid();
                    cp.SiteID           = site.SiteID;
                    cp.Parent_ContentID = null;
                    cp.ContentType      = ContentPageType.PageType.BlogEntry;
                    cp.EditDate         = SiteData.CurrentSite.Now;
                    cp.EditUserId       = exSite.FindImportUser(impCP.TheUser);
                    cp.CreateUserId     = exSite.FindImportUser(impCP.TheUser);
                    if (impCP.CreditUser != null)
                    {
                        cp.CreditUserId = exSite.FindImportUser(impCP.CreditUser);
                    }
                    cp.NavOrder     = SiteData.BlogSortOrderNumber;
                    cp.TemplateFile = ddlTemplatePost.SelectedValue;

                    cp.ContentCategories = (from l in lstCategories
                                            join o in impCP.ThePage.ContentCategories on l.CategorySlug.ToLower() equals o.CategorySlug.ToLower()
                                            select l).Distinct().ToList();

                    cp.ContentTags = (from l in lstTags
                                      join o in impCP.ThePage.ContentTags on l.TagSlug.ToLower() equals o.TagSlug.ToLower()
                                      select l).Distinct().ToList();

                    BasicContentData navData = GetFileInfoFromList(site, cp.FileName);

                    //if URL exists already, make this become a new version in the current series
                    if (navData != null)
                    {
                        cp.Root_ContentID = navData.Root_ContentID;

                        impCP.ThePage.RetireDate = navData.RetireDate;
                        impCP.ThePage.GoLiveDate = navData.GoLiveDate;
                    }

                    cp.RetireDate = impCP.ThePage.RetireDate;
                    cp.GoLiveDate = impCP.ThePage.GoLiveDate;

                    cp.SavePageEdit();
                }

                using (ContentPageHelper cph = new ContentPageHelper()) {
                    //cph.BulkBlogFileNameUpdateFromDate(site.SiteID);
                    cph.ResolveDuplicateBlogURLs(site.SiteID);
                    cph.FixBlogNavOrder(site.SiteID);
                }
            }
            SetMsg(sMsg);

            if (chkComments.Checked)
            {
                sMsg        += "<p>Imported Comments</p>";
                sitePageList = site.GetFullSiteFileList();

                foreach (var impCP in (from c in exSite.TheComments
                                       orderby c.TheComment.CreateDate
                                       select c).ToList())
                {
                    int              iCommentCount = -1;
                    PostComment      pc            = impCP.TheComment;
                    BasicContentData navData       = GetFileInfoFromList(site, pc.FileName);
                    if (navData != null)
                    {
                        pc.Root_ContentID   = navData.Root_ContentID;
                        pc.ContentCommentID = Guid.NewGuid();

                        iCommentCount = PostComment.GetCommentCountByContent(site.SiteID, pc.Root_ContentID, pc.CreateDate, pc.CommenterIP, pc.PostCommentText);
                        if (iCommentCount < 1)
                        {
                            iCommentCount = PostComment.GetCommentCountByContent(site.SiteID, pc.Root_ContentID, pc.CreateDate, pc.CommenterIP);
                        }

                        if (iCommentCount < 1)
                        {
                            pc.Save();
                        }
                    }
                }
            }
            SetMsg(sMsg);

            BindData();
        }