public static List <FlowView> QueryTopViewsByPolicy(this List <FlowView> source, int topCount, OrderFeelingRatePolicy policy) { var minDate = source.Min(x => x.StatTime); var maxDate = source.Max(x => x.StatTime); topCount *= (maxDate - minDate).Days + 1; switch (policy) { case OrderFeelingRatePolicy.OrderByDownlinkDurationDescendings: return(source.OrderByDescending(x => x.DownlinkFeelingDuration).Take(topCount).ToList()); case OrderFeelingRatePolicy.OrderByDownlinkFeelingRateRate: return(source.OrderBy(x => x.DownlinkFeelingRate).Take(topCount).ToList()); case OrderFeelingRatePolicy.OrderByUplinkDurationDescendings: return(source.OrderByDescending(x => x.UplinkFeelingDuration).Take(topCount).ToList()); case OrderFeelingRatePolicy.OrderByUplinkFeelingRateRate: return(source.OrderBy(x => x.UplinkFeelingRate).Take(topCount).ToList()); default: return(new List <FlowView>()); } }
public List <FlowView> QueryTopFeelingRateViews(string city, string district, DateTime begin, DateTime end, int topCount, OrderFeelingRatePolicy policy) { var joinViews = QueryDistrictViews(city, district, begin, end); return(joinViews.ToList().QueryTopViewsByPolicy(topCount, policy)); }
public List <FlowView> QueryTopFeelingRateViews(DateTime begin, DateTime end, int topCount, OrderFeelingRatePolicy policy) { var zteStats = ZteRepository.FilterTopList(begin, end); var huaweiStats = HuaweiRepository.FilterTopList(begin, end); var joinViews = HuaweiCellRepository.QueryAllFlowViews <FlowView, FlowZte, FlowHuawei>(zteStats, huaweiStats); return(joinViews.ToList().QueryTopViewsByPolicy(topCount, policy)); }