Beispiel #1
0
        // GET: /<controller>/
        public async Task <IActionResult> Index()
        {
            var partyList = new List <PartyStatistics>();
            int players   = 0;

            var parties = await _cache.GetAsync <Dictionary <string, string> >("ConnectionIndex") ?? new Dictionary <string, string>();

            foreach (var partyName in parties.Select(t => t.Value).Distinct().ToList())
            {
                var party = await _cache.GetAsync <PartyModel>($"party:{partyName}");

                if (party != null)
                {
                    PartyStatistics partyStats = new PartyStatistics {
                    };
                    partyStats.Players = party.Players.Select(t => t.Character.Name).ToList();
                    partyList.Add(partyStats);
                    players += partyStats.Players.Count;
                }
            }


            var response = new
            {
                totalParties = partyList.Count(),
                totalPlayers = players,
                Parties      = partyList
            };

            return(Ok(response));
        }
        public async Task <IActionResult> Index()
        {
            var partyList = new List <PartyStatistics>();

            int players = 0;

            var connections = await _redisRepository.GetAllConnections();

            if (connections != null)
            {
                foreach (var connection in connections.GroupBy(t => t.PartyName).ToList())
                {
                    if (connection.Key != null)
                    {
                        var party = await _redisRepository.GetParty(connection.Key);

                        if (party != null)
                        {
                            PartyStatistics partyStats = new PartyStatistics {
                            };
                            partyStats.Players = party.Players.Select(t => t.Character.Name).ToList();
                            partyList.Add(partyStats);
                            players += partyStats.Players.Count;
                        }
                    }
                }
            }

            var statuses = await _redisRepository.GetAllLeaguesLadders();

            if (statuses == null)
            {
                statuses = new List <LadderStoreModel>();
            }

            var response = new
            {
                totalParties = partyList.Count(),
                totalPlayers = players,
                leagues      = statuses.Select(t => new { t.Name, t.Running, t.Finished, t.Started }).OrderByDescending(t => t.Finished).Select(x => new {
                    Name     = x.Name,
                    Running  = x.Running,
                    Started  = x.Started.ToString("yyyy-MM-dd HH:mm:ss"),
                    Finished = x.Finished.ToString("yyyy-MM-dd HH:mm:ss")
                }),
                parties = partyList,
            };

            return(Ok(response));
        }
Beispiel #3
0
        public async Task <IActionResult> Index()
        {
            var partyList = new List <PartyStatistics>();
            int players   = 0;

            var parties = ConnectionStore.ConnectionIndex ?? new Dictionary <string, ConnectionModel>();

            foreach (var partyName in parties.Select(t => t.Value.PartyName).Distinct().ToList())
            {
                if (partyName != null)
                {
                    var party = await _cache.GetAsync <PartyModel>($"party:{partyName}");

                    PartyStatistics partyStats = new PartyStatistics {
                    };
                    partyStats.Players = party.Players.Select(t => t.Character.Name).ToList();
                    partyList.Add(partyStats);
                    players += partyStats.Players.Count;
                }
            }

            var statuses = LadderStore.GeAllLadderStatuses();

            var response = new
            {
                totalParties = partyList.Count(),
                totalPlayers = players,
                parties      = partyList,
                leagues      = statuses.OrderByDescending(t => t.Value.Finished).Select(x => new {
                    Name     = x.Key,
                    Running  = x.Value.Running,
                    Started  = x.Value.Started.ToString("yyyy-MM-dd HH:mm:ss"),
                    Finished = x.Value.Finished.ToString("yyyy-MM-dd HH:mm:ss")
                })
            };

            return(Ok(response));
        }