public static CamlGroupBy BeforeBy(this CamlGroupBy groupBy, CamlFieldRef fieldRef, bool? collapse = null, int? limit = null) { if (groupBy == null) { return new CamlGroupBy(fieldRef, collapse, limit); } if (groupBy.Collapse != null) { collapse = collapse == null ? groupBy.Collapse.Value : collapse.Value | groupBy.Collapse.Value; } if (groupBy.Limit != null) { limit = limit == null ? groupBy.Limit.Value : Math.Max(limit.Value, groupBy.Limit.Value); } var fields = new List<CamlFieldRef> { fieldRef }; fields.AddRange(groupBy.FieldRefs); return new CamlGroupBy(fields, collapse, limit); }
public static CamlOrderBy ThenBy(this CamlOrderBy orderBy, CamlFieldRef fieldRef) { if (orderBy == null) { orderBy = new CamlOrderBy(fieldRef); } var fields = new List<CamlFieldRef>(orderBy.FieldRefs) { fieldRef }; return new CamlOrderBy(fields); }