示例#1
0
        public List <HourUsersView> QueryTopUsersViews(string city, string district, DateTime begin, DateTime end,
                                                       int topCount, OrderUsersStatPolicy policy)
        {
            var joinViews = QueryDistrictViews(city, district, begin, end).ToList();
            var days      = (joinViews.Max(x => x.StatTime) - joinViews.Min(x => x.StatTime)).Days + 1;

            return(QueryTopViewsByPolicy(joinViews, topCount * days, policy));
        }
示例#2
0
        private List <HourUsersView> QueryTopViewsByPolicy(IEnumerable <HourUsersView> source, int topCount,
                                                           OrderUsersStatPolicy policy)
        {
            switch (policy)
            {
            case OrderUsersStatPolicy.OrderByMaxRrcUsersDescending:
                return(source.OrderByDescending(x => x.MaxRrcUsers).Take(topCount).ToList());

            case OrderUsersStatPolicy.OrderByMaxActiveUsersDescending:
                return(source.OrderByDescending(x => x.MaxActiveUsers).Take(topCount).ToList());

            case OrderUsersStatPolicy.OrderByDownlinkActiveUsersDescending:
                return(source.OrderByDescending(x => x.DownlinkAverageActiveUsers).Take(topCount).ToList());

            case OrderUsersStatPolicy.OrderByUplinkActiveUsersDescending:
                return(source.OrderByDescending(x => x.UplinkAverageActiveUsers).Take(topCount).ToList());

            case OrderUsersStatPolicy.OrderByMaxCaUsersDescending:
                return(source.OrderByDescending(x => x.MaxCaUsers).Take(topCount).ToList());
            }
            return(new List <HourUsersView>());
        }
示例#3
0
        public List <HourUsersView> QueryTopUsersViews(DateTime begin, DateTime end, int topCount, OrderUsersStatPolicy policy)
        {
            var stats     = Repository.FilterTopList(begin, end);
            var joinViews = stats.MapTo <List <HourUsersView> >();
            var days      = (joinViews.Max(x => x.StatTime) - joinViews.Min(x => x.StatTime)).Days + 1;

            return(QueryTopViewsByPolicy(joinViews, topCount * days, policy));
        }