public async Task <IList <SolarSystemViewModel> > GetSurroundingSystemsFor(int level, params SolarSystemViewModel[] solarSystem)
        {
            var killsTask = new EveKillsService().GetKillsBySystemId().ConfigureAwait(false);
            var conquerableStationsTask = new EveConquerableStationListService().GetConquerableStationsBySystemId().ConfigureAwait(false);
            var fwDataTask = new EveFactionWarfareService().GetFactionWarfareOccupancyBySystemId().ConfigureAwait(false);
            var jumpsTask  = new EveJumpsService().GetJumpsBySystemId().ConfigureAwait(false);


            var models = solarSystem.SelectMany(x => UniverseDataDB.GetSurroundingSystemsFor(x, level)).ToArray();
            // var models = UniverseDataDB.GetLowSecSystems();
            var kills = await killsTask;
            var conquerableStations = await conquerableStationsTask;
            var fwData = await fwDataTask;
            var jumps  = await jumpsTask;

            foreach (var curModel in models)
            {
                int jumpCount;
                curModel.JumpCount = jumps.TryGetValue(curModel.ID, out jumpCount) ? jumpCount : 0;

                curModel.Sovereignity = await SystemSovDataRepository.GetSovDataForSystem(curModel.ID).ConfigureAwait(false);

                KillsBySystem killsBySystem;
                curModel.Kills = kills.TryGetValue(curModel.ID, out killsBySystem)
                                  ? killsBySystem
                                  : new KillsBySystem {
                    SolarSystemId = curModel.ID
                };

                InitConquerableStations(conquerableStations, curModel);
                InitFwValues(curModel, fwData);
            }

            return(models);
        }
        public async Task <SolarSystemViewModel> GetSolarSystemViewModelBySystemName(string name)
        {
            var model            = UniverseDataDB.GetSystemViewModelFor(name);
            var sovDataForSystem = SystemSovDataRepository.GetSovDataForSystem(model.ID).ConfigureAwait(false);
            var conquerableStationsBySystemId = new EveConquerableStationListService().GetConquerableStationsBySystemId().ConfigureAwait(false);
            var killsTask = new EveKillsService().GetKillsBySystemId().ConfigureAwait(false);
            var jumpsTask = new EveJumpsService().GetJumpsBySystemId().ConfigureAwait(false);

            int jumpCount;

            model.JumpCount = (await jumpsTask).TryGetValue(model.ID, out jumpCount) ? jumpCount : 0;

            var fwData = await new EveFactionWarfareService().GetFactionWarfareOccupancyBySystemId().ConfigureAwait(false);

            model.Sovereignity = await sovDataForSystem;

            var           kills = await killsTask;
            KillsBySystem killsBySystem;

            model.Kills = kills.TryGetValue(model.ID, out killsBySystem)
                              ? killsBySystem
                              : new KillsBySystem {
                SolarSystemId = model.ID
            };

            var conquerableStations = await conquerableStationsBySystemId;

            InitConquerableStations(conquerableStations, model);
            InitFwValues(model, fwData);

            return(model);
        }
Beispiel #3
0
        private void PositionTrackerOnSystemChanged(string character, string oldSystem, string newSystem)
        {
            if (UniverseDataDB.AreSystemsConnected(oldSystem, newSystem))
            {
                return;
            }

            string firstSystem, secondSystem;

            if (string.Compare(oldSystem, newSystem, StringComparison.Ordinal) < 0)
            {
                firstSystem  = oldSystem;
                secondSystem = newSystem;
            }
            else
            {
                firstSystem  = newSystem;
                secondSystem = oldSystem;
            }

            var whConnection = _repository.GetWormholeConnection(firstSystem, secondSystem);

            if (whConnection != null)
            {
                return;
            }

            whConnection = new WormholeConnection
            {
                FirstSystem  = firstSystem,
                SecondSystem = secondSystem
            };

            _repository.UpsertWormholeConnection(whConnection);

            OnWormholeConnectionCreated(whConnection);
        }