public IEnumerable <InterferenceVictimView> QueryVictimViews(DateTime begin, DateTime end, int cellId,
                                                                     byte sectorId)
        {
            var statList = _repository.GetAllVictims(begin, end, cellId, sectorId);
            var results  = from stat in statList
                           group stat by new { stat.ENodebId, stat.SectorId, stat.DestPci, stat.DestENodebId, stat.DestSectorId }
            into g
                select new InterferenceVictimView
            {
                VictimENodebId        = g.Key.ENodebId,
                VictimSectorId        = g.Key.SectorId,
                Mod3Interferences     = g.Average(x => x.Mod3Interferences),
                Mod6Interferences     = g.Average(x => x.Mod6Interferences),
                OverInterferences10Db = g.Average(x => x.OverInterferences10Db),
                OverInterferences6Db  = g.Average(x => x.OverInterferences6Db),
                InterferenceLevel     = g.Average(x => x.InterferenceLevel),
                VictimCellName        = "未匹配小区"
            };
            var victims = results as InterferenceVictimView[] ?? results.ToArray();

            foreach (var victim in victims)
            {
                var eNodeb = _eNodebRepository.GetByENodebId(victim.VictimENodebId);
                victim.VictimCellName = eNodeb?.Name + "-" + victim.VictimSectorId;
            }
            return(victims);
        }
        public IEnumerable <InterferenceVictimView> QueryVictimViews(DateTime begin, DateTime end, int cellId,
                                                                     byte sectorId)
        {
            var statList = _repository.GetAllVictims(begin, end, cellId, sectorId);
            var results  = from stat in statList
                           group stat by new { stat.ENodebId, stat.SectorId, stat.NeighborPci, stat.DestENodebId, stat.DestSectorId }
            into g
                select new InterferenceVictimView
            {
                VictimENodebId    = g.Key.ENodebId,
                VictimSectorId    = g.Key.SectorId,
                Mod3Interferences =
                    g.Average(x => x.Pci % 3 == x.NeighborPci % 3 ? (x.Diff0 + x.Diff3 + x.Diff6) : 0),
                Mod6Interferences =
                    g.Average(x => x.Pci % 6 == x.NeighborPci % 6 ? (x.Diff0 + x.Diff3 + x.Diff6) : 0),
                OverInterferences10Db = g.Average(x => (x.Diff0 + x.Diff3 + x.Diff6 + x.Diff9)),
                OverInterferences6Db  = g.Average(x => (x.Diff0 + x.Diff3 + x.Diff6)),
                InterferenceLevel     =
                    g.Average(
                        x =>
                        (x.Diff0 + x.Diff3 + x.Diff6) *
                        (x?.NeighborRsrpBelow120 ??
                         x.RsrpBelow120 + x?.NeighborRsrpBetween120110 ??
                         x.RsrpBetween120110 + x?.NeighborRsrpBetween110105 ?? x.RsrpBetween110105)),
                VictimCellName = "未匹配小区"
            };
            var victims = results as InterferenceVictimView[] ?? results.ToArray();

            foreach (var victim in victims)
            {
                var eNodeb = _eNodebRepository.FirstOrDefault(x => x.ENodebId == victim.VictimENodebId);
                victim.VictimCellName = eNodeb?.Name + "-" + victim.VictimSectorId;
                var cell = _cellRepository.GetBySectorId(victim.VictimENodebId, victim.VictimSectorId);
                victim.VictimPci = cell?.Pci ?? 0;
            }
            return(victims);
        }