Ejemplo n.º 1
0
        private static void CreateSiteCollection(ActionRequest actionRequest)
        {
            string siteCollectionUrl;

            var tenantAdminUri = new Uri($"https://{actionRequest.TenantName}-admin.sharepoint.com");
            var realm          = TokenHelper.GetRealmFromTargetUrl(tenantAdminUri);
            var token          = TokenHelper.GetAppOnlyAccessToken(TokenHelper.SharePointPrincipal, tenantAdminUri.Authority, realm).AccessToken;

            using (var ctx = TokenHelper.GetClientContextWithAccessToken(tenantAdminUri.ToString(), token))
            {
                var manager = new SiteCollectionManager(actionRequest, ctx);
                siteCollectionUrl = manager.CreateSiteCollection();
            }

            var newWebUri = new Uri(siteCollectionUrl);

            token = TokenHelper.GetAppOnlyAccessToken(TokenHelper.SharePointPrincipal, newWebUri.Authority, TokenHelper.GetRealmFromTargetUrl(newWebUri)).AccessToken;
            using (var ctx = TokenHelper.GetClientContextWithAccessToken(siteCollectionUrl, token))
            {
                var pwd      = ConfigurationManager.AppSettings["SharePointOnlineCredentials.Password"];
                var username = ConfigurationManager.AppSettings["SharePointOnlineCredentials.Username"];

                using (var secureString = new SecureString())
                {
                    foreach (var chr in pwd.ToCharArray())
                    {
                        secureString.AppendChar(chr);
                    }
                    secureString.MakeReadOnly();

                    ctx.Credentials    = new SharePointOnlineCredentials(username, secureString);
                    ctx.RequestTimeout = Timeout.Infinite;

                    var manager = new SiteCollectionManager(actionRequest, ctx);
                    manager.ApplyCustomTemplateToSite();
                }
            }
        }
Ejemplo n.º 2
0
 public SiteCollectionsDataController(SiteCollectionManager siteCollectionManager)
 {
     _siteCollectionManager = siteCollectionManager;
 }
Ejemplo n.º 3
0
 public SiteCollectionsEdit(SiteManager siteManager, ClientManager clientManager, SiteCollectionManager siteCollectionManager)
 {
     _siteManager           = siteManager;
     _clientManager         = clientManager;
     _siteCollectionManager = siteCollectionManager;
 }
Ejemplo n.º 4
0
 public SiteCollectionsAddSitesForm(SiteCollectionManager siteCollectionManager)
 {
     _siteCollectionManager = siteCollectionManager;
 }
Ejemplo n.º 5
0
 public SiteCollectionsEditForm(SiteCollectionManager siteCollectionManager)
 {
     _siteCollectionsManager = siteCollectionManager;
 }
Ejemplo n.º 6
0
        public static void ProcessQueueMessage([QueueTrigger("siteprovisioningqueue")] ActionRequest actionRequest, TextWriter log)
        {
            try
            {
                //   Updatehelper.UpdateDashboard("Request receiveded.");

                Log.AddlogToTable(actionRequest, State.Provisioning);

                if (actionRequest.IsSiteCollection)
                {
                    CreateSiteCollection(actionRequest);
                    Updatehelper.UpdateProgressView("Provisioning", actionRequest);
                }
                else
                {
                    CreateSite(actionRequest);
                    Updatehelper.UpdateProgressView("Create site", actionRequest);
                }

                Log.AddlogToTable(actionRequest, State.Created);
                Console.WriteLine(actionRequest.Url + "/" + actionRequest.Name, actionRequest.Name, actionRequest.User);
                //var mail = new NotificationMail();
                //mail.SendMailNotification(actionRequest.Url + "/" + actionRequest.Name, actionRequest.Name, actionRequest.User);
                Updatehelper.UpdateProgressView("Done", actionRequest);
            }
            catch (Exception ex)
            {
                Log.AddlogToTable(actionRequest, State.Failed);
                Updatehelper.UpdateProgressView("Failed", actionRequest);

                Console.WriteLine(ex.ToString(), "Failed creating site: " + actionRequest.Url + "/" + actionRequest.Name,
                                  actionRequest.User);

                //var mail = new NotificationMail();
                //mail.SendMailNotification(ex.ToString(), "Failed creating site: " + actionRequest.Url + "/" + actionRequest.Name, actionRequest.User);

                if (actionRequest.IsSiteCollection)
                {
                    var tenantAdminUri = new Uri($"https://{actionRequest.TenantName}-admin.sharepoint.com");
                    var realm          = TokenHelper.GetRealmFromTargetUrl(tenantAdminUri);
                    var token          =
                        TokenHelper.GetAppOnlyAccessToken(TokenHelper.SharePointPrincipal, tenantAdminUri.Authority,
                                                          realm).AccessToken;
                    using (var ctx = TokenHelper.GetClientContextWithAccessToken(tenantAdminUri.ToString(), token))
                    {
                        var manager = new SiteCollectionManager(actionRequest, ctx);
                        manager.TryDeleteSiteCollection();
                    }
                }
                else
                {
                    var tenantAdminUri = new Uri(actionRequest.Url);
                    var realm          = TokenHelper.GetRealmFromTargetUrl(tenantAdminUri);
                    var token          =
                        TokenHelper.GetAppOnlyAccessToken(TokenHelper.SharePointPrincipal, tenantAdminUri.Authority,
                                                          realm).AccessToken;
                    using (var ctx = TokenHelper.GetClientContextWithAccessToken(tenantAdminUri.ToString(), token))
                    {
                        var manager = new SiteManager(actionRequest, ctx);
                        manager.TryDeleteSite();
                    }
                }
            }
        }