Пример #1
0
        public static SolarSystemViewModel GetSystemViewModelFor(string systemName)
        {
            if (systemName == null)
            {
                throw new ArgumentNullException("systemName", "systemName must not be null in GetSystemViewModelFor");
            }
            var result = new SolarSystemViewModel
            {
                Name = systemName
            };

            _getSystemByNameParameter.Value = systemName;
            using (var reader = _getSystemByNameCommand.ExecuteReader())
            {
                if (!reader.Read())
                {
                    throw new Exception("Could not load system '" + systemName + "'");
                }
                result.SecurityStatus = Convert.ToDouble(reader.GetDecimal(1));

                var systemId = reader.GetInt32(0);
                result.ID       = systemId;
                result.Stations = GetStationsForSystem(systemId);
                result.RegionID = reader.GetInt32(2);
            }

            if (WormholeConnectionTracker.WH_REGEX.IsMatch(systemName))
            {
                result.WormholeInfo = GetWormholeInfo(systemName);
            }

            return(result);
        }
Пример #2
0
        public static IList <SolarSystemViewModel> GetRegionalSystemsFor(SolarSystemViewModel solarSystem)
        {
            if (solarSystem.IsWormholeSystem)
            {
                return(new List <SolarSystemViewModel>());
            }

            _getSystemByRegionIdRegionIdParameter.Value = solarSystem.RegionID;
            //TODO allgemeine security conversion einfuehren
            _getSystemByRegionIdSecurityLevelParameter.Value = solarSystem.SecurityStatus > 0.45 ? 2 : (solarSystem.SecurityStatus > 0 ? 1 : 0);

            var result = new List <SolarSystemViewModel>();

            using (var reader = _getSystemsByRegionIdCommand.ExecuteReader())
            {
                while (reader.Read())
                {
                    var curSystem = new SolarSystemViewModel
                    {
                        ID             = reader.GetInt32(0),
                        Name           = reader.GetString(1),
                        SecurityStatus = Convert.ToDouble(reader.GetDecimal(2)),
                        RegionID       = reader.GetInt32(3)
                    };
                    curSystem.Stations = GetStationsForSystem(curSystem.ID);

                    result.Add(curSystem);
                }
            }

            return(result);
        }
        public int GetIndex(SolarSystemViewModel vm)
        {
            if (vm.JumpCount > 150)
            {
                return(6);
            }

            if (vm.JumpCount > 110)
            {
                return(5);
            }

            if (vm.JumpCount > 70)
            {
                return(4);
            }
            if (vm.JumpCount > 40)
            {
                return(3);
            }
            if (vm.JumpCount > 20)
            {
                return(2);
            }
            if (vm.JumpCount > 0)
            {
                return(1);
            }
            return(0);
        }
Пример #4
0
        public int GetIndex(SolarSystemViewModel vm)
        {
            var killCount = vm.Kills.PodKillCount + vm.Kills.ShipKillCount;

            if (killCount > 100)
            {
                return(6);
            }
            if (killCount > 50)
            {
                return(5);
            }
            if (killCount > 25)
            {
                return(4);
            }
            if (killCount > 10)
            {
                return(3);
            }
            if (killCount > 3)
            {
                return(2);
            }
            if (killCount > 0)
            {
                return(1);
            }
            return(0);
        }
        public int GetIndex(SolarSystemViewModel vm)
        {
            var killCount = vm.Kills.NpcKillCount;

            if (killCount > 200)
            {
                return(6);
            }
            if (killCount > 140)
            {
                return(5);
            }
            if (killCount > 100)
            {
                return(4);
            }
            if (killCount > 60)
            {
                return(3);
            }
            if (killCount > 25)
            {
                return(2);
            }
            if (killCount > 0)
            {
                return(1);
            }
            return(0);
        }
Пример #6
0
 public int GetState(SolarSystemViewModel vm)
 {
     if (!vm.Stations.Any())
     {
         return(0);
     }
     return(vm.Stations.Any(x => x.HasRepairFacility) ? 2 : 1);
 }
        private static void InitFwValues(SolarSystemViewModel model, IDictionary <long, FactionWarfareOccupancy> fwData)
        {
            FactionWarfareOccupancy fwValue;

            model.Sovereignity.IsFactionWarefareSystem = fwData.TryGetValue(model.ID, out fwValue);
            if (model.Sovereignity.IsFactionWarefareSystem)
            {
// ReSharper disable PossibleNullReferenceException
                model.Sovereignity.FactionWarefareOccupyingFactionId = fwValue.OccupyingFactionId == 0 ? fwValue.OwningFactionId : fwValue.OccupyingFactionId;
// ReSharper restore PossibleNullReferenceException
            }
        }
        public int GetIndex(SolarSystemViewModel vm)
        {
            if (vm.Killboard.SmartbombPoddingCountVeryRecent > 2)
            {
                return(6);
            }
            if (vm.Killboard.SmartbombPoddingCountVeryRecent > 0)
            {
                return(5);
            }
            if (vm.Killboard.SmartbombPoddingCount > 0)
            {
                return(3);
            }
            if (vm.Kills.PodKillCount > 2)
            {
                return(3);
            }

            return(vm.Kills.PodKillCount > 0 ? 2 : 0);
        }
Пример #9
0
        public static IList <SolarSystemViewModel> GetLowSecSystems()
        {
            var result = new List <SolarSystemViewModel>();

            using (var reader = _getLowSecSystemsCommand.ExecuteReader())
            {
                while (reader.Read())
                {
                    var curSystem = new SolarSystemViewModel
                    {
                        ID             = reader.GetInt32(0),
                        Name           = reader.GetString(1),
                        SecurityStatus = Convert.ToDouble(reader.GetDecimal(2)),
                        RegionID       = reader.GetInt32(3)
                    };
                    curSystem.Stations = GetStationsForSystem(curSystem.ID);

                    result.Add(curSystem);
                }
            }

            return(result);
        }
Пример #10
0
        //TODO alle methoden thread safe machen
        public static IList <SolarSystemViewModel> GetSurroundingSystemsFor(SolarSystemViewModel solarSystem, int level = 3)
        {
            if (solarSystem.IsWormholeSystem)
            {
                return(GetSurroundingSystemsStartingFromWormhole(solarSystem));
            }

            var result = new List <SolarSystemViewModel>();

            _getAdjacentSystemsSystemSecurityTypeParameter.Value = solarSystem.GetSecurityType();
            _getAdjacentSystemsSystemMaxLevelParameter.Value     = level;
            _getAdjacentSystemsSystemIDParameter.Value           = solarSystem.ID;
            using (var reader = _getAdjacentSystemsCommand.ExecuteReader())
            {
                while (reader.Read())
                {
                    var curSystem = new SolarSystemViewModel
                    {
                        ID             = reader.GetInt32(0),
                        Name           = reader.GetString(1),
                        SecurityStatus = Convert.ToDouble(reader.GetDecimal(2)),
                        RegionID       = reader.GetInt32(3)
                    };
                    curSystem.Stations = GetStationsForSystem(curSystem.ID);

                    result.Add(curSystem);
                }
            }

            var systems = result.Concat(GetSurroundingWormholeSystems(result.Concat(new[] { solarSystem })))
                          .Distinct()
                          .ToArray();

            return(systems.Concat(GetSurroundingTheraSystems(systems))
                   .Distinct()
                   .ToArray());
        }
        //TODO extract similarities
        public async Task <IList <SolarSystemViewModel> > GetRegionalSystemsFor(SolarSystemViewModel system)
        {
            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 = UniverseDataDB.GetRegionalSystemsFor(system).ToArray();
            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);
            }

            var surroundings = await GetSurroundingSystemsFor(1, models);

            return(models.Union(surroundings).ToArray());
        }
Пример #12
0
 public int GetState(SolarSystemViewModel vm)
 {
     return(0);
 }
 private static void InitConquerableStations(IDictionary <long, Station[]> conquerableStations, SolarSystemViewModel model)
 {
     Station[] conquerableStation;
     if (conquerableStations.TryGetValue(model.ID, out conquerableStation))
     {
         model.Stations = model.Stations.Concat(conquerableStation).ToArray();
     }
 }
Пример #14
0
        public void OpenForSystem(SolarSystemViewModel systemId)
        {
            var url = string.Format(@"https://zkillboard.com/system/{0}/", systemId.ID);

            Process.Start(url);
        }
Пример #15
0
 public int GetState(SolarSystemViewModel vm)
 {
     return(vm.Killboard.SmartbombPoddingCountVeryRecent == 0 ? 0 : 2);
 }
 public int GetIndex(SolarSystemViewModel vm)
 {
     return(Math.Max(_pvpActivityIndexCalculator.GetIndex(vm), _pveActivityIndexCalculator.GetIndex(vm)));
 }
Пример #17
0
 public Brush GetBrush(SolarSystemViewModel vm)
 {
     return(_palette[_indexCalculator.GetIndex(vm)]);
 }
Пример #18
0
        public void OpenForSystem(SolarSystemViewModel solarSystem)
        {
            var url = "https://zkillboard.com/system/" + solarSystem.ID + "/";

            Process.Start(url);
        }
Пример #19
0
 public int GetIndex(SolarSystemViewModel vm)
 {
     return(0);
 }
Пример #20
0
        private static IList <SolarSystemViewModel> GetSurroundingSystemsStartingFromWormhole(SolarSystemViewModel solarSystem)
        {
            var       surroundingSystems       = GetSurroundingWormholeSystems(new[] { solarSystem });
            const int ONLY_ONE_LEVEL_FOR_THERA = 0;
            var       solarSystemViewModels    = surroundingSystems as SolarSystemViewModel[] ?? surroundingSystems.ToArray();
            var       result = solarSystemViewModels.Where(x => !x.IsWormholeSystem)
                               .SelectMany(x => GetSurroundingSystemsFor(x, solarSystem.Name == "Thera" ? ONLY_ONE_LEVEL_FOR_THERA : 2)
                                           .Concat(new[] { x })).Union(solarSystemViewModels.Where(x => x.IsWormholeSystem))
                               .Without(new[] { solarSystem })
                               .Distinct()
                               .ToList();

            var newSys = GetSurroundingTheraSystems(result.Concat(new[] { solarSystem }));

            return(result.Concat(newSys)
                   .Without(new[] { solarSystem })
                   .Distinct()
                   .ToList());
        }
Пример #21
0
 public WormholeSolarSystemConnection(SolarSystemViewModel first, SolarSystemViewModel second, WormholeConnection whConnection)
     : base(first, second)
 {
     _wormholeConnection = whConnection;
 }
Пример #22
0
        public void OpenForSystem(SolarSystemViewModel solarSystem)
        {
            var url = "https://neweden.xyz/system/" + solarSystem.ID + "/";

            Process.Start(url);
        }
        //TODO needs to get update eventually
        public int GetState(SolarSystemViewModel vm)
        {
            var hasScan = App.GetFromCollection <MoonItemModel, bool>(c => c.Exists(x => x.Id.StartsWith(vm.Name)));

            return(hasScan ? 2 : 0);
        }
Пример #24
0
 public EveScoutWormholeSolarSystemConnection(SolarSystemViewModel source,
                                              SolarSystemViewModel target,
                                              EveScoutWormholeConnection whConnection) : base(source, target)
 {
     _whConnection = whConnection;
 }