private static IList <IRouteValueProjection> Expand(this IRouteValueProjection projection) { var chained = projection as ChainedRouteValueProjection; return(chained != null ? chained.Projections : new[] { projection }); }
/// <summary> /// Joins two projections into the chain. /// </summary> /// <param name="first">The first projection.</param> /// <param name="second">The second projection.</param> /// <returns>The chained projection.</returns> public static ChainedRouteValueProjection And(this IRouteValueProjection first, IRouteValueProjection second) { return(new ChainedRouteValueProjection(first.Expand().Concat(second.Expand()))); }