Ejemplo n.º 1
0
        private static void Main()
        {
            XmlConfigurator.Configure();
            var log = new Log();

            log.Info("Startup");


            IEnumerable <ServerInfo> servers;


            using (var dc = new ServerInfoRepository())
            {
                servers = dc.GetActiveServerInfo();
            }

            var models = servers.Select(x => OpenServerInfo(x, log)).ToList();


            while (true)
            {
                try
                {
                    var t = Task.Run(() => Run(models));
                    t.Wait();
                }
                catch (Exception ex)
                {
                    log.Error(ex);
                }
            }
        }
Ejemplo n.º 2
0
        public BanPlayerViewModel(Guid?serverId, string playerGuid, bool isOnline, IBanHelper playerHelper,
                                  string playerName,
                                  string playerNum)
        {
            _playerGuid   = playerGuid;
            _isOnline     = isOnline;
            _playerHelper = playerHelper;
            _playerName   = playerName;
            _playerNum    = playerNum;
            _minutes      = 0;

            using (var repo = new ServerInfoRepository())
                Servers = repo.GetActiveServerInfo().OrderBy(x => x.Name).ToList();


            if (string.IsNullOrEmpty(playerName))
            {
                using (var userRepo = new PlayerRepository())
                {
                    var player = userRepo.GetPlayer(playerGuid);
                    _playerName = player?.Name;
                }
            }

            SelectedServers = new ObservableCollection <ServerInfo>();

            if (serverId.HasValue)
            {
                SelectedServers.AddRange(Servers.Where(s => s.Id == serverId.Value));
            }
        }
Ejemplo n.º 3
0
        public void SetActive(Guid serverId, bool active = false)
        {
            using (var repo = new ServerInfoRepository())
            {
                repo.SetServerInfoActive(serverId, active);
            }

            _eventAggregator.GetEvent <BEServersChangedEvent>().Publish(null);
        }
Ejemplo n.º 4
0
 private void LoadedWindow(object sender, RoutedEventArgs e)
 {
     using (var r = new ServerInfoRepository())
     {
         var servers = r.GetActiveServerInfo();
         foreach (var server in servers)
         {
             OpenServerInfo(server);
         }
     }
 }
Ejemplo n.º 5
0
        public void Save()
        {
            try
            {
                var settings = _settingsStoreSource.GetSettingsStore();
                settings.TimeZoneInfo         = Settings.TimeZoneInfo;
                settings.AdminName            = Settings.AdminName.Replace(" ", string.Empty);
                settings.BansUpdateSeconds    = Settings.BansUpdateSeconds;
                settings.PlayersUpdateSeconds = Settings.PlayersUpdateSeconds;
                settings.Save();

                using (var servierInfoRepository = new ServerInfoRepository())
                {
                    var all = servierInfoRepository.GetServerInfo();

                    var todelete = all.Where(x => Servers.All(s => s.GetDbModel().Id != x.Id));

                    foreach (var serverInfo in todelete)
                    {
                        servierInfoRepository.Remove(serverInfo.Id);
                    }

                    foreach (var s in Servers)
                    {
                        var m = s.GetDbModel();
                        if (m.Id == Guid.Empty)
                        {
                            m.Id = Guid.NewGuid();
                        }
                        servierInfoRepository.AddOrUpdate(m);
                    }
                }

                using (var dc = new ReasonRepository())
                {
                    dc.UpdateBanReasons(BanReasons.Select(x => x.Text).Where(x => string.IsNullOrEmpty(x) == false).Distinct().ToArray());
                    dc.UpdateBanTimes(BanTimes.Where(x => string.IsNullOrEmpty(x.Text) == false).Select(x => new BanTime()
                    {
                        TimeInMinutes = x.Minutes, Title = x.Text
                    }).ToArray());
                    dc.UpdateKickReasons(KickReasons.Select(x => x.Text).Where(x => string.IsNullOrEmpty(x) == false).Distinct().ToArray());
                }

                _eventAggregator.GetEvent <BEServersChangedEvent>().Publish(null);
                _eventAggregator.GetEvent <SettingsChangedEvent>().Publish(_settingsStoreSource.GetSettingsStore());
            }
            catch (Exception e)
            {
                _log.Error(e);
                MessageBox.Show(e.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
Ejemplo n.º 6
0
        public OptionsModel(IEventAggregator eventAggregator, ISettingsStoreSource settingsStoreSource)
        {
            _eventAggregator     = eventAggregator;
            _settingsStoreSource = settingsStoreSource;
            using (var servierInfoRepository = new ServerInfoRepository())
            {
                Servers = servierInfoRepository.GetServerInfo().Select(x => new ServerInfoModel(x)).ToList();
            }

            using (var dc = new ReasonRepository())
            {
                BanReasons = dc.GetBanReasons().Select(x => new ReasonEdit()
                {
                    Text = x
                }).ToList();
                KickReasons = dc.GetKickReasons().Select(x => new ReasonEdit()
                {
                    Text = x
                }).ToList();
                BanTimes =
                    dc.GetBanTimes().Select(x => new BanTimeEdit()
                {
                    Text = x.Title, Minutes = x.TimeInMinutes
                }).ToList();
            }

            var zones = TimeZoneInfo.GetSystemTimeZones().ToArray();

            for (var i = 0; i < zones.Length; i++)
            {
                if (zones[i].Id == Settings.TimeZoneInfo.Id)
                {
                    zones[i] = Settings.TimeZoneInfo;
                }
            }

            TimeZones = zones;
        }