示例#1
0
        public static BaseMatchData CreateMatch(EnumMatchType matchType, Guid homeId, Guid awayId)
        {
            var matchId  = ShareUtil.GenerateComb();
            var stateObj = new BaseMatchData((int)matchType, matchId, homeId, awayId);

            MatchThread.Instance.CreateMatch(stateObj);
            return(stateObj);
        }
示例#2
0
            public void FromXml(string strXml)
            {
                XElement element = XElement.Parse(strXml);

                this.DataItem  = element.Attribute("DataItem").Value;
                this.Source    = new DataSource(element.Attribute("Source").Value);
                this.MatchType = (EnumMatchType)Convert.ToInt32(element.Attribute("MatchType").Value);
            }
示例#3
0
 /// <summary>
 /// 比赛后返回之前的状态
 /// </summary>
 public void ShowMainControl(EnumMatchType matchType)
 {
     switch (matchType)
     {
     default:
         GridTabMain.Children.Clear();
         break;
     }
 }
示例#4
0
 public void ShowMatchPlay(EnumMatchType matchType, Guid matchId, MatchReport match)
 {
     //var form = new MatchView(match);
     //form.ShowDialog();
     //if (form.DialogResult.HasValue && form.DialogResult == true)
     //{
     //    var resultView = new MatchResultControl(matchType,matchId);
     //    ShowMainControl(resultView);
     //}
 }
示例#5
0
 public RobotThread(EnumMatchType matchType)
 {
     _curMatchType         = matchType;
     _endTime              = DateTime.Now;
     _crossRobotManagerDic = new ConcurrentDictionary <Guid, CrossrobotManagerEntity>();
     _timer = new Timer {
         Interval = 10000
     };
     _timer.Elapsed += new ElapsedEventHandler(TimerCallBack);
 }
示例#6
0
        public MessageCode RunHook(EnumMatchType matchType, DateTime endTime)
        {
            var thread = GetThread(matchType);

            if (thread == null)
            {
                return(MessageCode.NbParameterError);
            }
            else
            {
                return(thread.RunHook(endTime));
            }
        }
示例#7
0
        public static double GetWinRate(Guid managerId, EnumMatchType matchType, string siteId = "")
        {
            var matchState = NbMatchstatMgr.GetByManagerAndType(managerId, (int)matchType, siteId);

            if (matchState != null)
            {
                return(matchState.WinRate);
            }
            else
            {
                return(0);
            }
        }
示例#8
0
        public static int GetCdMilSecondsInt(Guid managerId, EnumMatchType matchType)
        {
            var lastTime = MemcachedFactory.MatchMutexClient.Get <DateTime>(BuildKey(managerId, (int)matchType));

            if (lastTime > DateTime.Now)
            {
                var d = lastTime.Subtract(DateTime.Now).TotalMilliseconds;
                return(Convert.ToInt32(d));
            }
            else
            {
                return(-1);
            }
        }
        public static string CombineFieldAndValue(string field, string value, EnumMatchType matchType)
        {
            string result = String.Empty;

            result += "[" + field + "] ";
            switch (matchType)
            {
            case EnumMatchType.Equal:
                result += " = ";
                result += value;
                break;

            case EnumMatchType.NotEqual:
                result += " <> ";
                result += value;
                break;

            case EnumMatchType.Like:
                result += " LIKE ";
                result += " '%' + " + value + " + '%' ";
                break;

            case EnumMatchType.Large:
                result += " > ";
                result += value;
                break;

            case EnumMatchType.LargeEqual:
                result += " >= ";
                result += value;
                break;

            case EnumMatchType.Less:
                result += " < ";
                result += value;
                break;

            case EnumMatchType.LessEqual:
                result += " <= ";
                result += value;
                break;
            }
            return(result);
        }
示例#10
0
        void PushMatch(BaseMatchData matchData, MatchStateCallback callback, object matchState = null)
        {
            EnumMatchType castMatchType = EnumMatchType.None;

            switch ((EnumMatchType)matchData.MatchType)
            {
            case EnumMatchType.Tour:
            case EnumMatchType.TourElite:
            case EnumMatchType.WorldChallenge:
                castMatchType = EnumMatchType.Tour;
                break;

            case EnumMatchType.Ladder:
            case EnumMatchType.Dailycup:
            case EnumMatchType.League:
            case EnumMatchType.Champion:
                castMatchType = (EnumMatchType)matchData.MatchType;
                break;

            case EnumMatchType.Crowd:
            case EnumMatchType.CrossCrowd:
            case EnumMatchType.Peak:
            case EnumMatchType.CrossPeak:
            case EnumMatchType.GuildWar:
                castMatchType = EnumMatchType.Crowd;
                break;

            default:
                castMatchType = EnumMatchType.None;
                break;
            }
            NBThreadPool pool = null;

            if (!s_dicMatchPool.TryGetValue(castMatchType, out pool) || null == pool)
            {
                pool = _poolMatch;
            }
            pool.Add(() => Handle(matchData, callback, matchState));
        }
示例#11
0
 private RobotThread GetThread(EnumMatchType matchType)
 {
     return(GetThread((int)matchType));
 }
示例#12
0
 public void ShowFightInfo(EnumMatchType matchType, Guid param, int stage)
 {
     //var element = new FightInfoControl(matchType, param,stage);
     //ShowMainControl(element);
 }
示例#13
0
 public static void Delete(Guid managerId, EnumMatchType matchType)
 {
     Delete(managerId, (int)matchType);
 }
示例#14
0
 public BaseMatchData(EnumMatchType matchType, Guid matchId, MatchManagerInfo home, MatchManagerInfo away)
     : this((int)matchType, matchId, home, away)
 {
 }
示例#15
0
 public BaseMatchData(EnumMatchType matchType, Guid matchId, Guid homeId, Guid awayId)
     : this((int)matchType, matchId, homeId, awayId)
 {
 }
示例#16
0
        public static MessageCode CreateMatchAsyn(EnumMatchType matchType, Guid matchId, Guid homeId, Guid awayId, MatchThread.MatchCallback callback)
        {
            var stateObj = new BaseMatchData((int)matchType, matchId, homeId, awayId);

            return(CreateMatchAsyn(stateObj, callback));
        }
示例#17
0
 public static void SetCd(Guid managerId, EnumMatchType matchType, int cdTime)
 {
     SetCd(managerId, (int)matchType, cdTime);
 }
示例#18
0
 public static void SaveMatchStat(Guid managerId, EnumMatchType matchType, int win, int lose, int draw, int goals, string siteId = "")
 {
     SaveMatchStat(managerId, (int)matchType, win, lose, draw, goals, siteId);
 }
示例#19
0
 public static void SaveMatchStat(Guid managerId, EnumMatchType matchType, int homeScore, int awayScore, int goals, string siteId = "")
 {
     SaveMatchStat(managerId, (int)matchType, homeScore, awayScore, goals, siteId);
 }
示例#20
0
 void AddThread(EnumMatchType matchType)
 {
     _robotThreadDic.Add((int)matchType, new RobotThread(matchType));
 }
示例#21
0
 public static double GetCdSeconds(Guid managerId, EnumMatchType matchType)
 {
     return(GetCdSeconds(managerId, (int)matchType));
 }
示例#22
0
        public static int GetCdSecondsInt(Guid managerId, EnumMatchType matchType)
        {
            var cd = GetCdSeconds(managerId, (int)matchType);

            return(Convert.ToInt32(cd));
        }
示例#23
0
 public static MessageCode CheckCd(Guid managerId, EnumMatchType matchType, ref double cdTime)
 {
     return(CheckCd(managerId, (int)matchType, ref cdTime));
 }