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