/// <summary> /// Gets the left cols. /// </summary> /// <param name="myWorkGridView">My work grid view.</param> /// <returns></returns> private static string GetLeftCols(MyWorkGridView myWorkGridView) { Guard.ArgumentIsNotNull(myWorkGridView, nameof(myWorkGridView)); var leftCols = new List <string>(); foreach (var col in myWorkGridView.LeftCols.Split(CharComma)) { var split = col.Split(CharColon); var width = split[1]; switch (split[0]) { case Complete: width = CompleteColWidth; break; case CommentCount: width = CommentColWidth; break; case Priority: width = PriorityColWidth; break; default: Trace.WriteLine($"Unexpected value: {split[0]}"); break; } leftCols.Add($"{split[0]}:{width}"); } return(string.Join(Comma, leftCols.ToArray())); }
/// <summary> /// Saves the global views. /// </summary> /// <param name="myWorkGridView">My work grid view.</param> /// <param name="configWeb">The config web.</param> public static void SaveGlobalViews(MyWorkGridView myWorkGridView, SPWeb configWeb) { Guard.ArgumentIsNotNull(myWorkGridView, nameof(myWorkGridView)); Guard.ArgumentIsNotNull(configWeb, nameof(configWeb)); var myWorkGridViews = GetGlobalViews(configWeb).ToList(); myWorkGridViews.RemoveAll(v => v.Id.Equals(myWorkGridView.Id)); if (myWorkGridView.Default) { foreach (var gridView in myWorkGridViews) { gridView.Default = false; } } myWorkGridViews.Add(myWorkGridView); SaveGlobalViews(myWorkGridViews, configWeb); }
/// <summary> /// Gets my work grid views. /// </summary> /// <param name="spWeb">The sp web.</param> /// <returns></returns> internal static string GetMyWorkGridViews(SPWeb spWeb) { Guard.ArgumentIsNotNull(spWeb, nameof(spWeb)); try { var result = new XDocument(); result.Add(new XElement(nameof(MyWork))); result.Element(nameof(MyWork)).Add(new XElement(Views)); var viewsElement = result.Element(nameof(MyWork)).Element(Views); var configWeb = Utils.GetConfigWeb(); var myWorkGridViews = GetGlobalViews(configWeb).ToList(); if (!myWorkGridViews.ToList().Exists(v => v.Id.Equals(Dv))) { var cols = $"Flag:{FlagColWidth},DueDate:{DueDateColWidth},DueDay:{DueDayColWidth}"; var myWorkGridView = new MyWorkGridView { Id = Dv, Name = DefaultView, Default = true, Personal = false, LeftCols = $"Complete:{CompleteColWidth},CommentCount:{CommentColWidth},Priority:{PriorityColWidth}Title:{TitleColWidth}", Cols = cols, RightCols = string.Empty, Filters = ZeroVerBar, Grouping = ZeroVerBar, Sorting = DueDate }; SaveGlobalViews(myWorkGridView, Utils.GetConfigWeb()); myWorkGridViews.Insert(0, myWorkGridView); } Action <IEnumerable <MyWorkGridView>, string> addViewElements = (workGridViews, typeValue) => { foreach (var myWorkGridView in workGridViews) { var xElement = new XElement(View); xElement.Add(new XAttribute(IdText, myWorkGridView.Id)); xElement.Add(new XAttribute(Name, myWorkGridView.Name)); xElement.Add(new XAttribute(LeftCols, GetLeftCols(myWorkGridView))); xElement.Add(new XAttribute(Cols, myWorkGridView.Cols)); xElement.Add(new XAttribute(RightCols, myWorkGridView.RightCols)); xElement.Add(new XAttribute(Grouping, myWorkGridView.Grouping)); xElement.Add(new XAttribute(Filters, myWorkGridView.Filters)); xElement.Add(new XAttribute(Sorting, myWorkGridView.Sorting)); xElement.Add(new XAttribute(DefaultText, myWorkGridView.Default)); xElement.Add(new XAttribute(Type, typeValue)); viewsElement.Add(xElement); } }; addViewElements(myWorkGridViews, GlobalText); addViewElements(GetPersonalViews(configWeb), Personal); return(result.ToString()); } catch (APIException apiException) { Trace.WriteLine(apiException); throw; } catch (Exception exception) { Trace.WriteLine(exception); throw new APIException(2080, exception.Message); } }