public ActionResult Index() { var serverModels = _serverGetter.Get(); var serverCurrentInfos = serverModels.Select(GetServerCurrentInfo); var serverInfoViewModel = new ServerInfoViewModel(serverCurrentInfos); return(View(serverInfoViewModel)); }
private void ForceBanSync() { var serverModels = _serverGetter.Get(); foreach (var serverModel in serverModels) { _serverAdminCommandSender.Send(serverModel.WebAdminBaseUrl, UserName, PlayerId, "sh_forcebansync", false); } }
public ActionResult Restart(int serverId) { var server = _serverGetter.Get().Single(x => x.ID.Equals(serverId)); if (PlayerQualifies) { var cacheKey = string.Format("{0}RestartedWhen{1}", UserName, server.ID); var whenLastRestarted = Convert.ToDateTime(HttpContext.Cache[cacheKey] ?? DateTime.MinValue); if (whenLastRestarted <= DateTime.Now.AddMinutes(-2)) { var serverCurrentInfoDictionary = _serverCurrentInfoDictionaryDictionaryGetter.Get(server); if (!(bool)serverCurrentInfoDictionary["success"]) { Thread.Sleep(5000); serverCurrentInfoDictionary = _serverCurrentInfoDictionaryDictionaryGetter.Get(server); if (!(bool)serverCurrentInfoDictionary["success"]) { Thread.Sleep(5000); serverCurrentInfoDictionary = _serverCurrentInfoDictionaryDictionaryGetter.Get(server); if (!(bool)serverCurrentInfoDictionary["success"]) { _serverProcessCommandSender.Restart(serverId); TempData["Success"] = string.Format("Restart performed on {0}.", server.Name); HttpContext.Cache[cacheKey] = DateTime.Now; } else { TempData["Error"] = "Server queried successfully. Restart halted."; } } else { TempData["Error"] = "Server queried successfully. Restart halted."; } } else { TempData["Error"] = "Server queried successfully. Restart halted."; } } else { TempData["Error"] = string.Format("Wait before again restarting {0}.", server.Name); } } else { TempData["Error"] = "You are not qualified to use this command. Restart halted."; } return(RedirectToAction("Restart")); }
protected override string GetResponseJson(string realmName, HttpRequest request, MySqlConnection connection) { var serverSimpleName = Convert.ToString(request["s"]); var shouldAnnounce = Convert.ToBoolean(request["a"]); var command = Convert.ToString(request["c"]); var timeToRestart = Convert.ToInt32(request["t"]); var serverModels = _serverGetter.Get(); var serverModel = serverModels.Single(x => x.Name.Equals(serverSimpleName)); _serverAdminCommandSender.Send(serverModel.WebAdminBaseUrl, "Portal", 0, command, shouldAnnounce); if (timeToRestart > 0) { new Thread(() => { Thread.CurrentThread.IsBackground = true; Thread.Sleep(timeToRestart * 1000); _serverProcessCommandSender.Restart(serverModel.InstanceIndex); }).Start(); } var result = JsonConvert.SerializeObject(new Dictionary <string, object> { { "success", true } }); return(result); }
public JsonResult SearchPlayers(string q) { var players = new List <IServerPlayer>(); var serverModels = _serverGetter.Get(); foreach (var serverModel in serverModels) { var serverCurrentInfoDictionary = _serverCurrentInfoDictionaryGetter.Get(serverModel); var serverCurrentInfo = _serverCurrentInfoAdapter.Adapt(serverCurrentInfoDictionary); players.AddRange(serverCurrentInfo.Players); } var recentPlayers = _recentPlayersGetter.Get("ns2").ToList(); foreach (var player in players) { if (!recentPlayers.Any(x => Equals(x.Id, player.PlayerId))) { recentPlayers.Add(new BucketPlayer(player.PlayerName, player.PlayerId)); } } var resultData = recentPlayers.Where(x => x.Name.ToLower().Contains(q.ToLower())).Select(x => new { name = x.Name, id = x.Id }).ToList(); var result = Json(resultData, JsonRequestBehavior.AllowGet); return(result); }
public ActionResult IsOnTheGameServer() { var isOnTheGameServer = false; var serverModels = _serverGetter.Get(); foreach (var serverModel in serverModels) { var serverCurrentInfoDictionary = _serverCurrentInfoDictionaryGetter.Get(serverModel); var serverCurrentInfo = _serverCurrentInfoAdapter.Adapt(serverCurrentInfoDictionary); if (serverCurrentInfo.Players.Any(x => x.PlayerId.Equals(PlayerId))) { isOnTheGameServer = true; } } var result = Json(isOnTheGameServer, JsonRequestBehavior.AllowGet); return(result); }