public async Task NewPersonalSiteTest() { DbContextOptionsBuilder <SharePointContext> optionsBuilder = new DbContextOptionsBuilder <SharePointContext>(); SharePointContext context = new SharePointContext(optionsBuilder.Options); var builder = new ConfigurationBuilder(); builder.AddUserSecrets <Startup>(); IConfiguration config = builder.Build(); SharePointController controller = new SharePointController(config, context); SharePointParam item = new SharePointParam() { SiteCollectionURL = personalCollectionURL_, URL = personalSite_, Title = "Test Personal 1", Description = "Test Personal Site Description", Template = template_ }; // public async Task<List<SharePointItem>> PersonalSites(string url) IActionResult result = await controller.NewSite(item); Assert.IsNotNull(result); StatusCodeResult ok = result as StatusCodeResult; Assert.IsNotNull(ok); Assert.AreEqual(StatusCodes.Status201Created, ok.StatusCode); }
public async Task <IActionResult> NewSite([FromBody] SharePointParam param) { try{ // Starting with ClientContext, the constructor requires a URL to the // server running SharePoint. //string teamURL = @"https://dddevops.sharepoint.com"; WebCreationInformation creation = new WebCreationInformation(); //context.Credentials = new NetworkCredential("khteh", "", "dddevops.onmicrosoft.com"); creation.Url = param.URL; creation.Title = param.Title; creation.Description = param.Description; creation.UseSamePermissionsAsParentSite = true; creation.WebTemplate = param.Template;//"STS#0"; creation.Language = 1033; Web newWeb = cc.Web.Webs.Add(creation); // Retrieve the new web information. cc.Load(newWeb, w => w.Id); //context.Load(newWeb); await cc.ExecuteQueryAsync(); return(StatusCode(newWeb.Id != Guid.Empty ? StatusCodes.Status201Created : StatusCodes.Status404NotFound)); } catch (Exception ex) { return(StatusCode(StatusCodes.Status500InternalServerError, ex)); } }
public async Task <IActionResult> Sites(string url) { List <SharePointParam> results = new List <SharePointParam>(); try { // Starting with ClientContext, the constructor requires a URL to the // server running SharePoint. //string url = @"https://dddevops.sharepoint.com/"; using (ClientContext context = new ClientContext(url)) { context.Credentials = new SharePointOnlineCredentials(_username, _password); // Root Web Site Web spRootWebSite = context.Web; // Collecction of Sites under the Root Web Site WebCollection spSites = spRootWebSite.Webs; // Loading operations context.Load(spRootWebSite); context.Load(spSites); await context.ExecuteQueryAsync(); List <Task> tasks = new List <Task>(); // We need to iterate through the $spoSites Object in order to get individual sites information foreach (Web site in spSites) { context.Load(site); tasks.Add(context.ExecuteQueryAsync()); } Task.WaitAll(tasks.ToArray()); foreach (Web site in spSites) { SharePointParam item = new SharePointParam() { Title = site.Title, URL = site.Url }; results.Add(item); } } } catch (Exception ex) { return(StatusCode(StatusCodes.Status500InternalServerError, ex)); } return(new OkObjectResult(results)); }
public async Task <IActionResult> Sites() { List <SharePointParam> results = new List <SharePointParam>(); try { // Root Web Site Web spRootWebSite = cc.Web; // Collecction of Sites under the Root Web Site WebCollection spSites = spRootWebSite.Webs; // Loading operations cc.Load(spRootWebSite); cc.Load(spSites); await cc.ExecuteQueryAsync(); List <Task> tasks = new List <Task>(); // We need to iterate through the $spoSites Object in order to get individual sites information foreach (Web site in spSites) { Console.WriteLine("Writing sites " + site); cc.Load(site); tasks.Add(cc.ExecuteQueryAsync()); } Task.WaitAll(tasks.ToArray()); foreach (Web site in spSites) { SharePointParam item = new SharePointParam() { Title = site.Title, URL = site.Url }; results.Add(item); } } catch (Exception ex) { return(StatusCode(StatusCodes.Status500InternalServerError, ex)); } return(new OkObjectResult(results)); }