コード例 #1
0
        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);
        }
コード例 #2
0
        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));
            }
        }
コード例 #3
0
        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));
        }
コード例 #4
0
        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));
        }