Пример #1
0
        public async Task <List <DashboardProjection> > GetSystemDashboard([FromQuery] DashboardFilterCriteria filter)
        {
            var command = new GetSystemDashboardQuery(filter);
            var result  = await _queryProcessor.Process(command);

            return(result);
        }
Пример #2
0
        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));
        }