コード例 #1
0
        public Match_FightinfoResponse GetLeagueFightInfo(Guid matchId, Guid managerId)
        {
            LeagueEncounterEntity matchInfo = LeagueEncounterMgr.GetById(matchId);

            DicNpcEntity homeNpc = null;
            DicNpcEntity awayNpc = null;

            if (matchInfo.HomeIsNpc)
            {
                homeNpc = CacheFactory.NpcdicCache.GetNpc(matchInfo.HomeId);
            }
            if (matchInfo.AwayIsNpc)
            {
                awayNpc = CacheFactory.NpcdicCache.GetNpc(matchInfo.AwayId);
            }

            DTOBuffMemberView homeView, awayView;

            BuffDataCore.Instance().GetMembers(out homeView, out awayView,
                                               "", matchInfo.HomeId, matchInfo.HomeIsNpc, "", matchInfo.AwayId, matchInfo.AwayIsNpc, true, false);

            Match_FightManagerinfo home, away;

            if (matchInfo.HomeIsNpc)
            {
                home = MatchDataHelper.GetFightinfo(homeNpc, homeView);
            }
            else
            {
                home = MatchDataHelper.GetFightinfo(matchInfo.HomeId, false, homeView, "");
            }
            if (matchInfo.AwayIsNpc)
            {
                away = MatchDataHelper.GetFightinfo(awayNpc, awayView);
            }
            else
            {
                away = MatchDataHelper.GetFightinfo(matchInfo.AwayId, false, awayView, "");
            }
            if (home == null || away == null)
            {
                return(ResponseHelper.Create <Match_FightinfoResponse>(MessageCode.NbParameterError));
            }

            var response = ResponseHelper.CreateSuccess <Match_FightinfoResponse>();

            response.Data      = new Match_Fightinfo();
            response.Data.Home = home;
            response.Data.Away = away;
            return(response);
        }
コード例 #2
0
        /// <summary>
        /// GetById
        /// </summary>
        /// <param name="matchId">matchId</param>
        /// <returns>LeagueEncounterEntity</returns>
        /// <remarks>2016-06-03 19:54:14</remarks>
        public LeagueEncounterEntity GetById(System.Guid matchId)
        {
            var database = new SqlDatabase(this.ConnectionString);

            DbCommand commandWrapper = database.GetStoredProcCommand("P_LeagueEncounter_GetById");

            database.AddInParameter(commandWrapper, "@MatchId", DbType.Guid, matchId);


            LeagueEncounterEntity obj = null;

            using (IDataReader reader = database.ExecuteReader(commandWrapper))
            {
                if (reader.Read())
                {
                    obj = LoadSingleRow(reader);
                }
            }
            return(obj);
        }
コード例 #3
0
        /// <summary>
        /// 带事务的Update
        /// </summary>
        /// <param name="entity"></param>
        /// <param name="trans">The trans.</param>
        /// <returns></returns>
        /// <remarks>2016-06-03 19:54:14</remarks>
        public bool Update(LeagueEncounterEntity entity, DbTransaction trans = null)
        {
            var       database       = new SqlDatabase(this.ConnectionString);
            DbCommand commandWrapper = database.GetStoredProcCommand("dbo.P_LeagueEncounter_Update");

            database.AddInParameter(commandWrapper, "@MatchId", DbType.Guid, entity.MatchId);
            database.AddInParameter(commandWrapper, "@LeagueRecordId", DbType.Guid, entity.LeagueRecordId);
            database.AddInParameter(commandWrapper, "@HomeName", DbType.AnsiString, entity.HomeName);
            database.AddInParameter(commandWrapper, "@AwayName", DbType.AnsiString, entity.AwayName);
            database.AddInParameter(commandWrapper, "@WheelNumber", DbType.Int32, entity.WheelNumber);
            database.AddInParameter(commandWrapper, "@HomeId", DbType.Guid, entity.HomeId);
            database.AddInParameter(commandWrapper, "@AwayId", DbType.Guid, entity.AwayId);
            database.AddInParameter(commandWrapper, "@HomeIsNpc", DbType.Boolean, entity.HomeIsNpc);
            database.AddInParameter(commandWrapper, "@AwayIsNpc", DbType.Boolean, entity.AwayIsNpc);
            database.AddInParameter(commandWrapper, "@IsMatch", DbType.Boolean, entity.IsMatch);
            database.AddInParameter(commandWrapper, "@ReMatched", DbType.Boolean, entity.ReMatched);
            database.AddInParameter(commandWrapper, "@Confirmed", DbType.Boolean, entity.Confirmed);
            database.AddInParameter(commandWrapper, "@HomeGoals", DbType.Int32, entity.HomeGoals);
            database.AddInParameter(commandWrapper, "@AwayGoals", DbType.Int32, entity.AwayGoals);
            database.AddInParameter(commandWrapper, "@UpdateTime", DbType.DateTime, entity.UpdateTime);
            database.AddInParameter(commandWrapper, "@RowTime", DbType.DateTime, entity.RowTime);


            int results = 0;

            if (trans != null)
            {
                results = database.ExecuteNonQuery(commandWrapper, trans);
            }
            else
            {
                results = database.ExecuteNonQuery(commandWrapper);
            }

            entity.MatchId = (System.Guid)database.GetParameterValue(commandWrapper, "@MatchId");

            return(Convert.ToBoolean(results));
        }
コード例 #4
0
        /// <summary>
        /// 将IDataReader的当前记录读取到LeagueEncounterEntity 对象
        /// </summary>
        /// <param name="reader"></param>
        /// <returns></returns>
        public LeagueEncounterEntity LoadSingleRow(IDataReader reader)
        {
            var obj = new LeagueEncounterEntity();

            obj.MatchId        = (System.Guid)reader["MatchId"];
            obj.LeagueRecordId = (System.Guid)reader["LeagueRecordId"];
            obj.HomeName       = (System.String)reader["HomeName"];
            obj.AwayName       = (System.String)reader["AwayName"];
            obj.WheelNumber    = (System.Int32)reader["WheelNumber"];
            obj.HomeId         = (System.Guid)reader["HomeId"];
            obj.AwayId         = (System.Guid)reader["AwayId"];
            obj.HomeIsNpc      = (System.Boolean)reader["HomeIsNpc"];
            obj.AwayIsNpc      = (System.Boolean)reader["AwayIsNpc"];
            obj.IsMatch        = (System.Boolean)reader["IsMatch"];
            obj.ReMatched      = (System.Boolean)reader["ReMatched"];
            obj.Confirmed      = (System.Boolean)reader["Confirmed"];
            obj.HomeGoals      = (System.Int32)reader["HomeGoals"];
            obj.AwayGoals      = (System.Int32)reader["AwayGoals"];
            obj.UpdateTime     = (System.DateTime)reader["UpdateTime"];
            obj.RowTime        = (System.DateTime)reader["RowTime"];

            return(obj);
        }
コード例 #5
0
        public static bool Insert(LeagueEncounterEntity leagueEncounterEntity, DbTransaction trans = null, string zoneId = "")
        {
            var provider = new LeagueEncounterProvider(zoneId);

            return(provider.Insert(leagueEncounterEntity, trans));
        }
コード例 #6
0
ファイル: TeammemberTest.cs プロジェクト: cool8868/H5Nball
        public void Test5()
        {
            //获取球队列表
            var npcTeamList = CacheFactory.LeagueCache.GetLeagueTeam(1);
            int round       = npcTeamList.Count * 2;                          //总回合数

            List <Guid> allGuidList = new List <Guid>(npcTeamList.Count + 1); //当前联赛的所有球队,包括玩家
            var         managerId   = new Guid("f94334e2-1c6d-41bf-a2e5-a57700b4b76a");
            var         manager     = ManagerCore.Instance.GetManager(managerId);

            if (manager == null)
            {
                return;
            }

            allGuidList.Add(managerId);                 //将玩家信息加入需分组队列
            for (int i = 0; i < npcTeamList.Count; i++) //生成NPC guid
            {
                allGuidList.Add(ShareUtil.GenerateComb());
            }
            //生成所有配对索引组合
            var allTeamIndex = new List <int>();

            for (int i = 0; i < npcTeamList.Count + 1; i++)//所有需要分组的队伍Index
            {
                allTeamIndex.Add(i);
            }
            var allPairList = new List <KeyValuePair <int, int> >();

            DoubleComposition(allTeamIndex, ref allPairList);//计算出所有配对组合

            //生成所有轮配对
            var roundPair       = new Dictionary <int, List <LeagueEncounterEntity> >();
            var allUsedPairList = new List <KeyValuePair <int, int> >();//所有轮中使用的键值对

            for (int i = 0; i < round; i++)
            {
                int roundId = i + 1;//轮数从1开始
                //本轮已使用的键值对
                var currectUsedPairList = new List <KeyValuePair <int, int> >();
                for (int j = 0; j < allGuidList.Count / 2; j++)
                {
                    var homeId = allGuidList[0];
                    var awayId = allGuidList[0];
                    var key    = new KeyValuePair <int, int>();

                    //主队和客队不能相同 如果当前匹配在本组中已经有,或者在其他轮中已经存在则继续
                    while (homeId == awayId || allUsedPairList.Contains(key))
                    {
                        key    = getNewKeyValue(allPairList, currectUsedPairList, allUsedPairList);
                        homeId = allGuidList[key.Key];
                        awayId = allGuidList[key.Value];

                        //当前匹配不在已有轮
                        while (homeId == awayId || allUsedPairList.Contains(key))
                        {
                            key    = getNewKeyValue(allPairList, currectUsedPairList, allUsedPairList);
                            homeId = allGuidList[key.Key];
                            awayId = allGuidList[key.Value];
                        }
                    }
                    currectUsedPairList.Add(key);
                    allUsedPairList.Add(key);

                    var entity = new LeagueEncounterEntity();
                    entity.MatchId     = Guid.NewGuid();
                    entity.HomeId      = allGuidList[key.Key];
                    entity.AwayId      = allGuidList[key.Value];
                    entity.WheelNumber = roundId;

                    entity.HomeIsNpc = homeId != managerId;
                    entity.AwayIsNpc = awayId != managerId;
                    entity.HomeName  = entity.HomeIsNpc ? npcTeamList[key.Key - 1].TeamName : manager.Name;
                    entity.AwayName  = entity.AwayIsNpc ? npcTeamList[key.Value - 1].TeamName : manager.Name;


                    //entity.LaegueRecordId = laegueRecordId;

                    if (!roundPair.ContainsKey(roundId))
                    {
                        roundPair.Add(roundId, new List <LeagueEncounterEntity>());
                    }
                    roundPair[roundId].Add(entity);
                }
            }
            var x = roundPair;


            //var x = result1List;
            //var y = result2List;
        }