Exemple #1
0
        static void Main(string[] args)
        {
            log4net.Config.XmlConfigurator.Configure();
            var log = new Log();
            log.Info("Startup");

            var servers = new List<ServerInfo>();

            using (var dc = new Arma3BeClientContext())
            {
                servers = dc.ServerInfo.Where(x => x.Active).ToList();
            }

            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);
                }
            }
        }
Exemple #2
0
        private static SettingsStore Load()
        {
            using (var context = new Arma3BeClientContext())
            {
                var ss = new SettingsStore();

                var needSave = false;
                var aname = context.Settings.FirstOrDefault(x => x.Id == AdminNameKey);
                if (aname == null)
                {
                    var def = "Admin";
                    context.Settings.Add(new Settings() {Id = AdminNameKey, Value = def});
                    needSave = true;
                    ss.AdminName = def;
                }
                else
                {
                    ss.AdminName = aname.Value;
                }

                if (needSave) context.SaveChanges();

                return ss;
            }
        }
Exemple #3
0
        public void Save()
        {
            using (var context = new Arma3BeClientContext())
            {
                context.Settings.AddOrUpdate(
                    new Settings {
                    Id = AdminNameKey, Value = AdminName
                },
                    new Settings {
                    Id = TimeZoneKey, Value = TimeZoneInfo?.Id
                },
                    new Settings {
                    Id = PlayersUpdateKey, Value = PlayersUpdateSeconds.ToString()
                },
                    new Settings {
                    Id = BansUpdateKey, Value = BansUpdateSeconds.ToString()
                },
                    new Settings {
                    Id = BanMessageTemplateKey, Value = BanMessageTemplate
                },
                    new Settings {
                    Id = KickMessageTemplateKey, Value = KickMessageTemplate
                }
                    );

                context.SaveChanges();
                _instance = null;
            }
        }
Exemple #4
0
        public void AddOrUpdate(IEnumerable <Admin> admins, Guid serverId)
        {
            var l   = admins.ToList();
            var ips = l.Select(x => x.IP).ToList();

            using (var context = new Arma3BeClientContext())
            {
                var adminsdb = context.Admins.Where(x => x.ServerId == serverId && ips.Contains(x.IP)).ToList();

                foreach (var admin in l)
                {
                    var db = adminsdb.FirstOrDefault(x => x.IP == admin.IP);
                    if (db == null)
                    {
                        context.Admins.Add(new ModelCompact.Admin
                        {
                            ServerId = serverId,
                            IP       = admin.IP,
                            Port     = admin.Port,
                            Num      = admin.Num
                        });
                    }
                }

                context.SaveChanges();
            }
        }
 public async Task <IEnumerable <PlayerDto> > GetAllPlayersAsync()
 {
     using (var dc = new Arma3BeClientContext())
     {
         return(await dc.Player.ToListAsync());
     }
 }
Exemple #6
0
 private string LoadInternal(string key)
 {
     using (var context = new Arma3BeClientContext())
     {
         return(context.CustomSettings.FirstOrDefault(x => x.Id == key)?.Value);
     }
 }
Exemple #7
0
 public bool HaveChatLogs(Guid serverId)
 {
     using (var dc = new Arma3BeClientContext())
     {
         return(dc.ChatLog.Any(x => x.ServerId == serverId));
     }
 }
Exemple #8
0
 public IEnumerable <ServerInfo> GetNotActiveServerInfo()
 {
     using (var dc = new Arma3BeClientContext())
     {
         return(dc.ServerInfo.Where(x => !x.Active).ToList());
     }
 }
Exemple #9
0
 public IEnumerable <PlayerDto> GetPlayers(IEnumerable <string> guids)
 {
     using (var dc = new Arma3BeClientContext())
     {
         return(dc.Player.Where(x => guids.Contains(x.GUID)).ToList());
     }
 }
Exemple #10
0
 public IEnumerable <ServerInfo> GetServerInfo()
 {
     using (var dc = new Arma3BeClientContext())
     {
         return(dc.ServerInfo.ToList());
     }
 }
Exemple #11
0
 public PlayerDto GetPlayer(string guid)
 {
     using (var dc = new Arma3BeClientContext())
     {
         return(dc.Player.FirstOrDefault(x => x.GUID == guid));
     }
 }
Exemple #12
0
 public IEnumerable <PlayerDto> GetPlayers(Expression <Func <Player, bool> > expression)
 {
     using (var dc = new Arma3BeClientContext())
     {
         return(dc.Player.Where(expression).ToList());
     }
 }
Exemple #13
0
 public IEnumerable <PlayerDto> GetAllPlayers()
 {
     using (var dc = new Arma3BeClientContext())
     {
         return(dc.Player.ToList());
     }
 }
Exemple #14
0
        private static SettingsStore Load()
        {
            using (var context = new Arma3BeClientContext())
            {
                var settings = context.Settings.ToArray();

                var ss = new SettingsStore();
                ss.AdminName = settings.FirstOrDefault(x => x.Id == AdminNameKey)?.Value ?? "Admin";


                ss.BanMessageTemplate = settings.FirstOrDefault(x => x.Id == BanMessageTemplateKey)?.Value ??
                                        "[{AdminName}][{Date} {Time}] {Reason} {Minutes}";
                ss.KickMessageTemplate = settings.FirstOrDefault(x => x.Id == KickMessageTemplateKey)?.Value ??
                                         "[{AdminName}][{Date} {Time}] {Reason}";


                ss.PlayersUpdateSeconds = (settings.FirstOrDefault(x => x.Id == PlayersUpdateKey)?.Value).FromString(5);
                ss.BansUpdateSeconds    = (settings.FirstOrDefault(x => x.Id == BansUpdateKey)?.Value).FromString(5);

                try
                {
                    var zone = settings.FirstOrDefault(x => x.Id == TimeZoneKey)?.Value;
                    ss.TimeZoneInfo = zone != null?TimeZoneInfo.FindSystemTimeZoneById(zone) : TimeZoneInfo.Local;
                }
                catch (Exception)
                {
                    ss.TimeZoneInfo = TimeZoneInfo.Local;
                }

                return(ss);
            }
        }
Exemple #15
0
        public OptionsModel()
        {
            _context = new Arma3BeClientContext();
            _context.ServerInfo.Load();

            Servers = _context.ServerInfo.Local.Select(x => new ServerInfoModel(x)).ToList();
        }
Exemple #16
0
 public void AddOrUpdate(ServerInfo serverInfo)
 {
     using (var dc = new Arma3BeClientContext())
     {
         dc.ServerInfo.AddOrUpdate(serverInfo);
         dc.SaveChanges();
     }
 }
Exemple #17
0
 public IEnumerable <PlayerDto> GetAllPlayersWithoutSteam()
 {
     using (var dc = new Arma3BeClientContext())
     {
         return
             (dc.Player.Where(x => string.IsNullOrEmpty(x.SteamId)).ToArray());
     }
 }
Exemple #18
0
 public Task <BanTime[]> GetBanTimesAsync()
 {
     return(Task.Run(() =>
     {
         using (var dc = new Arma3BeClientContext())
             return dc.BanTimes.ToArray();
     }));
 }
Exemple #19
0
 public Task <string[]> GetImportantWordsAsync()
 {
     return(Task.Run(() =>
     {
         using (var dc = new Arma3BeClientContext())
             return dc.ImportantWords.Select(x => x.Text).ToArray();
     }));
 }
Exemple #20
0
 public void AddOrUpdate(IEnumerable <Ban> bans)
 {
     using (var dc = new Arma3BeClientContext())
     {
         dc.Bans.AddOrUpdate(bans.ToArray());
         dc.SaveChanges();
     }
 }
Exemple #21
0
 public Task <string[]> GetBadNicknamesAsync()
 {
     return(Task.Run(() =>
     {
         using (var dc = new Arma3BeClientContext())
             return dc.BadNicknames.Select(x => x.Text).ToArray();
     }));
 }
Exemple #22
0
 public void AddHistory(List <PlayerHistory> histories)
 {
     using (var dc = new Arma3BeClientContext())
     {
         dc.PlayerHistory.AddOrUpdate(histories.ToArray());
         dc.SaveChanges();
     }
 }
Exemple #23
0
 public IEnumerable <Ban> GetActiveBans(Guid serverId)
 {
     using (var context = new Arma3BeClientContext())
     {
         return
             (context.Bans.Where(x => x.IsActive && x.ServerId == serverId)
              .ToList());
     }
 }
Exemple #24
0
 public void UpdateBanTimes(BanTime[] banTimes)
 {
     using (var dc = new Arma3BeClientContext())
     {
         dc.BanTimes.RemoveRange(dc.BanTimes);
         dc.BanTimes.AddRange(banTimes.Distinct().ToArray());
         dc.SaveChanges();
     }
 }
 public async Task <IEnumerable <ServerInfoDto> > GetNotActiveServerInfoAsync()
 {
     return(await Task.Run(() =>
     {
         using (var dc = new Arma3BeClientContext())
         {
             return dc.ServerInfo.Where(x => !x.Active).Select(ToDto).ToArray();
         }
     }));
 }
Exemple #26
0
        public void AddOrUpdate(IEnumerable <PlayerDto> players)
        {
            var playerList = players.Select(Map).ToArray();

            using (var dc = new Arma3BeClientContext())
            {
                dc.Player.AddOrUpdate(playerList);
                dc.SaveChanges();
            }
        }
Exemple #27
0
 private void SaveInternal(string key, string value)
 {
     using (var context = new Arma3BeClientContext())
     {
         context.CustomSettings.AddOrUpdate(new CustomSettings {
             Id = key, Value = value
         });
         context.SaveChanges();
     }
 }
Exemple #28
0
 public IEnumerable <Ban> GetActivePermBans()
 {
     using (var dc = new Arma3BeClientContext())
     {
         return(dc.Bans
                .Where(x => x.ServerInfo.Active && x.IsActive && x.MinutesLeft == 0)
                .Include(x => x.Player)
                .ToList());
     }
 }
 public async Task <IEnumerable <PlayerDto> > GetPlayersAsync(Expression <Func <Player, bool> > expression)
 {
     return(await Task.Run(() =>
     {
         using (var dc = new Arma3BeClientContext())
         {
             return dc.Player.Where(expression).ToList();
         }
     }));
 }
 public async Task <IEnumerable <PlayerDto> > GetPlayersAsync(IEnumerable <string> guids)
 {
     return(await Task.Run(() =>
     {
         using (var dc = new Arma3BeClientContext())
         {
             return dc.Player.Where(x => guids.Contains(x.GUID)).ToList();
         }
     }));
 }
 public async Task <PlayerDto> GetPlayerAsync(string guid)
 {
     return(await Task.Run(() =>
     {
         using (var dc = new Arma3BeClientContext())
         {
             return dc.Player.FirstOrDefault(x => x.GUID == guid);
         }
     }));
 }
 public Task AddOrUpdateAsync(ServerInfoDto serverInfo)
 {
     return(Task.Run(() =>
     {
         using (var dc = new Arma3BeClientContext())
         {
             dc.ServerInfo.AddOrUpdate(FromDto(serverInfo));
             dc.SaveChanges();
         }
     }));
 }
Exemple #33
0
 public Task AddOrUpdateAsync(IEnumerable <Ban> bans)
 {
     return(Task.Run(() =>
     {
         using (var dc = new Arma3BeClientContext())
         {
             dc.Bans.AddOrUpdate(bans.ToArray());
             dc.SaveChanges();
         }
     }));
 }
Exemple #34
0
 public void SetActive(Guid serverId, bool active = false)
 {
     using (var context = new Arma3BeClientContext())
     {
         var server = context.ServerInfo.FirstOrDefault(x => x.Id == serverId);
         if (server != null)
         {
             server.Active = active;
             context.SaveChanges();
         }
     }
 }
Exemple #35
0
        public void Save()
        {
            using (var context = new Arma3BeClientContext())
            {

                var aname = context.Settings.FirstOrDefault(x => x.Id == AdminNameKey);
                if (aname == null)
                {
                    context.Settings.Add(new Settings() { Id = AdminNameKey, Value = this.AdminName });
                }
                else
                {
                    aname.Value = this.AdminName;
                }

                context.SaveChanges();
                _instance = null;
            }
        }
Exemple #36
0
        public bool RegisterChatMessage(ChatMessage message)
        {
            if (message.Type != ChatMessage.MessageType.Unknown)
            {
                using (var context = new Arma3BeClientContext())
                {
                    context.ChatLog.Add(new ChatLog
                    {
                        Date = message.Date,
                        ServerId = _currentServerId,
                        Text = message.Message
                    });

                    context.SaveChangesAsync();
                }
            }

            return true;
        }
        private void SaveUserComment()
        {
            using (var dc = new Arma3BeClientContext())
            {
                var dbp = dc.Player.FirstOrDefault(x => x.GUID == Player.GUID);
                if (dbp != null)
                {
                    dbp.Comment = Player.Comment;
                    dc.SaveChanges();
                }
            }

            _player = null;
            RaisePropertyChanged("Player");
        }
        public void Refresh()
        {
            using (var context = new Arma3BeClientContext())
            {

                var opts = SelectedOptions.Split(',');

                var searchName = opts.Contains("Name");
                var searchLastNames = opts.Contains("Last Names");
                var searchIP = opts.Contains("IP");
                var searchGuid = opts.Contains("Guid");
                var searchNotes = opts.Contains("Notes");
                var searchComment = opts.Contains("Comment");

                var result = context.Player.AsQueryable();
                if (!string.IsNullOrEmpty(Filter))
                {

                    result = result.Where(x =>
                        (searchGuid && x.GUID == Filter)
                        ||
                        (searchComment && x.Comment.Contains(Filter))
                        ||
                        (searchName && x.Name.Contains(Filter))
                        ||
                        (searchNotes && x.Notes.Any(y => y.Text.Contains(Filter)))

                        ||
                        (searchIP && x.LastIp.Contains(Filter))
                        ||
                        (searchLastNames && x.PlayerHistory.Any(y => y.Name.Contains(Filter)))
                        );
                }

                var r = result.Select(x => new PlayerView()
                {
                    Id = x.Id,
                    Comment = x.Comment,
                    Guid = x.GUID,
                    Name = x.Name,
                    LastIp = x.LastIp,
                    LastSeen = x.LastSeen
                }).OrderBy(x => x.Name).ToList();

                PlayerCount = r.Count;

                _players = r;
            }

            RaisePropertyChanged("Players");
        }