/// <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> /// Sets the slicer for axis and returns the updated current instance of <see cref="MdxAxis"/>. /// </summary> /// <param name="slicer">Axis slicer.</param> /// <returns>Returns the updated current instance of <see cref="MdxAxis"/>.</returns> public MdxAxis WithSlicer(MdxTuple slicer) { this.AxisSlicer = slicer; return(this); }
public MdxDeclaration As(MdxTuple expression) { Expression = expression; return(this); }
/// <summary> /// Appends the <see cref="MdxTuple"/> into where clause and returns the updated current instance of <see cref="MdxQuery"/>. /// </summary> /// <param name="tuple">Specified <see cref="MdxTuple"/>.</param> /// <returns>Returns the updated current instance of <see cref="MdxQuery"/>.</returns> public MdxQuery Where(MdxTuple tuple) { this.whereClauseTuples.Add(tuple); return(this); }