コード例 #1
0
ファイル: UserAccounts.cs プロジェクト: dom426/IodemBot
        public static UserAccount[] GetTop(int number, Modules.Misc.RankEnum type = Modules.Misc.RankEnum.Level)
        {
            var sortedList = accounts.OrderByDescending(d => d.XP).ToList();

            switch (type)
            {
            case (Modules.Misc.RankEnum.Solo):
                sortedList = accounts.OrderByDescending(d => d.ServerStats.ColossoHighestRoundEndlessSolo).ToList();
                break;

            case (Modules.Misc.RankEnum.Duo):
                sortedList = accounts.Where(p => p.ServerStats.ColossoHighestRoundEndlessDuo > 0)
                             .GroupBy(p => p.ServerStats.ColossoHighestRoundEndlessDuoNames)
                             .Select(group => group.First())
                             .OrderByDescending(d => d.ServerStats.ColossoHighestRoundEndlessDuo)
                             .ToList();
                break;

            case (Modules.Misc.RankEnum.Trio):
                sortedList = accounts.Where(p => p.ServerStats.ColossoHighestRoundEndlessTrio > 0)
                             .GroupBy(p => p.ServerStats.ColossoHighestRoundEndlessTrioNames)
                             .Select(group => group.First())
                             .OrderByDescending(d => d.ServerStats.ColossoHighestRoundEndlessTrio)
                             .ToList();
                break;

            case (Modules.Misc.RankEnum.Quad):
                sortedList = accounts.Where(d => d.ServerStats.ColossoHighestRoundEndlessQuad > 0)
                             .GroupBy(p => p.ServerStats.ColossoHighestRoundEndlessQuadNames)
                             .Select(group => group.First())
                             .OrderByDescending(d => d.ServerStats.ColossoHighestRoundEndlessQuad)
                             .ToList();
                break;

            default: break;
            }
            return(sortedList.Take(Math.Min(sortedList.Count(), 10)).ToArray());
        }
コード例 #2
0
ファイル: UserAccounts.cs プロジェクト: dom426/IodemBot
        public static int GetRank(SocketUser user, Modules.Misc.RankEnum type = Modules.Misc.RankEnum.Level)
        {
            var account    = GetAccount(user);
            var sortedList = accounts.OrderByDescending(d => d.XP).ToList();

            switch (type)
            {
            case (Modules.Misc.RankEnum.Solo):
                sortedList = accounts.OrderByDescending(d => d.ServerStats.ColossoHighestRoundEndlessSolo).ToList();
                break;

            case (Modules.Misc.RankEnum.Duo):
                sortedList = accounts.Where(p => p.ServerStats.ColossoHighestRoundEndlessDuo > 0)
                             .GroupBy(p => p.ServerStats.ColossoHighestRoundEndlessDuoNames)
                             .Select(group => group.First())
                             .OrderByDescending(d => d.ServerStats.ColossoHighestRoundEndlessDuo)
                             .ToList();
                break;

            case (Modules.Misc.RankEnum.Trio):
                sortedList = accounts.Where(p => p.ServerStats.ColossoHighestRoundEndlessTrio > 0)
                             .GroupBy(p => p.ServerStats.ColossoHighestRoundEndlessTrioNames)
                             .Select(group => group.First())
                             .OrderByDescending(d => d.ServerStats.ColossoHighestRoundEndlessTrio)
                             .ToList();
                break;

            case (Modules.Misc.RankEnum.Quad):
                sortedList = accounts.Where(d => d.ServerStats.ColossoHighestRoundEndlessQuad > 0)
                             .GroupBy(p => p.ServerStats.ColossoHighestRoundEndlessQuadNames)
                             .Select(group => group.First())
                             .OrderByDescending(d => d.ServerStats.ColossoHighestRoundEndlessQuad)
                             .ToList();
                break;
            }
            return(sortedList.IndexOf(account));
        }