Esempio n. 1
0
 public RankHandler(EnumRankType rankType, int domainId = 0)
 {
     _rankType    = rankType;
     _rankList    = new List <BaseRankEntity>(0);
     _rankLinkDic = new Dictionary <Guid, BaseRankEntity>();
     _domainId    = domainId;
 }
Esempio n. 2
0
        static string GetProcName(EnumRankType rankType)
        {
            string procName = "";

            switch (rankType)
            {
            case EnumRankType.KpiRank:
                procName = "J_Rank_Kpi";
                break;

            case EnumRankType.LevelRank:
                procName = "J_Rank_Level";
                break;

            case EnumRankType.ScoreRank:
                procName = "J_Rank_Score";
                break;

            case EnumRankType.LadderRank:
                procName = "J_Rank_Ladder";
                break;

            case EnumRankType.ArenaRank:
                procName = "J_Arena_GetRankList";
                break;

            case EnumRankType.CrowdRank:
                procName = "J_Rank_Crowd";
                break;

            case EnumRankType.CrossCrowdRank:
                procName = "J_Rank_CrossCrowd";
                break;

            case EnumRankType.CrossLadderRank:
                procName = "J_Rank_CrossLadder";
                break;

            case EnumRankType.CrossLadderDailyRank:
                procName = "J_Rank_CrossLadderDaily";
                break;

            case EnumRankType.CrossDialDailyRank:
                procName = "J_Rank_CrossDialDaily";
                break;

            case EnumRankType.CrossDialWeekRank:
                procName = "J_Rank_CrossDialWeek";
                break;
            }
            return(procName);
        }
Esempio n. 3
0
        public List <BaseRankEntity> GetRankList(EnumRankType rankType, int domainId)
        {
            var procName = GetProcName(rankType);

            if (string.IsNullOrEmpty(procName))
            {
                return(null);
            }
            SqlDatabase database = null;

            if (domainId > 0)
            {
                database = new SqlDatabase(ConnectionFactory.Instance.GetConnectionString(EnumDbType.Support));
            }
            else
            {
                database = new SqlDatabase(ConnectionFactory.Instance.GetDefault());
            }
            DbCommand commandWrapper = database.GetStoredProcCommand(procName);

            database.AddInParameter(commandWrapper, "@RankType", DbType.Int32, (int)rankType);
            if (domainId > 0)
            {
                database.AddInParameter(commandWrapper, "@DomainId", DbType.Int32, domainId);
            }
            using (IDataReader reader = database.ExecuteReader(commandWrapper))
            {
                var list = new List <BaseRankEntity>();
                while (reader.Read())
                {
                    var entity = BuildRankEntity(reader, rankType);
                    if (entity != null)
                    {
                        entity.ManagerId     = (Guid)reader["ManagerId"];
                        entity.Name          = (System.String)reader["Name"];
                        entity.Rank          = Convert.ToInt32(reader["Rank"]);
                        entity.YesterdayRank = Convert.ToInt32(reader["YesterdayRank"]);
                        if (domainId <= 0)
                        {
                            entity.VipLevel = Convert.ToInt32(reader["VipLevel"]);
                        }
                        list.Add(entity);
                    }
                }
                return(list);
            }
        }
Esempio n. 4
0
        static BaseRankEntity BuildRankEntity(IDataReader reader, EnumRankType rankType)
        {
            switch (rankType)
            {
            case EnumRankType.KpiRank:
                return(new RankKpiEntity()
                {
                    Kpi = (System.Int32)reader["Kpi"], Level = (System.Int32)reader["Level"], Logo = (System.String)reader["Logo"]
                });

                break;

            case EnumRankType.LevelRank:
                return(new RankLevelEntity()
                {
                    Exp = (System.Int32)reader["Exp"], Level = (System.Int32)reader["Level"], Logo = (System.String)reader["Logo"]
                });

                break;

            case EnumRankType.ScoreRank:
                return(new RankScoreEntity()
                {
                    Kpi = (System.Int32)reader["Kpi"], Score = (System.Int32)reader["Score"]
                });

                break;

            case EnumRankType.LadderRank:
                return(new RankLadderEntity()
                {
                    Kpi = (System.Int32)reader["Kpi"], Score = (System.Int32)reader["Score"], Logo = (System.String)reader["Logo"]
                });

                break;

            case EnumRankType.ArenaRank:
                return(new RankArenaEntity()
                {
                    Integral = (System.Int32)reader["Integral"],
                    SiteId = (System.String)reader["SiteId"],
                    ZoneName = (System.String)reader["ZoneName"],
                    Logo = (System.String)reader["Logo"]
                });

                break;

            case EnumRankType.CrowdRank:
                return(new RankCrowdEntity()
                {
                    KillCount = (System.Int32)reader["KillNumber"], Score = (System.Int32)reader["Score"]
                });

                break;

            case EnumRankType.CrossCrowdRank:
                return(new RankCrossCrowdEntity()
                {
                    Kpi = (System.Int32)reader["Kpi"], KillCount = (System.Int32)reader["KillNumber"], Score = (System.Int32)reader["Score"], SiteName = (System.String)reader["SiteName"], SiteId = (System.String)reader["SiteId"]
                });

                break;

            case EnumRankType.CrossLadderRank:
                return(new RankCrossLadderEntity()
                {
                    Score = (System.Int32)reader["Score"], SiteName = (System.String)reader["SiteName"], SiteId = (System.String)reader["SiteId"], Kpi = (System.Int32)reader["Kpi"], Logo = (System.String)reader["Logo"]
                });

                break;

            case EnumRankType.CrossLadderDailyRank:
                return(new RankCrossLadderEntity()
                {
                    Score = (System.Int32)reader["NewlyScore"], SiteName = (System.String)reader["SiteName"], SiteId = (System.String)reader["SiteId"]
                });

                break;

            case EnumRankType.CrossDialDailyRank:
                return(new RankDialEntity()
                {
                    Score = (long)reader["Score"], SiteName = (System.String)reader["SiteName"], SiteId = (System.String)reader["SiteId"]
                });

                break;

            case EnumRankType.CrossDialWeekRank:
                return(new RankDialEntity()
                {
                    Score = (long)reader["Score"], SiteName = (System.String)reader["SiteName"], SiteId = (System.String)reader["SiteId"]
                });

                break;
            }
            return(null);
        }
Esempio n. 5
0
        public static List <BaseRankEntity> GetRankList(EnumRankType rankType, int domainId)
        {
            var provider = new RankProvider();

            return(provider.GetRankList(rankType, domainId));
        }