Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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());
        }