コード例 #1
0
ファイル: SiteProvisioningJob.cs プロジェクト: coupalm/PnP
 public SiteProvisioningJob()
 {
     this._configFactory = ConfigurationFactory.GetInstance();
     this._appManager = _configFactory.GetAppSetingsManager();
     this._settings = _appManager.GetAppSettings();
     this._requestFactory = SiteRequestFactory.GetInstance();
     this._siteTemplateFactory = SiteTemplateFactory.GetInstance();
 }
コード例 #2
0
 public SiteProvisioningJob()
 {
     this._configFactory       = ConfigurationFactory.GetInstance();
     this._appManager          = _configFactory.GetAppSetingsManager();
     this._settings            = _appManager.GetAppSettings();
     this._requestFactory      = SiteRequestFactory.GetInstance();
     this._siteTemplateFactory = SiteTemplateFactory.GetInstance();
 }
コード例 #3
0
 public HttpResponseMessage GetAppSettings()
 {
     try
     {
         IAppSettingsFactory _factory = AppSettingsFactory.GetInstance();
         IAppSettingsManager _manager = _factory.GetManager();
         var _appSettings             = _manager.GetAppSettings();
         return(Request.CreateResponse(HttpStatusCode.OK, _appSettings));
     }
     catch (Exception _ex)
     {
         var _message = string.Format("There was an error processing the request. {0}", _ex.Message);
         Log.Error("AppSettingsController.GetAppSettings", "There was an error processing the request. Exception: {0}", _ex);
         HttpResponseMessage _response = Request.CreateResponse(HttpStatusCode.InternalServerError, _message);
         throw new HttpResponseException(_response);
     }
 }
コード例 #4
0
        /// <summary>
        /// Internal Member to save a new site request
        /// </summary>
        /// <param name="client"></param>
        /// <param name="collectionLink"></param>
        /// <param name="info"></param>
        /// <returns></returns>
        private Document SaveNewRequest(DocumentClient client, string collectionLink, SiteInformation info)
        {
            //If Settings are set to autoapprove then automatically approve the requests
            if (_manager.GetAppSettings().AutoApprove)
            {
                info.RequestStatus = SiteRequestStatus.Approved.ToString();
                info.ApprovedDate  = DateTime.Now;
            }
            else
            {
                info.RequestStatus = SiteRequestStatus.New.ToString();
            }
            info.SubmitDate = DateTime.Now;

            var      saveDocumentTask = Task.FromResult(client.CreateDocumentAsync(collectionLink, info));
            Document document         = null;

            if (!saveDocumentTask.IsFaulted)
            {
                document = saveDocumentTask.Result.Result;
            }

            return(document);
        }
コード例 #5
0
        public void CreateNewSiteRequest(SiteInformation siteRequest)
        {
            Log.Info("SPSiteRequestManager.CreateNewSiteRequest", "Entering CreateNewSiteRequest requested url {0}", siteRequest.Url);
            UsingContext(ctx =>
            {
                Stopwatch _timespan = Stopwatch.StartNew();
                var _web            = ctx.Web;
                ctx.Load(_web);

                if (!_web.ListExists(SiteRequestList.TITLE))
                {
                    var _message = String.Format("The List {0} does not exist in Site {1}",
                                                 SiteRequestList.TITLE,
                                                 _web.Url);
                    Log.Fatal("SPSiteRequestManager.CreateNewSiteRequest", _message);
                    throw new DataStoreException(_message);
                }

                List list = _web.Lists.GetByTitle(SiteRequestList.TITLE);
                ListItemCreationInformation _listItemCreation = new ListItemCreationInformation();
                ListItem _record = list.AddItem(_listItemCreation);
                _record[SiteRequestFields.TITLE]                = siteRequest.Title;
                _record[SiteRequestFields.DESCRIPTION_NAME]     = siteRequest.Description;
                _record[SiteRequestFields.TEMPLATE_NAME]        = siteRequest.Template;
                _record[SiteRequestFields.URL_NAME]             = siteRequest.Url;
                _record[SiteRequestFields.LCID_NAME]            = siteRequest.Lcid;
                _record[SiteRequestFields.TIMEZONE_NAME]        = siteRequest.TimeZoneId;
                _record[SiteRequestFields.POLICY_NAME]          = siteRequest.SitePolicy;
                _record[SiteRequestFields.EXTERNALSHARING_NAME] = siteRequest.EnableExternalSharing;
                _record[SiteRequestFields.ONPREM_REQUEST_NAME]  = siteRequest.SharePointOnPremises;
                _record[SiteRequestFields.BC_NAME]              = siteRequest.BusinessCase;
                _record[SiteRequestFields.PROPS_NAME]           = siteRequest.SiteMetadataJson;
                //If Settings are set to autoapprove then automatically approve the requests
                if (_manager.GetAppSettings().AutoApprove)
                {
                    _record[SiteRequestFields.PROVISIONING_STATUS_NAME] = SiteRequestStatus.Approved.ToString();
                    _record[SiteRequestFields.APPROVEDDATE_NAME]        = DateTime.Now;
                }
                else
                {
                    _record[SiteRequestFields.PROVISIONING_STATUS_NAME] = SiteRequestStatus.New.ToString();
                }

                FieldUserValue _siteOwner             = FieldUserValue.FromUser(siteRequest.SiteOwner.Name);
                _record[SiteRequestFields.OWNER_NAME] = _siteOwner;

                //Additional Admins
                if (siteRequest.AdditionalAdministrators != null)
                {
                    if (siteRequest.AdditionalAdministrators.Count > 0)
                    {
                        FieldUserValue[] _additionalAdmins = new FieldUserValue[siteRequest.AdditionalAdministrators.Count];
                        int _index = 0;
                        foreach (SiteUser _user in siteRequest.AdditionalAdministrators)
                        {
                            FieldUserValue _adminFieldUser = FieldUserValue.FromUser(_user.Name);
                            _additionalAdmins[_index]      = _adminFieldUser;
                            _index++;
                        }
                        _record[SiteRequestFields.ADD_ADMINS_NAME] = _additionalAdmins;
                    }
                }
                _record.Update();
                ctx.ExecuteQuery();
                _timespan.Stop();

                Log.TraceApi("SharePoint", "SPSiteRequestManager.CreateNewSiteRequest", _timespan.Elapsed);
                Log.Info("SPSiteRequestManager.CreateNewSiteRequest", PCResources.SiteRequestNew_Successful, siteRequest.Url);
            }
                         );
        }
コード例 #6
0
        public void CreateNewSiteRequest(SiteRequestInformation siteRequest)
        {
            UsingContext(ctx =>
            {
                var web = ctx.Web;

                if (!web.ListExists(SiteRequestList.TITLE))
                {
                    this.HandleSiteRequestList(ctx);
                }

                List list = web.Lists.GetByTitle(SiteRequestList.TITLE);
                ListItemCreationInformation _listItemCreation = new ListItemCreationInformation();
                ListItem _record = list.AddItem(_listItemCreation);
                _record[SiteRequestFields.TITLE]                = siteRequest.Title;
                _record[SiteRequestFields.DESCRIPTION_NAME]     = siteRequest.Description;
                _record[SiteRequestFields.TEMPLATE_NAME]        = siteRequest.Template;
                _record[SiteRequestFields.URL_NAME]             = siteRequest.Url;
                _record[SiteRequestFields.LCID_NAME]            = siteRequest.Lcid;
                _record[SiteRequestFields.TIMEZONE_NAME]        = siteRequest.TimeZoneId;
                _record[SiteRequestFields.POLICY_NAME]          = siteRequest.SitePolicy;
                _record[SiteRequestFields.EXTERNALSHARING_NAME] = siteRequest.EnableExternalSharing;
                _record[SiteRequestFields.ONPREM_REQUEST_NAME]  = siteRequest.SharePointOnPremises;
                _record[SiteRequestFields.BC_NAME]              = siteRequest.BusinessCase;
                _record[SiteRequestFields.PROPS_NAME]           = siteRequest.PropertiesJSON;
                //If Settings are set to autoapprove then automatically approve the requests
                if (_manager.GetAppSettings().AutoApprove)
                {
                    _record[SiteRequestFields.PROVISIONING_STATUS_NAME] = SiteRequestStatus.Approved.ToString();
                    _record[SiteRequestFields.APPROVEDDATE_NAME]        = DateTime.Now;
                }
                else
                {
                    _record[SiteRequestFields.PROVISIONING_STATUS_NAME] = SiteRequestStatus.New.ToString();
                }

                FieldUserValue _siteOwner             = FieldUserValue.FromUser(siteRequest.SiteOwner.Name);
                _record[SiteRequestFields.OWNER_NAME] = _siteOwner;

                //Additional Admins
                if (siteRequest.AdditionalAdministrators != null)
                {
                    if (siteRequest.AdditionalAdministrators.Count > 0)
                    {
                        FieldUserValue[] _additionalAdmins = new FieldUserValue[siteRequest.AdditionalAdministrators.Count];
                        int _index = 0;
                        foreach (SiteUser _user in siteRequest.AdditionalAdministrators)
                        {
                            FieldUserValue _adminFieldUser = FieldUserValue.FromUser(_user.Name);
                            _additionalAdmins[_index]      = _adminFieldUser;
                            _index++;
                        }
                        _record[SiteRequestFields.ADD_ADMINS_NAME] = _additionalAdmins;
                    }
                }

                _record.Update();
                ctx.ExecuteQuery();
                Log.Info("Provisioning.Common.Data.Impl.UpdateRequestStatus", PCResources.SiteRequestNew_Successfull, siteRequest.Url);
            }
                         );
        }