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>)); }
public async Task <IEnumerable <Order> > GetAllAsync(int pageIndex, int itemsOnPage, SortOption byName, bool?hasExecutionDate, bool?completed, bool?overdued, string?searchKey, DateTime?startDateTime, DateTime?endDateTime, DateTime?checkDateTime) { var query = GetActualDataAsQueryable() .AsQueryable(); query = query.WhereSuidConditions(hasExecutionDate, completed, overdued, searchKey, startDateTime, endDateTime, checkDateTime); query = query.OrderBy(at => at.ExecutionDateTime).ThenBy(at => at.Id); query = byName switch { SortOption.True => query.OrderBy(at => at.Name), SortOption.Reversed => query.OrderByDescending(at => at.Name), _ => query }; query = query.Skip(itemsOnPage * pageIndex).Take(itemsOnPage); var orders = await query.Select(ProjectOrder()).ToListAsync(); return(orders.Select(Mapper.Map <Entities.Order, Order>)); }
public async Task <IEnumerable <AttributeType> > GetAllAsync(int pageIndex, int itemsOnPage, SortOption byName, string?searchKey) { var query = GetActualDataAsQueryable(); query = query.WhereSuidConditions(searchKey); query = query.OrderBy(at => at.Id); query = byName switch { SortOption.True => query.OrderBy(at => at.Name), SortOption.Reversed => query.OrderByDescending(at => at.Name), _ => query }; query = query.Skip(itemsOnPage * pageIndex).Take(itemsOnPage); var attributeTypes = await query.Select(at => new AttributeType { Id = at.Id, Name = at.Name, DataType = (AttributeDataType)at.DataType, SystemicType = at.SystemicType, Attributes = at.Attributes ! .Where(a => a.DeletedAt == null) .Select(a => new Attribute()) .ToList(), UsesDefinedUnits = at.UsesDefinedUnits, UsesDefinedValues = at.UsesDefinedValues }).ToListAsync();