private static IMobileServiceTableQuery <MovieType> ApplyOrdering <MovieType>(IMobileServiceTableQuery <MovieType> query, OrderByClause[] orderBy) where MovieType : class, IMovie { if (orderBy.Length == 1) { if (orderBy[0].IsAscending && orderBy[0].FieldName == "Title") { return(query.OrderBy(m => m.Title)); } else if (!orderBy[0].IsAscending && orderBy[0].FieldName == "Year") { return(query.OrderByDescending(m => m.Year)); } } else if (orderBy.Length == 2) { if (orderBy[1].FieldName == "Title" && orderBy[1].IsAscending) { if (orderBy[0].FieldName == "Duration" && orderBy[0].IsAscending) { return(query.OrderBy(m => m.Duration).ThenBy(m => m.Title)); } else if (orderBy[0].FieldName == "ReleaseDate" && !orderBy[0].IsAscending) { return(query.OrderByDescending(m => m.ReleaseDate).ThenBy(m => m.Title)); } } } throw new NotImplementedException(string.Format("Ordering by [{0}] not implemented yet", string.Join(", ", orderBy.Select(c => string.Format("{0} {1}", c.FieldName, c.IsAscending ? "asc" : "desc"))))); }
public IAsyncQuery <T> OrderBy <TKey>(Expression <Func <T, TKey> > keySelector) { return(new AsyncQuery <T>(from.OrderBy(keySelector))); }