using System.Diagnostics; using System.IO; using System.Threading; using PatcherServer.Helper; namespace PatcherServer.Services { public class AdminService : IAdminService { #region Implementation of IAdminService public void DeployPatch(FileTranmission info) { info.Download( Path.Combine(DataProvider.PatchfilesFolder, info.GetPatchFileName())); string totalFilePath = Path.Combine(DataProvider.PatchfilesFolder, info.GetPatchFileName()); string totalTorrentPath = Path.Combine(DataProvider.TorrentfilesFolder, info.GetTorrentFileName()); TrackerHelper.CreateTorrent(totalFilePath, totalTorrentPath); Interlocked.CompareExchange(ref DataProvider.MaxVersion, info.Version, DataProvider.MaxVersion); Trace.WriteLine("Deployed Patch. New version: " + info.Version); } public void BannByUsername(string username) { DatabaseHelper.Instance.BannUser(username); Trace.WriteLine("Banned user " + username); } public void BannByCharacterName(string characterName) { string username = DatabaseHelper.Instance.GetUsernameByCharactername(characterName); BannByUsername(username); } public void BannMac(string mac) { DatabaseHelper.Instance.BannMac(mac); Trace.WriteLine("Banned MAC " + mac); } public void SetHashes(string hashes) { DataProvider.Hashes = hashes; Trace.WriteLine("Set hashes."); } public void WhitelistUser(string username) { DatabaseHelper.Instance.WhitelistUser(username); Trace.WriteLine("Whitelisted " + username); } public void BlacklistUser(string username) { DatabaseHelper.Instance.BlacklistUser(username); } public void UnWhitelistUser(string username) { DatabaseHelper.Instance.UnWhitelistUser(username); Trace.WriteLine(username + " got removed from whitelist"); } public void UnBlacklistUser(string username) { DatabaseHelper.Instance.UnWhitelistUser(username); } public void RestUserMacs(string username) { DatabaseHelper.Instance.ResetUserMacs(username); Trace.WriteLine("Reseted MAC's from " + username); } #endregion } }