internal static void LocalizeView(this Microsoft.SharePoint.Client.View view, Web web, string token, TokenParser parser, PnPMonitoredScope scope) { if (CanUseAcceptLanguageHeaderForLocalization(web)) { var context = web.Context; //preserve Default Language to set last since otherwise Entries in QuickLaunch can show wrong language web.EnsureProperties(w => w.Language, w => w.IsMultilingual, w => w.SupportedUILanguageIds); if (web.IsMultilingual) { //just update if web is multilingual var culture = new CultureInfo((int)web.Language); var resourceValues = parser.GetResourceTokenResourceValues(token); var defaultLanguageResource = resourceValues.FirstOrDefault(r => r.Item1.Equals(culture.Name, StringComparison.InvariantCultureIgnoreCase)); if (defaultLanguageResource != null) { foreach (var resourceValue in resourceValues.Where(r => !r.Item1.Equals(culture.Name, StringComparison.InvariantCultureIgnoreCase))) { var translationculture = new CultureInfo(resourceValue.Item1); if (web.SupportedUILanguageIds.Contains(translationculture.LCID)) { // Save property with correct locale on the request to make it stick // http://sadomovalex.blogspot.no/2015/09/localize-web-part-titles-via-client.html context.PendingRequest.RequestExecutor.WebRequest.Headers["Accept-Language"] = resourceValue.Item1; view.Title = resourceValue.Item2; view.Update(); context.ExecuteQueryRetry(); } } //Set for default Language of Web context.PendingRequest.RequestExecutor.WebRequest.Headers["Accept-Language"] = defaultLanguageResource.Item1; view.Title = defaultLanguageResource.Item2; view.Update(); context.ExecuteQueryRetry(); } else { //skip since default language of web is not contained in resource file scope.LogWarning(CoreResources.Provisioning_Extensions_ViewLocalization_DefaultLngMissing_Skip); } } else { //skip since web is not multilingual scope.LogWarning(CoreResources.Provisioning_Extensions_ViewLocalization_NoMUI_Skip); } } else { // warning scope.LogWarning(CoreResources.Provisioning_Extensions_ViewLocalization_Skip); } }
void ProvisionSample2(Web web) { //Delete list if it already exists ListCollection lists = web.Lists; IEnumerable <List> results = web.Context.LoadQuery <List>(lists.Where(list => list.Title == "CSR-Substring-long-text")); web.Context.ExecuteQuery(); List existingList = results.FirstOrDefault(); if (existingList != null) { existingList.DeleteObject(); web.Context.ExecuteQuery(); } //Create list ListCreationInformation creationInfo = new ListCreationInformation(); creationInfo.Title = "CSR-Substring-long-text"; creationInfo.TemplateType = (int)ListTemplateType.Announcements; List newlist = web.Lists.Add(creationInfo); newlist.Update(); web.Context.Load(newlist); web.Context.ExecuteQuery(); //Add items Microsoft.SharePoint.Client.ListItem item1 = newlist.AddItem(new ListItemCreationInformation()); item1["Title"] = "Announcement 1"; item1["Body"] = "Aaaaaa Bbbbbb Cccccc Dccccc Eeeeee Ffffff Gggggg Hhhhhh Iiiiii Jjjjjj Kkkkkk Llllll Mmmmmm Nnnnnn Oooooo Pppppp Qqqqqq Rrrrrr Ssssss Tttttt Uuuuuu Vvvvvv Wwwwww Xxxxx Yyyyyy Zzzzzz"; item1.Update(); Microsoft.SharePoint.Client.ListItem item2 = newlist.AddItem(new ListItemCreationInformation()); item2["Title"] = "Announcement 2"; item2["Body"] = "Aaaaaa Bbbbbb Cccccc Dccccc Eeeeee Ffffff Gggggg Hhhhhh Iiiiii Jjjjjj Kkkkkk Llllll Mmmmmm Nnnnnn Oooooo Pppppp Qqqqqq Rrrrrr Ssssss Tttttt Uuuuuu Vvvvvv Wwwwww Xxxxx Yyyyyy Zzzzzz"; item2.Update(); Microsoft.SharePoint.Client.ListItem item3 = newlist.AddItem(new ListItemCreationInformation()); item3["Title"] = "Announcement 3"; item3["Body"] = "Aaaaaa Bbbbbb Cccccc Dccccc Eeeeee Ffffff Gggggg Hhhhhh Iiiiii Jjjjjj Kkkkkk Llllll Mmmmmm Nnnnnn Oooooo Pppppp Qqqqqq Rrrrrr Ssssss Tttttt Uuuuuu Vvvvvv Wwwwww Xxxxx Yyyyyy Zzzzzz"; item3.Update(); //Create sample view ViewCreationInformation sampleViewCreateInfo = new ViewCreationInformation(); sampleViewCreateInfo.Title = "CSR Sample View"; sampleViewCreateInfo.ViewFields = new string[] { "Title", "Body" }; sampleViewCreateInfo.SetAsDefaultView = true; Microsoft.SharePoint.Client.View sampleView = newlist.Views.Add(sampleViewCreateInfo); sampleView.Update(); web.Context.Load(newlist, l => l.DefaultViewUrl); web.Context.ExecuteQuery(); //Register JS files via JSLink properties RegisterJStoWebPart(web, newlist.DefaultViewUrl, "~sitecollection/Style Library/JSLink-Samples/SubstringLongText.js"); }
void ProvisionSample7(Web web) { //Delete list if it already exists ListCollection lists = web.Lists; web.Context.Load(web.CurrentUser, i => i.Id); IEnumerable <List> results = web.Context.LoadQuery <List>(lists.Where(list => list.Title == "CSR-Read-only-SP-Controls")); web.Context.ExecuteQuery(); List existingList = results.FirstOrDefault(); if (existingList != null) { existingList.DeleteObject(); web.Context.ExecuteQuery(); } //Create list ListCreationInformation creationInfo = new ListCreationInformation(); creationInfo.Title = "CSR-Read-only-SP-Controls"; creationInfo.TemplateType = (int)ListTemplateType.Tasks; List newlist = web.Lists.Add(creationInfo); newlist.Update(); web.Context.Load(newlist); web.Context.ExecuteQuery(); //Add items Microsoft.SharePoint.Client.ListItem item1 = newlist.AddItem(new ListItemCreationInformation()); item1["Title"] = "Task 1"; item1["StartDate"] = "2014-1-1"; item1["DueDate"] = "2014-2-1"; item1["AssignedTo"] = new FieldLookupValue { LookupId = web.CurrentUser.Id }; item1.Update(); //Create sample view ViewCreationInformation sampleViewCreateInfo = new ViewCreationInformation(); sampleViewCreateInfo.Title = "CSR Sample View"; sampleViewCreateInfo.ViewFields = new string[] { "DocIcon", "LinkTitle", "DueDate", "AssignedTo" }; sampleViewCreateInfo.SetAsDefaultView = true; Microsoft.SharePoint.Client.View sampleView = newlist.Views.Add(sampleViewCreateInfo); sampleView.Update(); web.Context.Load(newlist, l => l.DefaultEditFormUrl); web.Context.ExecuteQuery(); //Register JS files via JSLink properties RegisterJStoWebPart(web, newlist.DefaultEditFormUrl, "~sitecollection/Style Library/JSLink-Samples/ReadOnlySPControls.js"); }
void ProvisionSample6(Web web) { //Delete list if it already exists ListCollection lists = web.Lists; IEnumerable <List> results = web.Context.LoadQuery <List>(lists.Where(list => list.Title == "CSR-Email-Regex-Validator")); web.Context.ExecuteQuery(); List existingList = results.FirstOrDefault(); if (existingList != null) { existingList.DeleteObject(); web.Context.ExecuteQuery(); } //Create list ListCreationInformation creationInfo = new ListCreationInformation(); creationInfo.Title = "CSR-Email-Regex-Validator"; creationInfo.TemplateType = (int)ListTemplateType.GenericList; List newlist = web.Lists.Add(creationInfo); newlist.Update(); web.Context.Load(newlist); web.Context.ExecuteQuery(); //Add field newlist.Fields.AddFieldAsXml("<Field Type=\"" + FieldType.Text + "\" Name=\"Email\" DisplayName=\"Email\" ID=\"" + Guid.NewGuid() + "\" Group=\"CSR Samples\" />", false, AddFieldOptions.DefaultValue); newlist.Update(); web.Context.ExecuteQuery(); //Add items Microsoft.SharePoint.Client.ListItem item1 = newlist.AddItem(new ListItemCreationInformation()); item1["Title"] = "Email address"; item1["Email"] = "*****@*****.**"; item1.Update(); //Create sample view ViewCreationInformation sampleViewCreateInfo = new ViewCreationInformation(); sampleViewCreateInfo.Title = "CSR Sample View"; sampleViewCreateInfo.ViewFields = new string[] { "LinkTitle", "Email" }; sampleViewCreateInfo.SetAsDefaultView = true; Microsoft.SharePoint.Client.View sampleView = newlist.Views.Add(sampleViewCreateInfo); sampleView.Update(); web.Context.Load(newlist, l => l.DefaultNewFormUrl, l => l.DefaultEditFormUrl); web.Context.ExecuteQuery(); //Register JS files via JSLink properties RegisterJStoWebPart(web, newlist.DefaultNewFormUrl, "~sitecollection/Style Library/JSLink-Samples/RegexValidator.js"); RegisterJStoWebPart(web, newlist.DefaultEditFormUrl, "~sitecollection/Style Library/JSLink-Samples/RegexValidator.js"); }
public bool DeleteView(string ListName, string ViewName) { bool isTaskDone = false; try { Microsoft.SharePoint.Client.View deleteView = ViewAddEdit.isCtx.Web.Lists.GetByTitle(ListName).Views.GetByTitle(ViewName); deleteView.Update(); ViewAddEdit.isCtx.ExecuteQuery(); isTaskDone = true; } catch (Exception ex) { Console.WriteLine("Ex :" + ex); } return(isTaskDone); }
internal static void LocalizeView(this Microsoft.SharePoint.Client.View view, Web web, string token, TokenParser parser, PnPMonitoredScope scope) { if (CanUseAcceptLanguageHeaderForLocalization(web)) { var context = web.Context; var resourceValues = parser.GetResourceTokenResourceValues(token); foreach (var resourceValue in resourceValues) { // Save property with correct locale on the request to make it stick // http://sadomovalex.blogspot.no/2015/09/localize-web-part-titles-via-client.html context.PendingRequest.RequestExecutor.WebRequest.Headers["Accept-Language"] = resourceValue.Item1; view.Title = resourceValue.Item2; view.Update(); context.ExecuteQueryRetry(); } } else { // warning scope.LogWarning(CoreResources.Provisioning_Extensions_ViewLocalization_Skip); } }
void ProvisionSample1(Web web) { //Delete list if it already exists ListCollection lists = web.Lists; IEnumerable <List> results = web.Context.LoadQuery <List>(lists.Where(list => list.Title == "CSR-Priority-Color")); web.Context.ExecuteQuery(); List existingList = results.FirstOrDefault(); if (existingList != null) { existingList.DeleteObject(); web.Context.ExecuteQuery(); } //Create list ListCreationInformation creationInfo = new ListCreationInformation(); creationInfo.Title = "CSR-Priority-Color"; creationInfo.TemplateType = (int)ListTemplateType.Tasks; List newlist = web.Lists.Add(creationInfo); newlist.Update(); web.Context.Load(newlist); web.Context.ExecuteQuery(); //Add items Microsoft.SharePoint.Client.ListItem item1 = newlist.AddItem(new ListItemCreationInformation()); item1["Title"] = "Task 1"; item1["StartDate"] = "2014-1-1"; item1["DueDate"] = "2014-2-1"; item1["Priority"] = "(1) High"; item1.Update(); Microsoft.SharePoint.Client.ListItem item2 = newlist.AddItem(new ListItemCreationInformation()); item2["Title"] = "Task 2"; item2["StartDate"] = "2014-1-1"; item2["DueDate"] = "2014-2-1"; item2["Priority"] = "(2) Normal"; item2.Update(); Microsoft.SharePoint.Client.ListItem item3 = newlist.AddItem(new ListItemCreationInformation()); item3["Title"] = "Task 3"; item3["StartDate"] = "2014-1-1"; item3["DueDate"] = "2014-2-1"; item3["Priority"] = "(3) Low"; item3.Update(); //Create sample view ViewCreationInformation sampleViewCreateInfo = new ViewCreationInformation(); sampleViewCreateInfo.Title = "CSR Sample View"; sampleViewCreateInfo.ViewFields = new string[] { "DocIcon", "LinkTitle", "StartDate", "DueDate", "Priority" }; sampleViewCreateInfo.SetAsDefaultView = true; Microsoft.SharePoint.Client.View sampleView = newlist.Views.Add(sampleViewCreateInfo); sampleView.Update(); web.Context.ExecuteQuery(); web.Context.Load(newlist, l => l.DefaultViewUrl); web.Context.ExecuteQuery(); //Register JS files via JSLink properties RegisterJStoWebPart(web, newlist.DefaultViewUrl, "~sitecollection/Style Library/JSLink-Samples/PriorityColor.js"); }
void ProvisionSample9(Web web) { // First list: Cars //Delete list if it already exists ListCollection lists = web.Lists; IEnumerable <List> results = web.Context.LoadQuery <List>(lists.Where(list => list.Title == "CSR-Dependent-Fields-Cars")); web.Context.ExecuteQuery(); List existingList = results.FirstOrDefault(); if (existingList != null) { existingList.DeleteObject(); web.Context.ExecuteQuery(); } //Create list ListCreationInformation creationInfo = new ListCreationInformation(); creationInfo.Title = "CSR-Dependent-Fields-Cars"; creationInfo.TemplateType = (int)ListTemplateType.GenericList; List carslist = web.Lists.Add(creationInfo); carslist.Update(); web.Context.Load(carslist); web.Context.ExecuteQuery(); //Add items Microsoft.SharePoint.Client.ListItem item1 = carslist.AddItem(new ListItemCreationInformation()); item1["Title"] = "BMW X5"; item1.Update(); Microsoft.SharePoint.Client.ListItem item2 = carslist.AddItem(new ListItemCreationInformation()); item2["Title"] = "Chevrolet Trax"; item2.Update(); Microsoft.SharePoint.Client.ListItem item3 = carslist.AddItem(new ListItemCreationInformation()); item3["Title"] = "Ford Kuga"; item3.Update(); Microsoft.SharePoint.Client.ListItem item4 = carslist.AddItem(new ListItemCreationInformation()); item4["Title"] = "Fiat 500L"; item4.Update(); Microsoft.SharePoint.Client.ListItem item5 = carslist.AddItem(new ListItemCreationInformation()); item5["Title"] = "Kia Soul"; item5.Update(); // Second list: Orders //Delete list if it already exists results = web.Context.LoadQuery <List>(lists.Where(list => list.Title == "CSR-Dependent-Fields")); web.Context.ExecuteQuery(); existingList = results.FirstOrDefault(); if (existingList != null) { existingList.DeleteObject(); web.Context.ExecuteQuery(); } //Create list creationInfo = new ListCreationInformation(); creationInfo.Title = "CSR-Dependent-Fields"; creationInfo.TemplateType = (int)ListTemplateType.GenericList; List newlist = web.Lists.Add(creationInfo); newlist.Update(); web.Context.Load(newlist); web.Context.ExecuteQuery(); //Add fields newlist.Fields.AddFieldAsXml("<Field Type=\"" + FieldType.Lookup + "\" Name=\"Car\" DisplayName=\"Car\" ID=\"" + Guid.NewGuid() + "\" Group=\"CSR Samples\" List=\"" + carslist.Id + "\" ShowField=\"Title\" />", false, AddFieldOptions.DefaultValue); newlist.Fields.AddFieldAsXml("<Field Type=\"" + FieldType.Choice + "\" Name=\"Color\" DisplayName=\"Color\" Format=\"" + ChoiceFormatType.RadioButtons + "\" ID=\"" + Guid.NewGuid() + "\" Group=\"CSR Samples\"><Default></Default><CHOICES><CHOICE>Black</CHOICE><CHOICE>White</CHOICE><CHOICE>Green</CHOICE><CHOICE>Blue</CHOICE><CHOICE>Red</CHOICE></CHOICES></Field>", false, AddFieldOptions.DefaultValue); newlist.Update(); web.Context.ExecuteQuery(); //Add items Microsoft.SharePoint.Client.ListItem newItem = newlist.AddItem(new ListItemCreationInformation()); newItem["Title"] = "Sample order"; newItem["Car"] = 1; newItem["Color"] = "Green"; newItem.Update(); //Create sample view ViewCreationInformation sampleViewCreateInfo = new ViewCreationInformation(); sampleViewCreateInfo.Title = "CSR Sample View"; sampleViewCreateInfo.ViewFields = new string[] { "LinkTitle", "Car", "Color" }; sampleViewCreateInfo.SetAsDefaultView = true; Microsoft.SharePoint.Client.View sampleView = newlist.Views.Add(sampleViewCreateInfo); sampleView.Update(); // Load information about default new and edit forms web.Context.Load(newlist, l => l.DefaultEditFormUrl, l => l.DefaultNewFormUrl); web.Context.ExecuteQuery(); //Register JS files via JSLink properties RegisterJStoWebPart(web, newlist.DefaultNewFormUrl, "~sitecollection/Style Library/JSLink-Samples/DependentFields.js"); RegisterJStoWebPart(web, newlist.DefaultEditFormUrl, "~sitecollection/Style Library/JSLink-Samples/DependentFields.js"); }
void ProvisionSample4(Web web) { //Delete list if it already exists ListCollection lists = web.Lists; IEnumerable <List> results = web.Context.LoadQuery <List>(lists.Where(list => list.Title == "CSR-Tasks-Percent-Complete")); web.Context.ExecuteQuery(); List existingList = results.FirstOrDefault(); if (existingList != null) { existingList.DeleteObject(); web.Context.ExecuteQuery(); } //Create list ListCreationInformation creationInfo = new ListCreationInformation(); creationInfo.Title = "CSR-Tasks-Percent-Complete"; creationInfo.TemplateType = (int)ListTemplateType.Tasks; List newlist = web.Lists.Add(creationInfo); newlist.Update(); web.Context.Load(newlist); web.Context.ExecuteQuery(); //Add items Microsoft.SharePoint.Client.ListItem item1 = newlist.AddItem(new ListItemCreationInformation()); item1["Title"] = "Task 1"; item1["StartDate"] = "2014-1-1"; item1["DueDate"] = "2014-2-1"; item1["PercentComplete"] = "0.59"; item1.Update(); Microsoft.SharePoint.Client.ListItem item2 = newlist.AddItem(new ListItemCreationInformation()); item2["Title"] = "Task 2"; item2["StartDate"] = "2014-1-1"; item2["DueDate"] = "2014-2-1"; item2["PercentComplete"] = "0.40"; item2.Update(); Microsoft.SharePoint.Client.ListItem item3 = newlist.AddItem(new ListItemCreationInformation()); item3["Title"] = "Task 3"; item3["StartDate"] = "2014-1-1"; item3["DueDate"] = "2014-2-1"; item3["PercentComplete"] = "1.0"; item3.Update(); Microsoft.SharePoint.Client.ListItem item4 = newlist.AddItem(new ListItemCreationInformation()); item4["Title"] = "Task 4"; item4["StartDate"] = "2014-1-1"; item4["DueDate"] = "2014-2-1"; item4["PercentComplete"] = "0.26"; item4.Update(); Microsoft.SharePoint.Client.ListItem item5 = newlist.AddItem(new ListItemCreationInformation()); item5["Title"] = "Task 5"; item5["StartDate"] = "2014-1-1"; item5["DueDate"] = "2014-2-1"; item5["PercentComplete"] = "0.50"; item5.Update(); //Create sample view ViewCreationInformation sampleViewCreateInfo = new ViewCreationInformation(); sampleViewCreateInfo.Title = "CSR Sample View"; sampleViewCreateInfo.ViewFields = new string[] { "DocIcon", "LinkTitle", "DueDate", "AssignedTo", "PercentComplete" }; sampleViewCreateInfo.SetAsDefaultView = true; Microsoft.SharePoint.Client.View sampleView = newlist.Views.Add(sampleViewCreateInfo); sampleView.Update(); web.Context.Load(newlist, l => l.DefaultViewUrl, l => l.DefaultDisplayFormUrl, l => l.DefaultEditFormUrl, l => l.DefaultNewFormUrl); web.Context.ExecuteQuery(); //Register JS files via JSLink properties RegisterJStoWebPart(web, newlist.DefaultViewUrl, "~sitecollection/Style Library/JSLink-Samples/PercentComplete.js"); RegisterJStoWebPart(web, newlist.DefaultDisplayFormUrl, "~sitecollection/Style Library/JSLink-Samples/PercentComplete.js"); RegisterJStoWebPart(web, newlist.DefaultEditFormUrl, "~sitecollection/Style Library/JSLink-Samples/PercentComplete.js"); RegisterJStoWebPart(web, newlist.DefaultNewFormUrl, "~sitecollection/Style Library/JSLink-Samples/PercentComplete.js"); }
void ProvisionSample3(Web web) { //Delete list if it already exists ListCollection lists = web.Lists; IEnumerable <List> results = web.Context.LoadQuery <List>(lists.Where(list => list.Title == "CSR-Confidential-Documents")); web.Context.ExecuteQuery(); List existingList = results.FirstOrDefault(); if (existingList != null) { existingList.DeleteObject(); web.Context.ExecuteQuery(); } //Create list ListCreationInformation creationInfo = new ListCreationInformation(); creationInfo.Title = "CSR-Confidential-Documents"; creationInfo.TemplateType = (int)ListTemplateType.DocumentLibrary; List newlist = web.Lists.Add(creationInfo); newlist.Update(); web.Context.Load(newlist); web.Context.Load(newlist.Fields); web.Context.ExecuteQuery(); //Add field FieldCollection fields = web.Fields; web.Context.Load(fields, fc => fc.Include(f => f.InternalName)); web.Context.ExecuteQuery(); Field field = fields.FirstOrDefault(f => f.InternalName == "Confidential"); if (field == null) { field = newlist.Fields.AddFieldAsXml("<Field Type=\"YES/NO\" Name=\"Confidential\" DisplayName=\"Confidential\" ID=\"" + Guid.NewGuid() + "\" Group=\"CSR Samples\" />", false, AddFieldOptions.DefaultValue); web.Update(); web.Context.ExecuteQuery(); } newlist.Fields.Add(field); newlist.Update(); web.Context.ExecuteQuery(); //Upload sample docs UploadTempDoc(newlist, "Doc1.doc"); UploadTempDoc(newlist, "Doc2.doc"); UploadTempDoc(newlist, "Doc3.ppt"); UploadTempDoc(newlist, "Doc4.ppt"); UploadTempDoc(newlist, "Doc5.xls"); UploadTempDoc(newlist, "Doc6.xls"); Microsoft.SharePoint.Client.ListItem item1 = newlist.GetItemById(1); item1["Confidential"] = 1; item1.Update(); Microsoft.SharePoint.Client.ListItem item2 = newlist.GetItemById(2); item2["Confidential"] = 1; item2.Update(); Microsoft.SharePoint.Client.ListItem item3 = newlist.GetItemById(3); item3["Confidential"] = 0; item3.Update(); Microsoft.SharePoint.Client.ListItem item4 = newlist.GetItemById(4); item4["Confidential"] = 1; item4.Update(); Microsoft.SharePoint.Client.ListItem item5 = newlist.GetItemById(5); item5["Confidential"] = 0; item5.Update(); Microsoft.SharePoint.Client.ListItem item6 = newlist.GetItemById(6); item6["Confidential"] = 1; item6.Update(); web.Context.ExecuteQuery(); //Create sample view ViewCreationInformation sampleViewCreateInfo = new ViewCreationInformation(); sampleViewCreateInfo.Title = "CSR Sample View"; sampleViewCreateInfo.ViewFields = new string[] { "DocIcon", "LinkFilename", "Modified", "Editor", "Confidential" }; sampleViewCreateInfo.SetAsDefaultView = true; Microsoft.SharePoint.Client.View sampleView = newlist.Views.Add(sampleViewCreateInfo); sampleView.Update(); web.Context.Load(newlist, l => l.DefaultViewUrl); web.Context.ExecuteQuery(); //Register JS files via JSLink properties RegisterJStoWebPart(web, newlist.DefaultViewUrl, "~sitecollection/Style Library/JSLink-Samples/ConfidentialDocuments.js"); }
private static void AddListViewWebpart( ClientContext ctx, PublishingPageWebPart wp, Microsoft.SharePoint.Client.WebParts.WebPartDefinition definition, PropertyValues webPartProperties) { string defaultViewDisplayName = wp.DefaultViewDisplayName; if (!String.IsNullOrEmpty(defaultViewDisplayName)) { string listUrl = webPartProperties.FieldValues["ListUrl"].ToString(); ctx.Load(definition, d => d.Id); // Id of the hidden view which gets automatically created ctx.ExecuteQuery(); Guid viewId = definition.Id; List list = ctx.Web.GetListByUrl(listUrl); Microsoft.SharePoint.Client.View viewCreatedFromWebpart = list.Views.GetById(viewId); ctx.Load(viewCreatedFromWebpart); Microsoft.SharePoint.Client.View viewCreatedFromList = list.Views.GetByTitle(defaultViewDisplayName); ctx.Load( viewCreatedFromList, v => v.ViewFields, v => v.ListViewXml, v => v.ViewQuery, v => v.ViewData, v => v.ViewJoins, v => v.ViewProjectedFields); ctx.ExecuteQuery(); //need to copy the same View definition to the new View added by the Webpart manager viewCreatedFromWebpart.ViewQuery = viewCreatedFromList.ViewQuery; viewCreatedFromWebpart.ViewData = viewCreatedFromList.ViewData; viewCreatedFromWebpart.ViewJoins = viewCreatedFromList.ViewJoins; viewCreatedFromWebpart.ViewProjectedFields = viewCreatedFromList.ViewProjectedFields; viewCreatedFromWebpart.ViewFields.RemoveAll(); foreach (var field in viewCreatedFromList.ViewFields) { viewCreatedFromWebpart.ViewFields.Add(field); } //need to set the JSLink to the new View added by the Webpart manager. //This is because there's no way to change the BaseViewID property of the new View, //and we needed to do that because the custom JSLink was bound to a specific BaseViewID (overrideCtx.BaseViewID = 3;) //The work around to this is to add the JSLink to the specific new View created when you add the xsltViewWebpart to the page //and remove the "overrideCtx.BaseViewID = 3;" from the JSLink file //that way, the JSLink will be executed only for this View, that is only used in the xsltViewWebpart, //so the effect is the same that bind the JSLink to the BaseViewID if (webPartProperties.FieldValues.ContainsKey("JSLink") && webPartProperties.FieldValues["JSLink"] != null) { viewCreatedFromWebpart.JSLink = webPartProperties.FieldValues["JSLink"].ToString(); } viewCreatedFromWebpart.Update(); ctx.ExecuteQuery(); } }
private List CreateList(List sourceList, ClientContext sourceContext, FieldCollection fldcoll, ClientContext destContext, string strDestSite, string lstInternalName, List destinationList, string strListName) { // List listByTitleCS = GetListByTitleCS(destContext, strListName); List listByTitleCS = sourceContext.Web.Lists.GetByTitle(strListName);; Web web = destContext.Web; // if (listByTitleCS == null) // { ListCreationInformation parameters = new ListCreationInformation { Title = lstInternalName, TemplateType = 100 }; List clientObject = web.Lists.Add(parameters); clientObject.Description = lstInternalName + "Description"; destinationList = destContext.Web.Lists.GetByTitle(lstInternalName); destContext.Load <ViewCollection>(destinationList.Views, new Expression <Func <ViewCollection, object> > [0]); destContext.ExecuteQuery(); sourceContext.Load <ViewCollection>(sourceList.Views, new Expression <Func <ViewCollection, object> > [0]); sourceContext.ExecuteQuery(); Microsoft.SharePoint.Client.View view = sourceList.Views[0]; ViewFieldCollection viewFields = view.ViewFields; sourceContext.Load <ViewFieldCollection>(viewFields, new Expression <Func <ViewFieldCollection, object> > [0]); sourceContext.ExecuteQuery(); foreach (Field field in fldcoll) { if (!field.FromBaseType) { object[] objArray1 = new object[] { "<Field DisplayName= '", field.InternalName, "' Name='", field.InternalName, "' Type='", field.FieldTypeKind, "' />" }; clientObject.Fields.AddFieldAsXml(string.Concat(objArray1), true, AddFieldOptions.DefaultValue); } else if ((field.InternalName == "Created") && view.ViewFields.Contains <string>("Created")) { Microsoft.SharePoint.Client.View view2 = destinationList.Views[0]; view2.ViewFields.Add("Created"); view2.Update(); } else if ((field.InternalName == "Author") && view.ViewFields.Contains <string>("Author")) { Microsoft.SharePoint.Client.View view3 = destinationList.Views[0]; view3.ViewFields.Add("Created By"); view3.Update(); } else if ((field.InternalName == "Modified") && view.ViewFields.Contains <string>("Modified")) { Microsoft.SharePoint.Client.View view4 = destinationList.Views[0]; view4.ViewFields.Add("Modified"); view4.Update(); } else if ((field.InternalName == "Editor") && view.ViewFields.Contains <string>("Editor")) { Microsoft.SharePoint.Client.View view5 = destinationList.Views[0]; view5.ViewFields.Add("Modified By"); view5.Update(); } } destinationList = destContext.Web.Lists.GetByTitle(lstInternalName); destContext.Load <FieldCollection>(destinationList.Fields, new Expression <Func <FieldCollection, object> > [0]); destContext.ExecuteQuery(); clientObject.Title = strListName; clientObject.Update(); destContext.Load <List>(clientObject, new Expression <Func <List, object> > [0]); destContext.ExecuteQuery(); return(destinationList); // } destinationList = destContext.Web.Lists.GetByTitle(strListName); destContext.Load <FieldCollection>(destinationList.Fields, new Expression <Func <FieldCollection, object> > [0]); destContext.ExecuteQuery(); // this.DeleteAllListItems(destContext, destinationList); return(destinationList); }