public void AddRequest(SiteRequestInformation siteRequest, ClientContext ctx) { Web _web = ctx.Web; List _list = _web.Lists.GetByTitle(Lists.SiteRepositoryTitle); ListItemCreationInformation _listItemCreation = new ListItemCreationInformation(); ListItem _record = _list.AddItem(_listItemCreation); _record[SiteRequestFields.Title] = siteRequest.Title; _record[SiteRequestFields.Description] = siteRequest.Description; _record[SiteRequestFields.Template] = siteRequest.Template; _record[SiteRequestFields.State] = siteRequest.RequestStatus; _record[SiteRequestFields.Url] = siteRequest.Url; _record[SiteRequestFields.TimeZone] = siteRequest.TimeZoneId; FieldUserValue _siteOwner = FieldUserValue.FromUser(siteRequest.SiteOwner.Email); _record[SiteRequestFields.Owner] = _siteOwner; _record.Update(); ctx.ExecuteQuery(); }
protected void btnCreate_Click(object sender, EventArgs e) { var spContext = SharePointContextProvider.Current.GetSharePointContext(Context); string newWebUrl = string.Empty; using (ClientContext ctx = spContext.CreateUserClientContextForSPHost()) { SharePointUser currentUser; ctx.Load(ctx.Web.CurrentUser); ctx.ExecuteQuery(); var user = ctx.Web.CurrentUser; currentUser = new SharePointUser() { Email = user.Email, Login = user.LoginName, Name = user.Title }; var siteRequestInfo = new SiteRequestInformation() { Title = this.txtTitle.Text, Description = this.txtDescription.Text, EnumStatus = SiteRequestStatus.New, Template = "STS#0", SiteOwner = currentUser, }; siteRequestInfo.Url = string.Format(@"{0}{1}", this.lblBasePath.Text, siteRequestInfo.Title); LabHelper _helper = new LabHelper(); _helper.AddRequest(siteRequestInfo, ctx); } Response.Redirect(Page.Request["SPHostUrl"]); }