/// <summary> /// Process the request /// </summary> public override void ExecuteCmdlet() { base.ExecuteCmdlet(); var context = this.ClientContext; var web = context.Web; context.Load(web); context.ExecuteQueryRetry(); var listDefinition = List.GetList(web); context.Load(listDefinition, wl => wl.Id, wl => wl.Title, wl => wl.RootFolder.ServerRelativeUrl, wl => wl.Views.Include(tv => tv.Id, tv => tv.Title, tv => tv.ServerRelativeUrl, tv => tv.HtmlSchemaXml, tv => tv.RowLimit, tv => tv.JSLink, tv => tv.ViewFields, tv => tv.ViewQuery, tv => tv.Aggregations)); context.ExecuteQueryRetry(); var thisview = Identity.GetView(listDefinition); if (thisview != null) { Guid viewID = thisview.Id; if (JsLinkUris != null && JsLinkUris.Count() > 0) { var jsLinkUri = String.Join("|", JsLinkUris); thisview.JSLink = jsLinkUri; } if (RowLimit.HasValue) { thisview.RowLimit = RowLimit.Value; } if (!string.IsNullOrEmpty(CamlQuery)) { thisview.ViewQuery = CamlQuery; } if (this.ShouldProcess(string.Format("Updating {0} view", thisview.Title))) { thisview.Update(); context.ExecuteQueryRetry(); } } }
public override void ExecuteCmdlet() { base.ExecuteCmdlet(); var listName = List.Title; var context = this.ClientContext; var web = context.Web; context.Load(web); context.ExecuteQueryRetry(); string webRelativeUrl = web.ServerRelativeUrl; ListCollection allLists = web.Lists; IEnumerable <List> foundLists = context.LoadQuery(allLists.Where(list => list.Title == listName).Include(wl => wl.Id, wl => wl.Title, wl => wl.RootFolder.ServerRelativeUrl)); context.ExecuteQueryRetry(); var viewName = Identity.Title; var internalRowLimit = Convert.ToUInt32(RowLimit.HasValue ? RowLimit.Value : 50); List listToUpdate = foundLists.FirstOrDefault(); var views = listToUpdate.Views; ClientContext.Load(views, v => v.Include(tv => tv.Id, tv => tv.Title, tv => tv.ServerRelativeUrl, tv => tv.DefaultView, tv => tv.HtmlSchemaXml, tv => tv.RowLimit, tv => tv.Toolbar, tv => tv.JSLink, tv => tv.ViewFields, tv => tv.ViewQuery, tv => tv.Aggregations, tv => tv.AggregationsStatus, tv => tv.Hidden, tv => tv.Method, tv => tv.PersonalView, tv => tv.ReadOnlyView, tv => tv.ViewType)); ClientContext.ExecuteQueryRetry(); var thisview = Identity.GetView(listToUpdate); if (thisview != null) { Guid viewID = thisview.Id; if (ViewFields != null && ViewFields.Length > 0) { var currentFields = thisview.ViewFields; currentFields.RemoveAll(); ViewFields.ToList().ForEach(vField => { currentFields.Add(vField.Trim()); }); } if (JsLinkUris != null && JsLinkUris.Count() > 0) { var jsLinkUri = String.Join("|", JsLinkUris); thisview.JSLink = jsLinkUri; } thisview.RowLimit = internalRowLimit; thisview.ViewQuery = QueryXml; if (Toolbar.HasValue) { thisview.Toolbar = string.Format("<Toolbar Type=\"{0}\"/>", Toolbar.ToString()); } if (this.ShouldProcess(string.Format("Should update view {0}", viewName))) { thisview.Update(); listToUpdate.Context.ExecuteQueryRetry(); } } else { var internalName = viewName.Replace(" ", string.Empty); if (this.ShouldProcess(string.Format("Should create the view {0}", viewName))) { var view = listToUpdate.CreateView(internalName, ViewType.None, ViewFields, internalRowLimit, SetAsDefault, QueryXml, Personal, PagedView); listToUpdate.Context.Load(view, v => v.Title, v => v.Id, v => v.ServerRelativeUrl); listToUpdate.Context.ExecuteQueryRetry(); view.Title = viewName; if (Toolbar.HasValue) { thisview.Toolbar = string.Format("<Toolbar Type=\"{0}\"/>", Toolbar.ToString()); } if (JsLinkUris != null && JsLinkUris.Count() > 0) { var jsLinkUri = String.Join("|", JsLinkUris); thisview.JSLink = jsLinkUri; } view.Update(); listToUpdate.Context.ExecuteQueryRetry(); } } }