Exemple #1
0
        public void LoginAgents(List<Agent> agents)
        {
            foreach (var agent in agents)
            {
                AgentConvert agentConvert = new AgentConvert(agent);
                if (!string.IsNullOrEmpty(agent.UrlType))
                {
                    string urlType = agent.UrlType.ToLower();
                    if (urlType == ConstUtil.SBO_AGENT_WEBSITE)
                    {
                        // 代理监视的范围
                        agentVariable.setSBOMemberRange(EnumCollection.eMemberRange.SelectedMember);
                        // 跟注赌注方式
                        agentVariable.setSBOBetAmountStyle(EnumCollection.eBetAmountStyle.MaxBet);
                        agentVariable.setSBOBetAgent(agentConvert);
                    }
                    else if (urlType == ConstUtil.IBC_AGENT_WEBSITE)
                    {
                        // 代理监视的范围
                        agentVariable.setIBCMemberRange(EnumCollection.eMemberRange.SelectedMember);
                        // 跟注赌注方式
                        agentVariable.setIBCBetAmountStyle(EnumCollection.eBetAmountStyle.MaxBet);
                        agentVariable.setIBCBetAgent(agentConvert);
                    }
                }
                else
                {
                    // 代理监视的范围
                    agentVariable.setIBCMemberRange(EnumCollection.eMemberRange.SelectedMember);
                    // 跟注赌注方式
                    agentVariable.setIBCBetAmountStyle(EnumCollection.eBetAmountStyle.MaxBet);
                    agentVariable.setIBCBetAgent(agentConvert);
                }

                AgentSiteAbstractClass agenter = agentConvert.AgentSite;
                agenter.LoginByThread();
                agenter.set_IsAutoReLogin(true);

                AgentTimer agentTimer = new AgentTimer(agentConvert);
                agentTimer.SchedulingTimer();

                if (!timerList.ContainsKey(agent.LoginName))
                {
                    timerList.Add(agent.LoginName, agentTimer);
                }

                CommonFunction.delay(ConstUtil.LOGIN_DELAY_TIME);
            }
        }
Exemple #2
0
        /// <summary>
        /// 下发下注命令过滤器
        /// </summary>
        /// <param name="agent">当前代理对象</param>
        /// <param name="gamer">玩家对象</param>
        /// <param name="betNew">Ghost下注信息</param>
        public static bool DoFilter(AgentConvert agentConvert, MatchBetNew betNew, PlayerConvert gamer,ref int sign)
        {
            bool isFilter = true;
               Member member = agentConvert.AgentSite.get_TargetMemberList().get_Item(betNew.get_MemberName());

               // 保存Agent下的Ghost详细信息
               if (null != member && !string.IsNullOrEmpty(member.get_Name()))
               {
               string name = member.get_Name();
               //List<Member> members = agentConvert.AgentSite.get_MemberCreditList();
               //foreach (var item in members)
               //{
               //    if (null != item && !string.IsNullOrEmpty(item.get_Name()) && name == item.get_Name())
               //    {
               //        member = item;
               //    }
               //}
               if (agentConvert.Ghosts.ContainsKey(name) && agentConvert.Ghosts[name].Gamers.ContainsKey(gamer.Player.LoginName))
               {
                   if (Conversions.ToInteger(betNew.get_BetAmount()) < agentConvert.Ghosts[name].Ghost.RealBetAccount)
                   {
                      sign = 1;
                      return isFilter;
                   }
                   GhostConvert ghostConvert = agentConvert.Ghosts[name];
                   ghostConvert.Member = member;
                   // set gamer bet follow method.
                   if (ghostConvert.Ghost.IsOppositeBet)
                   {
                       ghostConvert.FollowMethod = EnumCollection.eBetFollowMethod.Opposite;
                   }
                   gamer.Member.set_BetFollowMethod(ghostConvert.FollowMethod);
                   isFilter = false;
               }
               }

               return isFilter;
        }
Exemple #3
0
 public AgentListener(AgentConvert agentConvert)
 {
     this.agentConvert = agentConvert;
 }
Exemple #4
0
 /// <summary>
 /// 设置玩家跟注的方式
 /// </summary>
 /// <param name="agentSite">代理网</param>
 /// <param name="gamer">玩家</param>
 private void SetGamerBetFollowMethod(AgentConvert agentConvert, PlayerConvert gamer)
 {
     // 按全局方式跟注
     if (gamer.IsGlobalBetFollowMethod)
     {
         gamer.Member.set_BetFollowMethod(agentConvert.AgentSite.get_TargetMemberList().get_GlobalBetFollowMethod());
     }
     else
     {
         gamer.Member.set_BetFollowMethod(gamer.Member.get_BetFollowMethod());
     }
 }
Exemple #5
0
 /// <summary>
 /// 默认构造方法
 /// </summary>
 public AgentTimer(AgentConvert agent)
 {
     this.agent = agent;
     this.agentRefreshCallback = new TimerCallback(this.AgentRefresh_Tick);
 }
Exemple #6
0
        /// <summary>
        /// 手动跟注
        /// </summary>
        /// /// <param name="betNew">下注数据</param>
        /// <param name="betNew">下注数据</param>
        public void BetFollowAdmin(AgentConvert agent ,MatchBetNew betNew)
        {
            AgentSiteAbstractClass agentSite = agent.AgentSite;
            List<MatchBetNew>  currentMatchLists =  agentSite.get_MatchDetailListCurrent();
            bool flag = false;
            foreach (var matchBetNew in currentMatchLists)
            {
                if (betNew.get_ReceiptID() == matchBetNew.get_ReceiptID())
                {
                    betNew = matchBetNew;
                    flag = true;
                    break;
                }
            }
            if (!flag)
            {
                Console.WriteLine("没有找到相关的赛事。");
                return;
            }
            foreach (var gamer in PlayerVariable.getInstance().getGamerList().Values)
            {
                // 是否跟注
                if (!gamer.Player.IsBetFollowAdmin)
                {
                    return;
                }

                Member member = agentSite.get_TargetMemberList().get_Item(betNew.get_MemberName());
                WebSiteAbstractClass gamerSite = gamer.WebSite;
                WebsiteBetStyle websiteByName = agentSite.get_TargetMemberList().get_DefaultWebsiteBetStyleList().GetWebsiteByName(gamerSite.get_WebsiteName());
                gamerSite.get_BetQueueList().AddNewAgentMemberBet(betNew, agentSite.get_TargetMemberList().get_GlobalFollowOddsOption(), websiteByName.get_BetStyle(), websiteByName.get_BetValue(), gamerSite.get_BetQueueMaxAttempt(), false);
            }
        }
Exemple #7
0
 private void AddNetAgent(string key, AgentConvert agentConvert)
 {
     if (!this.agentList.ContainsKey(key))
     {
         this.agentList.Add(key,agentConvert);
     }
     else
     {
         AgentConvert oldAgent = this.agentList[key];
         oldAgent = agentConvert;
     }
 }
Exemple #8
0
        /// <summary>
        /// 设置代理网站下博彩网下注规则
        /// </summary>
        /// <param name="agentSite"></param>
        public void setWebSiteBetStyleList(AgentConvert agent)
        {
            AgentSiteAbstractClass agentSite = agent.AgentSite;
            EnumCollection.eBetAmountStyle betAmountStyle = EnumCollection.eBetAmountStyle.Fixed;
            EnumCollection.eMemberRange memberRange = EnumCollection.eMemberRange.AllMember;

            if (agentSite is IBCBetAgent)
            {
                betAmountStyle = ibcBetAmountStyle;
                memberRange = ibcMemberRange;
            }
            else if (agentSite is SBOBetAgent)
            {
                betAmountStyle = sboBetAmountStyle;
                memberRange = sboMemberRange;
            }
            else if (agentSite is SB188Agent)
            {
                betAmountStyle = sb188BetAmountStyle;
                memberRange = sb188MemberRange;
            }

            this.styleList.get_SourceList().Add(new WebsiteBetStyle("IBCBet", betAmountStyle));
            this.styleList.get_SourceList().Add(new WebsiteBetStyle("SBOBet", betAmountStyle));
            this.styleList.get_SourceList().Add(new WebsiteBetStyle("SB188Bet", betAmountStyle));

            // 设置跟注的范围
            agentSite.get_TargetMemberList().set_MemberRange(memberRange);

            // 投注约束列表
            agentSite.get_TargetMemberList().get_DefaultWebsiteBetStyleList().AddRemoveWebsiteList(styleList);
            agentSite.get_TargetMemberList().set_GlobalBetFollowMethod(globalBetFollowMethod);

            foreach (var ghost in agent.Ghosts)
            {
                Member member = new Member();
                member.set_Name(ghost.Key);
                agent.AgentSite.get_TargetMemberList().get_MemberList().Add(member);
            }

            //agentSite.get_TargetMemberList().set_IsToShowBetTargetCollection(true);
            //agentSite.get_TargetMemberList().get_DefaultWebsiteBetStyleList().set_IsToShowIndoSpecialBetStyle(true);
            agentSite.get_TargetMemberList().AddRemoveAllMemberWebsiteList();
        }
Exemple #9
0
 /// <summary>
 /// 创建SBO代理对象
 /// </summary>
 /// <param name="agent">代理对象</param>
 public void setSBOBetAgent(AgentConvert agentConvert)
 {
     this._objAgent = agentConvert;
     this.set_objAgent(new SBOBetAgent("SBOBet Agent", null, agentConvert.Agent.Url, agentConvert.Agent.LoginName, agentConvert.Agent.LoginPwd));
     AddNetAgent(agentConvert.Agent.LoginName, _objAgent);
 }
Exemple #10
0
 /// <summary>
 /// 创建SB188代理对象
 /// </summary>
 /// <param name="accountID"></param>
 /// <param name="accountPassword"></param>
 public void setSB188BetAgent(AgentConvert agentConvert)
 {
     this._objAgent = agentConvert;
     this.styleList.get_SourceList().Add(new WebsiteBetStyle("SB188", sb188BetAmountStyle));
     this.set_objAgent(new SB188Agent("SB188 Agent", null, agentConvert.Agent.Url, agentConvert.Agent.LoginName, agentConvert.Agent.LoginPwd));
     AddNetAgent(agentConvert.Agent.LoginName, _objAgent);
 }