Exemplo n.º 1
0
        public PersistBackup GetBackup(string server, string backupName)
        {
            var servers = _config.GetSection("Servers");
            var entry   = servers.GetSection(server);

            if (entry == null)
            {
                return(null);
            }
            PersistBackup backup   = null;
            var           hostName = entry.Key;
            var           password = entry.Value;

            using (var client = new SftpClient(hostName, "arma3-public", password))
            {
                client.Connect();
                if (client.Exists(filePath))
                {
                    var mem = new MemoryStream();
                    client.DownloadFile(filePath, mem);
                    mem.Position = 0;
                    backup       = PersistBackup.Read(mem, client.GetLastWriteTime(filePath), hostName).FirstOrDefault(b => b.Name == backupName);
                }
                client.Disconnect();
            }
            return(backup);
        }
Exemplo n.º 2
0
        /*
         * private async Task<GameItem> GetItem(string name)
         * {
         *  var item = await _context.Items.FirstOrDefaultAsync(i => i.Name == name);
         *  if ( item == null)
         *  {
         *      item = new GameItem()
         *      {
         *          Name = name,
         *          Label = name,
         *          GroupWeight = 1
         *      };
         *      if (name.Contains("100Rnd"))
         *      {
         *          item.GroupWeight = 100;
         *      }
         *      else if (name.Contains("20Rnd"))
         *      {
         *          item.GroupWeight = 20;
         *      }
         *      else if (name.Contains("30Rnd"))
         *      {
         *          item.GroupWeight = 30;
         *      }
         *      else if (name.Contains("17Rnd"))
         *      {
         *          item.GroupWeight = 17;
         *      }
         *      else if (name.Contains("16Rnd"))
         *      {
         *          item.GroupWeight = 16;
         *      }
         *      else if (name.Contains("10Rnd"))
         *      {
         *          item.GroupWeight = 10;
         *      }
         *      _context.Items.Add(item);
         *      await _context.SaveChangesAsync();
         *  }
         *  return item;
         * }
         */
        private List <PersistBackup> DownloadBackup(GameConfig config, DateTime last)
        {
            List <PersistBackup> backup = new List <PersistBackup>();

            using (var client = _service.GetSftpClient(config.Server))
            {
                client.Connect();
                var file = config.ConsoleFileDirectory + "/Users/server/server.vars.Arma3Profile";
                if (client.Exists(file))
                {
                    var dt = client.GetLastWriteTimeUtc(file);
                    if (dt > last)
                    {
                        var bytes = client.ReadAllBytes(file);
                        backup = PersistBackup.Read(new MemoryStream(bytes), dt);
                    }
                }
                client.Disconnect();
            }
            return(backup);
        }
Exemplo n.º 3
0
        public List <PersistBackup> GetBackups()
        {
            var servers = _config.GetSection("Servers");
            var backups = new List <PersistBackup>();

            foreach (var entry in servers.GetChildren())
            {
                var hostName = entry.Key;
                var password = entry.Value;
                using (var client = new SftpClient(hostName, "gamemanager", password))
                {
                    client.Connect();
                    if (client.Exists(filePath))
                    {
                        var mem = new MemoryStream();
                        client.DownloadFile(filePath, mem);
                        mem.Position = 0;
                        backups.AddRange(PersistBackup.Read(mem, client.GetLastWriteTime(filePath), hostName));
                    }
                    client.Disconnect();
                }
            }
            return(backups.OrderByDescending(b => b.LastChange).ToList());
        }