protected virtual AsyncTableQuery <T1> ApplyFilters(AsyncTableQuery <T1> query, T2 filter) { if (filter.Ids != null && filter.Ids.Any()) { query = query.Where(x => filter.Ids.Contains(x.Id)); } if (filter.Skip > 0) { query = query.Skip(filter.Skip.Value); } if (filter.Take > 0) { query = query.Take(filter.Take.Value); } return(query); }
private async Task <IList <T> > GetManyReady(Expression <Func <T, bool> > filter = null, Func <AsyncTableQuery <T>, AsyncTableQuery <T> > order = null, int skip = 0, int take = 0, bool includeDeleted = false) { AsyncTableQuery <T> tableQuery = _mainContext.GetCurrentContext().Table <T>(); if (!includeDeleted) { tableQuery = tableQuery.Where(q => q.IsDeleted.Equals(includeDeleted)); } if (filter != null) { tableQuery = tableQuery.Where(filter); } if (order != null) { tableQuery = order(tableQuery); } if (order == null) { tableQuery = tableQuery.OrderByDescending(b => b.CreatedDate); } if (skip > 0) { tableQuery = tableQuery.Skip(skip); } if (take > 0) { tableQuery = tableQuery.Take(take); } return(await tableQuery.ToListAsync()); }