/// <summary>
 /// Order then by the string expression provided.
 /// </summary>
 /// <param name="query">The IOrderedQueryable to add additional sorting to.</param>
 /// <param name="propertyName">The path to the property to order by (e.g. Path.To.Property).</param>
 /// <param name="direction">Order by which to sort items.</param>
 /// <typeparam name="T"></typeparam>
 /// <returns></returns>
 public static IOrderedQueryable <T> ThenBy <T>(
     this IOrderedQueryable <T> query,
     string propertyName,
     OrderByDirection direction = OrderByDirection.Ascending
     ) => query.AppendOrderByExpression(propertyName, direction, true);