// 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);
        }
Ejemplo n.º 2
0
        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);
            }
        }
Ejemplo n.º 3
0
        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"
                });
            }
        }
Ejemplo n.º 4
0
        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"
                });
            }
        }