// Private Methods (1) private SPNavLink GetNavLink(DataRow row) { string linkUrl = S(row["Url"]); string itemId = S(row["ItemId"]); string webId = S(WebId); string listId = S(row["ListId"]); if (!string.IsNullOrEmpty(itemId)) { linkUrl = string.Format( @"javascript:OpenCreateWebPageDialog('{0}/_layouts/15/epmlive/redirectionproxy.aspx?action=view&webid={1}&listid={2}&id={3}');", RelativeUrl, webId, listId, itemId); } var link = new SPNavLink { Id = S(row["LinkId"]), Title = S(row["Title"]), Url = linkUrl, CssClass = "epm-nav-sortable " + S(row["CssClass"]), SiteId = S(SiteId), WebId = webId, ListId = listId, ItemId = itemId }; return(link); }
private void GetLinks(DataTable dataTable, List <NavLink> links) { if (dataTable == null || dataTable.Rows.Count == 0) { return; } foreach (DataRow row in dataTable.Rows) { string itemId = string.Empty; try { itemId = S(row["ItemId"]); } catch { } string webId = S(row["WebId"]); string listId = S(row["ListId"]); string url = string.Format( @"{0}/_layouts/15/epmlive/redirectionproxy.aspx?action=gotolist&webid={1}&listid={2}&isdlg=0", RelativeUrl, webId, listId); if (!string.IsNullOrEmpty(itemId)) { url = string.Format( @"javascript:OpenCreateWebPageDialog('{0}/_layouts/15/epmlive/redirectionproxy.aspx?action=view&webid={1}&listid={2}&id={3}');", RelativeUrl, webId, listId, itemId); } var link = new SPNavLink { Id = S(row["LinkId"]), Title = S(row["Title"]), Url = url, CssClass = S(row["CssClass"]), SiteId = S(SiteId), WebId = webId, ListId = listId, ItemId = itemId }; links.Add(link); } }
private IEnumerable <SPNavLink> GetAllWorkspaces() { yield return(new SPNavLink { Title = "All Workspaces", Url = "Header" }); DataTable dataTable = null; using (var spSite = new SPSite(SiteId, GetUserToken())) { using (SPWeb spWeb = spSite.OpenWeb(WebId)) { try { var queryExecutor = new QueryExecutor(spWeb); dataTable = queryExecutor.ExecuteReportingDBStoredProc("spGetWebs", new Dictionary <string, object> { { "@SiteId", SiteId }, { "@UserId", spWeb.CurrentUser.ID } }); } catch { } } } if (dataTable != null && dataTable.Rows.Count > 0) { DataView defaultView = dataTable.DefaultView; defaultView.Sort = "WebTitle"; EnumerableRowCollection <DataRow> rows = defaultView.ToTable().AsEnumerable(); SPNavLink rootWebLink = GetRootWebLink(rows); yield return(rootWebLink); SPSite spSite = null; SPSecurity.RunWithElevatedPrivileges(() => { spSite = new SPSite(SiteId); }); if (spSite == null) { yield break; } foreach (SPNavLink navLink in GetChildWebs(rows, rootWebLink.WebId, spSite)) { yield return(navLink); } spSite.Dispose(); } else { yield return(new SPNavLink { Title = "No workspace", Url = "PlaceHolder" }); } }
private IEnumerable <NavLink> GetFavoriteWorkspaces(List <SPNavLink> allWorkspaces) { yield return(new NavLink { Title = "Favorite Workspaces", Url = "Header" }); DataTable dataTable = null; using (var spSite = new SPSite(SiteId, GetUserToken())) { using (SPWeb spWeb = spSite.OpenWeb(WebId)) { try { var queryExecutor = new QueryExecutor(spWeb); dataTable = queryExecutor.ExecuteEpmLiveQuery(F_QUERY, new Dictionary <string, object> { { "@SiteId", SiteId }, { "@UserId", spWeb.CurrentUser.ID } }); } catch { } } } var wsFound = false; if (dataTable != null && dataTable.Rows.Count > 0) { foreach (DataRow row in dataTable.Rows) { string webId = S(row["WebId"]); SPNavLink navLink = allWorkspaces.FirstOrDefault(w => (w.WebId ?? string.Empty).Equals(webId)); if (navLink == null) { continue; } wsFound = true; yield return(new SPNavLink { Id = S(row["LinkId"]), Title = S(row["Title"]), Url = S(row["Url"]), CssClass = "epm-nav-sortable " + S(row["CssClass"]), SiteId = S(row["SiteId"]), WebId = webId, ItemId = navLink.ItemId }); } } if (!wsFound) { yield return(new NavLink { Title = "No favorite workspaces", Url = "PlaceHolder" }); } }