Пример #1
0
        public List <MenuItem> GetMenuItemsForCurrentUser()
        {
            List <MenuItem> menuItems = new List <MenuItem>();

            try
            {
                SPSecurity.RunWithElevatedPrivileges(() =>
                {
                    using (SPSite site = new SPSite(SPContext.Current.Site.Url.Replace(SPContext.Current.Site.ServerRelativeUrl, "/")))
                    {
                        using (SPWeb web = site.RootWeb)
                        {
                            SPList menuList = web.Lists.TryGetList("NavigationMenuList");
                            if (menuList != null)
                            {
                                foreach (SPListItem item in menuList.Items)
                                {
                                    if (item.DoesUserHavePermissions(SPContext.Current.Web.CurrentUser, SPBasePermissions.Open))
                                    {
                                        //add into the custom list
                                        MenuItem menuItem = new MenuItem();
                                        menuItem.ID       = item.ID;    //menu item id
                                        menuItem.Name     = item.Title; //menu item name
                                        //parent menu item lookup value
                                        if (item["ParentMenuItem"] != null)
                                        {
                                            SPFieldLookup parentItemLookup     = (SPFieldLookup)item.Fields.GetFieldByInternalName("ParentMenuItem");
                                            SPFieldLookupValue parentItemValue = (SPFieldLookupValue)parentItemLookup.GetFieldValue(item["ParentMenuItem"].ToString());
                                            menuItem.ParentItem = parentItemValue.LookupValue;
                                        }
                                        else
                                        {
                                            menuItem.ParentItem = String.Empty;
                                        }
                                        menuItem.SortOrder = Convert.ToInt32(item["SortOrder"].ToString());                      //sort order
                                        menuItem.URL       = item["MenuItemUrl"] != null ? item["MenuItemUrl"].ToString() : "#"; //menu item URL
                                        menuItems.Add(menuItem);
                                    }
                                }
                            }
                        }
                    }
                });
            }
            catch (Exception ex)
            {
            }
            return(menuItems);
        }
Пример #2
0
        private static void CreateMetadataPair(List <GuidewireWS.trg_MetadataPair> metadata, string key, string propertyName, SPListItem item)
        {
            try
            {
                GuidewireWS.trg_MetadataPair metadataPair = new GuidewireWS.trg_MetadataPair();
                //SPListItem listItem = properties.ListItem;
                SPListItem listItem = item;
                if (listItem.Fields.ContainsField(propertyName))
                {
                    metadataPair.key = key;
                    SPField propertyField = listItem.Fields[propertyName];
                    switch (propertyField.Type)
                    {
                    case SPFieldType.User:
                    {
                        SPFieldUser      userField      = propertyField as SPFieldUser;
                        SPFieldUserValue userFieldValue = (SPFieldUserValue)userField.GetFieldValue(listItem[propertyName].ToString());
                        if (userFieldValue != null && userFieldValue.User != null)
                        {
                            metadataPair.value = userFieldValue.User.Name;
                        }
                        else
                        {
                            metadataPair.value = (string)listItem[propertyName];
                        }
                    }
                    break;

                    case SPFieldType.Lookup:
                    {
                        SPFieldLookup      lookupField      = propertyField as SPFieldLookup;
                        SPFieldLookupValue lookupFieldValue = (SPFieldLookupValue)lookupField.GetFieldValue(listItem[propertyName].ToString());
                        if (lookupFieldValue != null && lookupFieldValue.LookupValue != null)
                        {
                            metadataPair.value = lookupFieldValue.LookupValue;
                        }
                    }
                    break;

                    // Bamboo selectors have type of invalid but work like lookup
                    case SPFieldType.Invalid:
                    {
                        if (listItem[propertyName] != null)
                        {
                            if (propertyField.TypeAsString == "BusinessData")
                            {
                                metadataPair.value = (string)listItem[propertyName];
                            }
                            else
                            {
                                SPFieldLookup      lookupField      = propertyField as SPFieldLookup;
                                SPFieldLookupValue lookupFieldValue = (SPFieldLookupValue)lookupField.GetFieldValue(listItem[propertyName].ToString());
                                if (lookupFieldValue != null && lookupFieldValue.LookupValue != null)
                                {
                                    metadataPair.value = lookupFieldValue.LookupValue;
                                }
                            }
                        }
                    }
                    break;

                    case SPFieldType.DateTime:
                    {
                        metadataPair.value = listItem[propertyName].ToString();
                    }
                    break;

                    default:
                        if (listItem[propertyName] != null)
                        {
                            if (propertyName == "Name")
                            {
                                String fileName = (string)listItem[propertyName];
                                if (fileName.Length > 80)
                                {
                                    String extension = fileName.Substring(fileName.LastIndexOf("."));
                                    String name      = fileName.Substring(0, fileName.Length - extension.Length);
                                    fileName = name.Substring(0, 80 - extension.Length) + extension;
                                }
                                metadataPair.value = fileName;
                            }
                            else
                            {
                                metadataPair.value = (string)listItem[propertyName];
                            }
                        }
                        break;
                    }
                    metadata.Add(metadataPair);
                }
            }
            catch (Exception e)
            {
                LogError("CreateMetadataPair failed with exception: " + e.Message);
            }
        }
        public List <MenuItem> GetMenuItemsForCurrentUser()
        {
            List <MenuItem> menuItems = new List <MenuItem>();

            try
            {
                //Can switch back to hard-coded root collection URL
                using (SPSite site = new SPSite(SPContext.Current.Web.Site.WebApplication.Sites[0].Url))
                {
                    using (SPWeb web = site.RootWeb)
                    {
                        SPList menuList = web.Lists.TryGetList("NavigationMenuList");
                        if (menuList != null)
                        {
                            foreach (SPListItem item in menuList.Items)
                            {
                                SPUser user = web.CurrentUser;
                                if (item.DoesUserHavePermissions(SPContext.Current.Web.CurrentUser, SPBasePermissions.Open))
                                {
                                    //add into the custom list
                                    MenuItem menuItem = new MenuItem();
                                    menuItem.ID   = item.ID;    //menu item id
                                    menuItem.Name = item.Title; //menu item name
                                    //parent menu item lookup value
                                    if (item["ParentMenuItem"] != null)
                                    {
                                        SPFieldLookup      parentItemLookup = (SPFieldLookup)item.Fields.GetFieldByInternalName("ParentMenuItem");
                                        SPFieldLookupValue parentItemValue  = (SPFieldLookupValue)parentItemLookup.GetFieldValue(item["ParentMenuItem"].ToString());
                                        menuItem.ParentItem = parentItemValue.LookupValue;
                                    }
                                    else
                                    {
                                        menuItem.ParentItem = String.Empty;
                                    }
                                    menuItem.SortOrder = Convert.ToInt32(item["SortOrder"].ToString());                      //sort order
                                    menuItem.URL       = item["MenuItemUrl"] != null ? item["MenuItemUrl"].ToString() : "#"; //menu item URL
                                    menuItems.Add(menuItem);
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
            }
            return(menuItems);
        }