Ejemplo n.º 1
0
        private void FillObjectList(DropDownList lst)
        {
            Dictionary <string, string>           items;
            List <KeyValuePair <string, string> > sortedItems;

            // Meta Classes
            items = new Dictionary <string, string>();
            foreach (MetaClass metaClass in DataContext.Current.MetaModel.MetaClasses)
            {
                if (!metaClass.IsBridge &&
                    !metaClass.IsCard &&
                    !String.IsNullOrEmpty(metaClass.TitleFieldName) &&
                    CHelper.CheckMetaClassIsPublic(metaClass) &&
                    !ListManager.MetaClassIsList(metaClass))
                {
                    items.Add(metaClass.Name, CHelper.GetResFileString(metaClass.FriendlyName));
                }
            }

            // [BusinessObjects] Block
            if (items.Count > 0)
            {
                ListItem li = new ListItem(GetGlobalResourceObject("IbnFramework.GlobalMetaInfo", "BusinessObjectsBlock").ToString(), businessObjectsBlock);
                lst.Items.Add(li);
            }

            // SortByValue
            sortedItems = new List <KeyValuePair <string, string> >(items);
            sortedItems.Sort(
                delegate(KeyValuePair <string, string> firstPair, KeyValuePair <string, string> nextPair)
            {
                return(firstPair.Value.CompareTo(nextPair.Value));
            }
                );

            // add metaclasses
            foreach (KeyValuePair <string, string> kvp in sortedItems)
            {
                string text = String.Format(CultureInfo.InvariantCulture, "   {0}", kvp.Value);
                lst.Items.Add(new ListItem(text, kvp.Key));
            }

            // Lists
            items = new Dictionary <string, string>();
            foreach (MetaClass metaClass in DataContext.Current.MetaModel.MetaClasses)
            {
                string name = metaClass.Name;
                if (!metaClass.IsBridge &&
                    !metaClass.IsCard &&
                    !String.IsNullOrEmpty(metaClass.TitleFieldName) &&
                    ListManager.MetaClassIsList(name))
                {
                    // Check Security
                    int listId = ListManager.GetListIdByClassName(name);
                    if (Mediachase.IBN.Business.ListInfoBus.CanRead(listId))
                    {
                        items.Add(name, CHelper.GetResFileString(metaClass.FriendlyName));
                    }
                }
            }

            // [Lists] Block
            if (items.Count > 0)
            {
                ListItem li = new ListItem(GetGlobalResourceObject("IbnFramework.ListInfo", "ListsBlock").ToString(), listsBlock);
                lst.Items.Add(li);
            }

            // SortByValue
            sortedItems = new List <KeyValuePair <string, string> >(items);
            sortedItems.Sort(
                delegate(KeyValuePair <string, string> firstPair, KeyValuePair <string, string> nextPair)
            {
                return(firstPair.Value.CompareTo(nextPair.Value));
            }
                );

            // add lists
            foreach (KeyValuePair <string, string> kvp in sortedItems)
            {
                string text = String.Format(CultureInfo.InvariantCulture, "   {0}", kvp.Value);
                lst.Items.Add(new ListItem(text, kvp.Key));
            }

            lst.SelectedIndex = 1;
        }