Beispiel #1
0
        public async Task <bool> DumpOneStationCell()
        {
            var stat = StationCells.Pop();

            if (stat == null)
            {
                throw new NullReferenceException("stat is null!");
            }
            await _constructionInformation
            .UpdateOneInUse <IConstructionInformationRepository, ConstructionInformation, ConstructionExcel>(stat);

            await _cellRepository
            .UpdateOneInUse <ICellRepository, Cell, ConstructionExcel>(stat,
                                                                       (info, excel) =>
            {
                if (!excel.IsOutdoor)
                {
                    var distribution = _distributionRepository.FirstOrDefault(x =>
                                                                              x.IndoorSerialNum == excel.IndoorDistributionSerial);
                    if (distribution == null)
                    {
                        return;
                    }
                    if (distribution.Longtitute > 112 && distribution.Lattitute > 22)
                    {
                        info.Longtitute = distribution.Longtitute;
                        info.Lattitute  = distribution.Lattitute;
                    }
                }
                var antenna =
                    _stationAntennaRepository.FirstOrDefault(x => x.AntennaNum == excel.AntennaSerial);
                if (antenna == null)
                {
                    return;
                }
                if (antenna.Longtitute > 112 && antenna.Lattitute > 22)
                {
                    info.Longtitute  = antenna.Longtitute;
                    info.Lattitute   = antenna.Lattitute;
                    info.ETilt       = antenna.ETilt;
                    info.MTilt       = antenna.MTilt;
                    info.Height      = antenna.Height;
                    info.Azimuth     = antenna.Azimuth;
                    info.AntennaGain = excel.BandClass == 5 ? antenna.AntennaGainLow : antenna.AntennaGainHigh;
                }
            });

            return(true);
        }