public List <DistrictStat> QueryDistrictStats(string city) { var eNodebTownIds = _eNodebRepository.GetAllInUseList().Select(x => new { x.TownId, x.ENodebId }); var btsTownIds = _btsRepository.GetAllInUseList().Select(x => new { x.TownId, x.BtsId }); var cellENodebIds = _cellRepository.GetAllInUseList().Select(x => x.ENodebId); var cdmaCellBtsIds = _cdmaCellRepository.GetAllInUseList().Select(x => x.BtsId); return((from district in GetDistricts(city) let townList = _repository.GetAllList(city, district) let eNodebs = (from t in townList join e in eNodebTownIds on t.Id equals e.TownId select e) let btss = (from t in townList join b in btsTownIds on t.Id equals b.TownId select b) let cells = (from t in townList join e in eNodebTownIds on t.Id equals e.TownId join c in cellENodebIds on e.ENodebId equals c select c) let cdmaCells = (from t in townList join b in btsTownIds on t.Id equals b.TownId join c in cdmaCellBtsIds on b.BtsId equals c select c) select new DistrictStat { District = district, TotalLteENodebs = eNodebs.Count(), TotalLteCells = cells.Count(), TotalCdmaBts = btss.Count(), TotalCdmaCells = cdmaCells.Count() }).ToList()); }
public List <DistrictStat> QueryDistrictStats(string city) { var eNodebTownIds = _eNodebRepository.GetAllInUseList().Select(x => new { x.TownId, x.ENodebId }); var btsTownIds = _btsRepository.GetAllInUseList().Select(x => new { x.TownId, x.BtsId }); var cellENodebs = _cellRepository.GetAllInUseList(); var cdmaCellBtsIds = _cdmaCellRepository.GetAllInUseList().Select(x => x.BtsId); return((from district in GetDistricts(city) let townList = _repository.GetAllList().Where(x => x.CityName == city && x.DistrictName == district) let eNodebs = (from t in townList join e in eNodebTownIds on t.Id equals e.TownId select e) let btss = (from t in townList join b in btsTownIds on t.Id equals b.TownId select b) let cells = (from t in townList join e in eNodebTownIds on t.Id equals e.TownId join c in cellENodebs on e.ENodebId equals c.ENodebId select c) let cdmaCells = (from t in townList join b in btsTownIds on t.Id equals b.TownId join c in cdmaCellBtsIds on b.BtsId equals c select c) select new DistrictStat { District = district, TotalLteENodebs = eNodebs.Count(), TotalLteCells = cells.Count(x => x.Frequency < 2504 || x.BandClass == 41), Lte800Cells = cells.Count(x => x.BandClass == 5 && x.Frequency >= 2504), Lte1800Cells = cells.Count(x => x.BandClass == 3), Lte2100Cells = cells.Count(x => x.BandClass == 1), Lte2600Cells = cells.Count(x => x.BandClass == 41), TotalNbIotCells = cells.Count(x => x.Frequency >= 2504 && x.BandClass == 5), TotalCdmaBts = btss.Count(), TotalCdmaCells = cdmaCells.Count() }).ToList()); }
public IEnumerable <int> GetVanishedBtsIds() { if (!BtsExcels.Any()) { return(new List <int>()); } return(from bts in _btsRepository.GetAllInUseList() join info in BtsExcels on bts.BtsId equals info.BtsId into btsQuery from eq in btsQuery.DefaultIfEmpty() where eq == null select bts.BtsId); }