public IDictionary <string, object> Get(IServerModel serverModel) { var result = new Dictionary <string, object> { { "success", true } }; var serverAdminNetworkCredential = _serverAdminNetworkCredentialBuilder.Build(); var webClient = new ServerQueryWebClient { Credentials = serverAdminNetworkCredential }; try { var serverStatusResponse = webClient.DownloadString(serverModel.WebAdminBaseUrl); var serverStatus = JsonConvert.DeserializeObject <Dictionary <string, object> >(serverStatusResponse); foreach (var key in serverStatus.Keys) { result.Add(key, serverStatus[key]); } } catch (Exception e) { result["success"] = false; } return(result); }
public bool Send(string serverAdminUrl, string userName, long playerId, string command, bool commandShouldBeAnnouncedOnGameServer) { var result = true; var networkCredential = _serverAdminCredentialBuilder.Build(); var webClient = new ServerQueryWebClient { Credentials = networkCredential }; try { if (commandShouldBeAnnouncedOnGameServer) { webClient.DownloadString(string.Format("{0}?command=Send&rcon={1}", serverAdminUrl, HttpUtility.UrlEncode(string.Format("sv_say {0} ({1}) performing '{2}' from TGNS Portal...", userName, playerId, command)))); Thread.Sleep(3000); } webClient.DownloadString(string.Format("{0}?command=Send&rcon={1}", serverAdminUrl, HttpUtility.UrlEncode(command))); } catch (Exception e) { result = false; } return(result); }