/// <summary> /// Appends the specified <see cref="MdxTuple"/> and returns the updated current instance of <see cref="MdxSet"/>. /// If there are any children other than <see cref="MdxTuple"/> then each child will be wrapped into <see cref="MdxTuple"/>. /// </summary> /// <param name="tuple">Specified <see cref="MdxSet"/>.</param> /// <returns>Returns the updated current instance of <see cref="MdxTuple"/>.</returns> public MdxSet With(MdxTuple tuple) { if (!_children.Any()) { _children.Add(tuple); return(this); } if (_children.OfType <MdxTuple>().Any()) { _children.Add(tuple); return(this); } var copiedChildren = new List <IMdxMember>(_children); _children.Clear(); foreach (var member in copiedChildren) { _children.Add(Mdx.Tuple().With(member)); } return(this); }
/// <summary> /// Appends the specified <see cref="MdxTuple"/>, but wraps it into <see cref="MdxSet"/> and returns the updated /// current instance of <see cref="MdxTuple"/>. If there are any <see cref="MdxSet"/>s in <see cref="Children"/> /// then specified <see cref="MdxTuple"/> is appended to the last <see cref="MdxSet"/>. /// </summary> /// <param name="tuple">Specified <see cref="MdxTuple"/>.</param> /// <returns>Returns the updated current instance of <see cref="MdxTuple"/>.</returns> public MdxTuple With(MdxTuple tuple) { var lastSet = _children.OfType <MdxSet>().LastOrDefault(); if (lastSet == null) { return(With(Mdx.Set().With(tuple))); } lastSet.With(tuple); return(this); }
/// <summary> /// Appends the specified <see cref="MdxSet"/>, but wraps it into <see cref="MdxTuple"/> and returns the updated /// current instance of <see cref="MdxSet"/>. If there are any <see cref="MdxTuple"/>s in <see cref="Children"/> /// then specified <see cref="MdxSet"/> is appended to the last <see cref="MdxTuple"/>. /// </summary> /// <param name="set">Specified <see cref="MdxSet"/>.</param> /// <returns>Returns the updated current instance of <see cref="MdxSet"/>.</returns> public MdxSet With(MdxSet set) { var lastTuple = _children.OfType <MdxTuple>().LastOrDefault(); if (lastTuple == null) { With(Mdx.Tuple().With(set)); return(this); } lastTuple.With(set); return(this); }