示例#1
0
        public async Task <ActionResult> Index()
        {
            var availableSiteTemplates = await _siteTemplateService.Read();

            var model = new SiteCollectionTemplateCreationModel()
            {
                SiteCreationTemplates = availableSiteTemplates
            };

            model.TimeZoneId          = 1;
            model.Lcid                = 1033;
            model.StorageMaximumLevel = 10;

            return(View(model));
        }
示例#2
0
        public ActionResult CreateSiteCollection(SiteCollectionTemplateCreationModel siteCollectionTemplateCreationModel)
        {
            User spUser    = null;
            Site spSite    = null;
            var  spContext = SharePointContextProvider.Current.GetSharePointContext(HttpContext);

            using (var clientContext = spContext.CreateUserClientContextForSPHost())
            {
                if (clientContext != null)
                {
                    spUser = clientContext.Web.CurrentUser;
                    clientContext.Load(spUser, user => user.Email);
                    clientContext.ExecuteQuery();

                    spSite = clientContext.Site;
                    clientContext.Load(spSite, site => site.Url);
                    clientContext.ExecuteQuery();
                }
            }

            var siteCollectionRequest = new SiteCollectionRequest
            {
                Lcid                = siteCollectionTemplateCreationModel.Lcid,
                ManagedPath         = siteCollectionTemplateCreationModel.ManagedPath,
                ProvisioningType    = siteCollectionTemplateCreationModel.ProvisioningType,
                StorageMaximumLevel = siteCollectionTemplateCreationModel.StorageMaximumLevel,
                TemplateId          = siteCollectionTemplateCreationModel.TemplateId,
                TimeZoneId          = siteCollectionTemplateCreationModel.TimeZoneId,
            };

            var request = new ActionRequest
            {
                Name             = siteCollectionTemplateCreationModel.Name,
                Description      = siteCollectionTemplateCreationModel.Description,
                SiteTemplateName = siteCollectionTemplateCreationModel.SelectedSiteCreationTemplate,
                User             = spUser.Email,
                Url = spSite.Url,
                SiteCollectionRequest = siteCollectionRequest,
                TenantName            = new Uri(spSite.Url).Host.Split('.')[0]
            };

            request.IsSiteCollection = true;
            _createRequestService.PutCreateRequestInQueue(request);
            _logService.SendLog(request, State.Queued);

            return(RedirectToAction("Queue", "Log", new { SPHostUrl = Request.QueryString["SPHostUrl"] }));
        }