public async Task <List <DashboardProjection> > GetSystemDashboard([FromQuery] DashboardFilterCriteria filter) { var command = new GetSystemDashboardQuery(filter); var result = await _queryProcessor.Process(command); return(result); }
public async Task <List <DashboardProjection> > Handle(GetSystemDashboardQuery query) { IQueryable <DashboardProjection> queryable = _context.DashBoardProjection; //ordering by most pending requests and then by most active users queryable = queryable.OrderByDescending(a => a.PendingRequests) .ThenByDescending(a => a.ActiveUsers); var list = await queryable.ToListAsync(); //return whole list if it is less than 15 entries if (list.Count < 15) { return(list); } //otherwise return the truncated list of top 15 results return(list.GetRange(0, 14)); }