Example #1
0
        private void BindDataGrid(bool dataBind)
        {
            DataTable dt = new DataTable();

            dt.Columns.Add(new DataColumn("Id", typeof(string)));
            dt.Columns.Add(new DataColumn("FullId", typeof(string)));
            dt.Columns.Add(new DataColumn("Title", typeof(string)));
            dt.Columns.Add(new DataColumn("Order", typeof(string)));
            dt.Columns.Add(new DataColumn("Hidden", typeof(bool)));
            dt.Columns.Add(new DataColumn("HiddenParent", typeof(bool)));
            dt.Columns.Add(new DataColumn("HiddenLayer", typeof(string)));
            dt.Columns.Add(new DataColumn("Added", typeof(bool)));
            dt.Columns.Add(new DataColumn("AddedLayer", typeof(string)));
            dt.Columns.Add(new DataColumn("Changed", typeof(bool)));
            dt.Columns.Add(new DataColumn("ChangedLayer", typeof(string)));
            dt.Columns.Add(new DataColumn("Odd", typeof(bool)));

            bool odd = true;

            string profileString   = ProfileId.HasValue ? ProfileId.Value.ToString() : String.Empty;
            string principalString = UserId.HasValue ? UserId.Value.ToString() : String.Empty;

            if (UserId.HasValue)
            {
                profileString = ProfileManager.GetProfileIdByUser(UserId.Value).ToString();
            }

            IXPathNavigable navigable;
            Selector        selector = new Selector(string.Empty, string.Empty, string.Empty, profileString, principalString);

            using (DisableDataCacheScope scope = new DisableDataCacheScope())
            {
                navigable = Mediachase.Ibn.XmlTools.XmlBuilder.GetCustomizationXml(null,
                                                                                   Mediachase.Ibn.XmlTools.StructureType.Navigation, selector);
            }
            XPathNavigator tabsNode = navigable.CreateNavigator().SelectSingleNode("Navigation/Tabs");

            foreach (XPathNavigator subItem in tabsNode.SelectChildren("Tab", string.Empty))
            {
                bool hidden;
                bool.TryParse(subItem.GetAttribute("hidden", string.Empty), out hidden);

                // don't show items, hidden at the above layer
                string hiddenLayer = subItem.GetAttribute("hiddenLayer", string.Empty);
                if (hidden && ProfileId.HasValue && hiddenLayer == NavigationManager.CustomizationLayerGlobal)
                {
                    continue;
                }
                if (hidden && UserId.HasValue && (hiddenLayer == NavigationManager.CustomizationLayerGlobal || hiddenLayer == NavigationManager.CustomizationLayerProfile))
                {
                    continue;
                }

                string id = subItem.GetAttribute("id", string.Empty);

                DataRow dr = dt.NewRow();
                dr["Id"]     = subItem.GetAttribute("id", string.Empty);
                dr["FullId"] = id;
                dr["Title"]  = UtilHelper.GetResFileString(subItem.GetAttribute("text", string.Empty));
                dr["Order"]  = subItem.GetAttribute("order", string.Empty);

                dr["Hidden"]       = hidden;
                dr["HiddenParent"] = false;

                bool changed;
                bool.TryParse(subItem.GetAttribute("changed", string.Empty), out changed);
                dr["Changed"] = changed;
                dr["Odd"]     = odd;

                string addedString = subItem.GetAttribute("added", string.Empty);
                if (String.IsNullOrEmpty(addedString))
                {
                    dr["Added"] = false;
                }
                else
                {
                    dr["Added"] = bool.Parse(addedString);
                }

                dr["HiddenLayer"]  = subItem.GetAttribute("hiddenLayer", string.Empty);
                dr["ChangedLayer"] = subItem.GetAttribute("changedLayer", string.Empty);
                dr["AddedLayer"]   = subItem.GetAttribute("addedLayer", string.Empty);

                dt.Rows.Add(dr);

//				if (!hidden)
                ProcessChildren(dt, subItem, id, hidden, 0, odd);

                odd = !odd;
            }

            grdMain.DataSource = dt.DefaultView;

            if (dataBind)
            {
                grdMain.DataBind();
            }
        }
Example #2
0
        private void BindDataGrid(bool dataBind)
        {
            DataTable dt = new DataTable();
            dt.Columns.Add(new DataColumn("Id", typeof(string)));
            dt.Columns.Add(new DataColumn("FullId", typeof(string)));
            dt.Columns.Add(new DataColumn("Title", typeof(string)));
            dt.Columns.Add(new DataColumn("Order", typeof(string)));
            dt.Columns.Add(new DataColumn("Hidden", typeof(bool)));
            dt.Columns.Add(new DataColumn("HiddenParent", typeof(bool)));
            dt.Columns.Add(new DataColumn("HiddenLayer", typeof(string)));
            dt.Columns.Add(new DataColumn("Added", typeof(bool)));
            dt.Columns.Add(new DataColumn("AddedLayer", typeof(string)));
            dt.Columns.Add(new DataColumn("Changed", typeof(bool)));
            dt.Columns.Add(new DataColumn("ChangedLayer", typeof(string)));
            dt.Columns.Add(new DataColumn("Odd", typeof(bool)));

            bool odd = true;

            string profileString = ProfileId.HasValue ? ProfileId.Value.ToString() : String.Empty;
            string principalString = UserId.HasValue ? UserId.Value.ToString() : String.Empty;
            if (UserId.HasValue)
                profileString = ProfileManager.GetProfileIdByUser(UserId.Value).ToString();

            IXPathNavigable navigable;
            Selector selector = new Selector(string.Empty, string.Empty, string.Empty, profileString, principalString);
            using (DisableDataCacheScope scope = new DisableDataCacheScope())
            {
                navigable = Mediachase.Ibn.XmlTools.XmlBuilder.GetCustomizationXml(null,
                    Mediachase.Ibn.XmlTools.StructureType.Navigation, selector);
            }
            XPathNavigator tabsNode = navigable.CreateNavigator().SelectSingleNode("Navigation/Tabs");
            foreach (XPathNavigator subItem in tabsNode.SelectChildren("Tab", string.Empty))
            {
                bool hidden;
                bool.TryParse(subItem.GetAttribute("hidden", string.Empty), out hidden);

                // don't show items, hidden at the above layer
                string hiddenLayer = subItem.GetAttribute("hiddenLayer", string.Empty);
                if (hidden && ProfileId.HasValue && hiddenLayer == NavigationManager.CustomizationLayerGlobal)
                    continue;
                if (hidden && UserId.HasValue && (hiddenLayer == NavigationManager.CustomizationLayerGlobal || hiddenLayer == NavigationManager.CustomizationLayerProfile))
                    continue;

                string id = subItem.GetAttribute("id", string.Empty);

                DataRow dr = dt.NewRow();
                dr["Id"] = subItem.GetAttribute("id", string.Empty);
                dr["FullId"] = id;
                dr["Title"] = UtilHelper.GetResFileString(subItem.GetAttribute("text", string.Empty));
                dr["Order"] = subItem.GetAttribute("order", string.Empty);

                dr["Hidden"] = hidden;
                dr["HiddenParent"] = false;

                bool changed;
                bool.TryParse(subItem.GetAttribute("changed", string.Empty), out changed);
                dr["Changed"] = changed;
                dr["Odd"] = odd;

                string addedString = subItem.GetAttribute("added", string.Empty);
                if (String.IsNullOrEmpty(addedString))
                    dr["Added"] = false;
                else
                    dr["Added"] = bool.Parse(addedString);

                dr["HiddenLayer"] = subItem.GetAttribute("hiddenLayer", string.Empty);
                dr["ChangedLayer"] = subItem.GetAttribute("changedLayer", string.Empty);
                dr["AddedLayer"] = subItem.GetAttribute("addedLayer", string.Empty);

                dt.Rows.Add(dr);

            //				if (!hidden)
                ProcessChildren(dt, subItem, id, hidden, 0, odd);

                odd = !odd;
            }

            grdMain.DataSource = dt.DefaultView;

            if (dataBind)
                grdMain.DataBind();
        }