Example #1
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();
                    }
                }
            }
        }
Example #2
0
        private static void CreateSite(ActionRequest actionRequest)
        {
            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.CreateSite();
            }

             tenantAdminUri = new Uri(actionRequest.Url + "/" + actionRequest.Name);
             realm = TokenHelper.GetRealmFromTargetUrl(tenantAdminUri);
             token = TokenHelper.GetAppOnlyAccessToken(TokenHelper.SharePointPrincipal, tenantAdminUri.Authority, realm).AccessToken;
            using (var ctx = TokenHelper.GetClientContextWithAccessToken(tenantAdminUri.ToString(), token))
            {
                var manager = new SiteManager(actionRequest, ctx);
                manager.ApplyCustomTemplateToSite();
            }
        }