Ejemplo n.º 1
0
        public async Task <IEnumerable <Attribute> > GetAllAsync(int pageIndex, int itemsOnPage, SortOption byName,
                                                                 SortOption byType, string?searchKey)
        {
            var query = GetActualDataAsQueryable()
                        .Include(a => a.AttributeType)
                        .AsQueryable();

            query = query.WhereSuidConditions(searchKey);

            query = query.OrderBy(a => a.Id);

            query = byName switch
            {
                SortOption.True => query.OrderBy(a => a.Name),
                SortOption.Reversed => query.OrderByDescending(a => a.Name),
                _ => query
            };

            query = byType switch
            {
                SortOption.True => query.OrderBy(a => a.AttributeType !.Name),
                SortOption.Reversed => query.OrderByDescending(a => a.AttributeType !.Name),
                _ => query
            };

            query = query.Skip(itemsOnPage * pageIndex).Take(itemsOnPage);

            return((await query.ToListAsync()).Select(Mapper.Map <Entities.Attribute, Attribute>));
        }