public async Task <IActionResult> Index(Game?game = null, CancellationToken cancellationToken = default) { ViewBag.Description = Localization["WEBFRONT_DESCRIPTION_HOME"]; ViewBag.Title = Localization["WEBFRONT_HOME_TITLE"]; ViewBag.Keywords = Localization["WEBFRONT_KEWORDS_HOME"]; var servers = Manager.GetServers().Where(_server => !game.HasValue || _server.GameName == game); var(clientCount, time) = await _serverDataViewer.MaxConcurrentClientsAsync(token : cancellationToken); var(count, recentCount) = await _serverDataViewer.ClientCountsAsync(token : cancellationToken); var model = new IW4MAdminInfo() { TotalAvailableClientSlots = servers.Sum(_server => _server.MaxClients), TotalOccupiedClientSlots = servers.SelectMany(_server => _server.GetClientsAsList()).Count(), TotalClientCount = count, RecentClientCount = recentCount, MaxConcurrentClients = clientCount ?? 0, MaxConcurrentClientsTime = time ?? DateTime.UtcNow, Game = game, ActiveServerGames = Manager.GetServers().Select(_server => _server.GameName).Distinct().ToArray() }; return(View(model)); }
public async Task <IActionResult> Index(Game?game = null) { ViewBag.Description = "IW4MAdmin is a complete server administration tool for IW4x."; ViewBag.Title = Localization["WEBFRONT_HOME_TITLE"]; ViewBag.Keywords = "IW4MAdmin, server, administration, IW4x, MW2, Modern Warfare 2"; var servers = Manager.GetServers().Where(_server => !game.HasValue ? true : _server.GameName == game); var model = new IW4MAdminInfo() { TotalAvailableClientSlots = servers.Sum(_server => _server.MaxClients), TotalOccupiedClientSlots = servers.SelectMany(_server => _server.GetClientsAsList()).Count(), TotalClientCount = await Manager.GetClientService().GetTotalClientsAsync(), RecentClientCount = await Manager.GetClientService().GetRecentClientCount(), Game = game, ActiveServerGames = Manager.GetServers().Select(_server => _server.GameName).Distinct().ToArray() }; return(View(model)); }