Example #1
0
        private static Collection <PageSettings> LoadMenuPages()
        {
            Collection <PageSettings> menuPages
                = new Collection <PageSettings>();

            SiteSettings siteSettings = GetCurrentSiteSettings();

            if (siteSettings == null)
            {
                return(menuPages);
            }

            bool useFolderForSiteDetection
                = ConfigHelper.GetBoolProperty("UseFoldersInsteadOfHostnamesForMultipleSites", false);
            string virtualFolder;

            if (useFolderForSiteDetection)
            {
                virtualFolder = VirtualFolderEvaluator.VirtualFolderName();
            }
            else
            {
                virtualFolder = string.Empty;
            }


            using (IDataReader reader = PageSettings.GetPageList(siteSettings.SiteId))
            {
                int i = 0;
                while (reader.Read())
                {
                    PageSettings pageDetails = new PageSettings();
                    pageDetails.SiteId               = siteSettings.SiteId;
                    pageDetails.PageId               = Convert.ToInt32(reader["PageID"]);
                    pageDetails.ParentId             = Convert.ToInt32(reader["ParentID"]);
                    pageDetails.PageName             = reader["PageName"].ToString();
                    pageDetails.MenuImage            = reader["MenuImage"].ToString();
                    pageDetails.PageOrder            = Convert.ToInt32(reader["PageOrder"]);
                    pageDetails.AuthorizedRoles      = reader["AuthorizedRoles"].ToString();
                    pageDetails.EditRoles            = reader["EditRoles"].ToString();
                    pageDetails.DraftEditOnlyRoles   = reader["DraftEditRoles"].ToString();
                    pageDetails.CreateChildPageRoles = reader["CreateChildPageRoles"].ToString();


                    pageDetails.UseUrl             = Convert.ToBoolean(reader["UseUrl"]);
                    pageDetails.Url                = reader["Url"].ToString();
                    pageDetails.IncludeInMenu      = Convert.ToBoolean(reader["IncludeInMenu"]);
                    pageDetails.IncludeInSiteMap   = Convert.ToBoolean(reader["IncludeInSiteMap"]);
                    pageDetails.IncludeInSearchMap = Convert.ToBoolean(reader["IncludeInSearchMap"]);
                    pageDetails.IsClickable        = Convert.ToBoolean(reader["IsClickable"]);
                    pageDetails.ShowHomeCrumb      = Convert.ToBoolean(reader["ShowHomeCrumb"]);
                    pageDetails.RequireSsl         = Convert.ToBoolean(reader["RequireSSL"]);

                    if (
                        (useFolderForSiteDetection) &&
                        (virtualFolder.Length > 0) &&
                        (pageDetails.Url.StartsWith("~/"))
                        )
                    {
                        pageDetails.Url
                            = pageDetails.Url.Replace("~/", "~/" + virtualFolder + "/");
                    }

                    if (
                        (useFolderForSiteDetection) &&
                        (virtualFolder.Length > 0) &&
                        (!pageDetails.UseUrl)
                        )
                    {
                        pageDetails.Url
                            = "~/" + virtualFolder + "/Default.aspx?pageid="
                              + pageDetails.PageId.ToString();
                        pageDetails.UseUrl = true;
                    }


                    pageDetails.OpenInNewWindow          = Convert.ToBoolean(reader["OpenInNewWindow"]);
                    pageDetails.ShowChildPageMenu        = Convert.ToBoolean(reader["ShowChildPageMenu"]);
                    pageDetails.ShowChildPageBreadcrumbs = Convert.ToBoolean(reader["ShowChildBreadCrumbs"]);
                    pageDetails.PageIndex = i;

                    string cf = reader["ChangeFrequency"].ToString();
                    switch (cf)
                    {
                    case "Always":
                        pageDetails.ChangeFrequency = PageChangeFrequency.Always;
                        break;

                    case "Hourly":
                        pageDetails.ChangeFrequency = PageChangeFrequency.Hourly;
                        break;

                    case "Daily":
                        pageDetails.ChangeFrequency = PageChangeFrequency.Daily;
                        break;

                    case "Monthly":
                        pageDetails.ChangeFrequency = PageChangeFrequency.Monthly;
                        break;

                    case "Yearly":
                        pageDetails.ChangeFrequency = PageChangeFrequency.Yearly;
                        break;

                    case "Never":
                        pageDetails.ChangeFrequency = PageChangeFrequency.Never;
                        break;

                    case "Weekly":
                    default:
                        pageDetails.ChangeFrequency = PageChangeFrequency.Weekly;
                        break;
                    }

                    string smp = reader["SiteMapPriority"].ToString().Trim();
                    if (smp.Length > 0)
                    {
                        pageDetails.SiteMapPriority = smp;
                    }

                    if (reader["LastModifiedUTC"] != DBNull.Value)
                    {
                        pageDetails.LastModifiedUtc = Convert.ToDateTime(reader["LastModifiedUTC"]);
                    }

                    pageDetails.PageGuid   = new Guid(reader["PageGuid"].ToString());
                    pageDetails.ParentGuid = new Guid(reader["ParentGuid"].ToString());


                    pageDetails.HideAfterLogin = Convert.ToBoolean(reader["HideAfterLogin"]);

                    pageDetails.SiteGuid     = new Guid(reader["SiteGuid"].ToString());
                    pageDetails.CompiledMeta = reader["CompiledMeta"].ToString();
                    if (reader["CompiledMetaUtc"] != DBNull.Value)
                    {
                        pageDetails.CompiledMetaUtc = Convert.ToDateTime(reader["CompiledMetaUtc"]);
                    }

                    pageDetails.IsPending = Convert.ToBoolean(reader["IsPending"]);

                    menuPages.Add(pageDetails);
                    i++;
                }
            }

            return(menuPages);
        }