public static IEnumerable <TView> QueryDistrictViews <TView, TStat>(this List <TStat> stats, string city, string district, ITownRepository townRepository, IENodebRepository eNodebRepository) where TStat : ILteCellQuery where TView : class, IENodebName, ILteCellQuery, new() { var eNodebs = townRepository.QueryENodebs(eNodebRepository, city, district); if (!eNodebs.Any()) { return(new List <TView>()); } var views = eNodebs.QueryZteViews <TView, TStat>(stats); return(views.ToList()); }
public static IEnumerable <TView> QueryTownFlowViews <TView, TZte, THuawei>(this ICellRepository huaweiCellRepository, string city, string district, string town, List <TZte> zteStats, List <THuawei> huaweiStats, FrequencyBandType frequency, ITownRepository townRepository, IENodebRepository eNodebRepository) where TZte : ILteCellQuery where THuawei : ILocalCellQuery where TView : class, IENodebName, ILteCellQuery, new() { var eNodebs = townRepository.QueryENodebs(eNodebRepository, city, district, town); if (!eNodebs.Any()) { return(new List <TView>()); } var zteViews = eNodebs.QueryZteViews <TView, TZte>(zteStats); var huaweiList = eNodebs.QueryHuaweiViews <TView, THuawei>(huaweiStats, huaweiCellRepository); IEnumerable <Tuple <TView, byte> > huaweiViews; switch (frequency) { case FrequencyBandType.All: huaweiViews = huaweiList; break; case FrequencyBandType.Band2100: huaweiViews = huaweiList.Where(x => x.Item2 < 16); break; case FrequencyBandType.Band1800: huaweiViews = huaweiList.Where(x => x.Item2 >= 48 && x.Item2 < 64); break; default: huaweiViews = huaweiList.Where(x => x.Item2 >= 16 && x.Item2 < 32); break; } return(zteViews.Concat(huaweiViews.Select(v => { var view = v.Item1; view.SectorId = v.Item2; return view; })).ToList()); }
public static IEnumerable <TView> QueryDistrictFlowViews <TView, TZte, THuawei>(this ICellRepository huaweiCellRepository, string city, string district, List <TZte> zteStats, List <THuawei> huaweiStats, ITownRepository townRepository, IENodebRepository eNodebRepository) where TZte : ILteCellQuery where THuawei : ILocalCellQuery where TView : class, IENodebName, ILteCellQuery, new() { var eNodebs = townRepository.QueryENodebs(eNodebRepository, city, district); if (!eNodebs.Any()) { return(new List <TView>()); } var zteViews = eNodebs.QueryZteViews <TView, TZte>(zteStats); var huaweiViews = eNodebs.QueryHuaweiViews <TView, THuawei>(huaweiStats, huaweiCellRepository); return(zteViews.Concat(huaweiViews).ToList()); }
public static IEnumerable <TView> QueryDistrictKpiViews <TView, TZte, THuawei>(this IENodebRepository eNodebRepository, string city, string district, List <TZte> zteStats, List <THuawei> huaweiStats, ITownRepository townRepository) where TZte : ILteCellQuery where THuawei : ILteCellQuery where TView : class, IENodebName, ILteCellQuery, new() { var eNodebs = townRepository.QueryENodebs(eNodebRepository, city, district); if (!eNodebs.Any()) { throw new OutOfMemoryException("abc"); } var zteViews = eNodebs.QueryZteViews <TView, TZte>(zteStats); var huaweiViews = eNodebs.QueryZteViews <TView, THuawei>(huaweiStats); return(zteViews.Concat(huaweiViews).ToList()); }