Пример #1
0
        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));
        }
Пример #2
0
        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));
        }