public void Setup() { _context = ShimsContext.Create(); _createNewAjaxDataHost = new CreateNewAjaxDataHost(); _privateObject = new PrivateObject(_createNewAjaxDataHost); _privatePageObject = new PrivateObject(_createNewAjaxDataHost, new PrivateType(typeof(Page))); }
private void GetListLibLinks(List <NavLink> links) { var lists = new Dictionary <int, string[]>(); var libraries = new Dictionary <int, string[]>(); string appStoreLink = string.Empty; var tasks = new List <Task>(); Task t1 = Task.Factory.StartNew(() => { using (var spSite = new SPSite(SiteId, GetUserToken())) { using (SPWeb spWeb = spSite.OpenWeb(WebId)) { if (spWeb.DoesUserHavePermissions(SPBasePermissions.ManageWeb)) { appStoreLink = string.Format( "<span class='epm-app-btn' data-url='{0}'><span class='fui-plus'></span></span>", string.Format("{0}/_layouts/15/addanapp.aspx", RelativeUrl)); } try { lists = CreateNewAjaxDataHost.GetCreatableLists(spWeb); } catch { } } } }); tasks.Add(t1); Task t2 = Task.Factory.StartNew(() => { using (var spSite = new SPSite(SiteId, GetUserToken())) { using (SPWeb spWeb = spSite.OpenWeb(WebId)) { try { libraries = CreateNewAjaxDataHost.GetCreatableLibraries(spWeb); foreach (var library in libraries) { string[] libInfo = library.Value; if (!libInfo[1].ToLower().Trim().Equals("site pages")) { continue; } library.Value[4] = libInfo[4].Replace("SitePages/Forms/Upload.aspx?source=", "_layouts/15/createwebpage.aspx"); break; } } catch { } } } }); tasks.Add(t2); try { Task.WaitAll(tasks.ToArray()); } catch (AggregateException exception) { exception.Handle(e => { throw e; }); } links.Add(new NavLink { Title = string.Format("List Apps{0}", appStoreLink), Url = "Header" }); if (lists.Count > 0) { links.AddRange(lists.Select(list => list.Value).Select(l => new NavLink { Title = l[1], Url = GetUrl(l), ObjectId = l[5] })); } else { links.Add(new NavLink { Title = "No list apps", Url = "PlaceHolder" }); } links.Add(new NavLink { Title = string.Format("Library Apps{0}", appStoreLink), Url = "Header" }); if (libraries.Count > 0) { links.AddRange(libraries.Select(lib => lib.Value).Select(l => new NavLink { Title = l[1], Url = GetUrl(l), ObjectId = l[5] })); } else { links.Add(new NavLink { Title = "No library apps", Url = "PlaceHolder" }); } }