protected bool Equals(ViewLayout other) { return(string.Equals(Name, other.Name) && Equals(ColumnFormats, other.ColumnFormats) && Equals(RowTransforms, other.RowTransforms)); }
public static ViewLayout ReadXml(XmlReader reader) { var viewLayout = new ViewLayout(reader.GetAttribute("name")); if (reader.IsEmptyElement) { reader.ReadElementString("layout"); return(viewLayout); } reader.Read(); var columnFormats = new List <Tuple <ColumnId, ColumnFormat> >(); var rowTransforms = new List <IRowTransform>(); ClusteringSpec clusterSpec = null; while (true) { if (reader.IsStartElement("columnFormat")) { var columnFormat = ColumnFormat.EMPTY; var strWidth = reader.GetAttribute("width"); if (strWidth != null) { columnFormat = columnFormat.ChangeWidth(int.Parse(strWidth)); } columnFormat = columnFormat.ChangeFormat(reader.GetAttribute("format")); columnFormats.Add(Tuple.Create(ColumnId.ParsePersistedString(reader.GetAttribute("column")), columnFormat)); if (reader.IsEmptyElement) { reader.ReadElementString("columnFormat"); } else { reader.Skip(); } } else if (reader.IsStartElement("pivot")) { rowTransforms.Add(PivotSpec.ReadXml(reader)); } else if (reader.IsStartElement("rowFilter")) { rowTransforms.Add(RowFilter.ReadXml(reader)); } else if (reader.IsStartElement("cluster")) { clusterSpec = ClusteringSpec.ReadXml(reader); } else if (reader.NodeType == XmlNodeType.EndElement) { reader.ReadEndElement(); break; } else { reader.Skip(); } } viewLayout.ColumnFormats = ImmutableList.ValueOf(columnFormats); viewLayout.RowTransforms = ImmutableList.ValueOf(rowTransforms); viewLayout.ClusterSpec = clusterSpec; return(viewLayout); }