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); }
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); }