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); } }
/// <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; }
public AgentListener(AgentConvert agentConvert) { this.agentConvert = agentConvert; }
/// <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()); } }
/// <summary> /// 默认构造方法 /// </summary> public AgentTimer(AgentConvert agent) { this.agent = agent; this.agentRefreshCallback = new TimerCallback(this.AgentRefresh_Tick); }
/// <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); } }
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; } }
/// <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(); }
/// <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); }
/// <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); }