public bool BuyBoCai(KFBuyBocaiData data) { bool result; lock (this.mutex) { string str = this.SetWinInfo(data.BuyValue, data.BuyNum); if (string.IsNullOrEmpty(str)) { result = false; } else { bool flag = true; List <KFBuyBocaiData> itemList; if (this.RoleBuyDict.TryGetValue(data.GetKey(), out itemList)) { KFBuyBocaiData temp = itemList.Find((KFBuyBocaiData x) => x.BuyValue.Equals(data.BuyValue)); if (temp == null) { if (KFBoCaiDbManager.InserBuyBocai(this.OpenData.DataPeriods, data)) { this.OpenData.WinInfo = str; itemList.Add(data); } else { flag = false; } } else { data.BuyNum += temp.BuyNum; if (KFBoCaiDbManager.InserBuyBocai(this.OpenData.DataPeriods, data)) { this.OpenData.WinInfo = str; temp.BuyNum = data.BuyNum; } else { flag = false; } } } else if (KFBoCaiDbManager.InserBuyBocai(this.OpenData.DataPeriods, data)) { itemList = new List <KFBuyBocaiData>(); itemList.Add(data); this.OpenData.WinInfo = str; this.RoleBuyDict.Add(data.GetKey(), itemList); } else { flag = false; } result = flag; } } return(result); }
public bool BuyBoCai(KFBuyBocaiData data) { bool result; lock (this.mutex) { bool flag = false; List <KFBuyBocaiData> itemList; if (this.RoleBuyDict.TryGetValue(data.GetKey(), out itemList)) { KFBuyBocaiData temp = itemList.Find((KFBuyBocaiData x) => x.BuyValue.Equals(data.BuyValue)); if (temp == null) { if (KFBoCaiDbManager.InserBuyBocai(this.OpenData.DataPeriods, data)) { itemList.Add(data); flag = true; } } else { data.BuyNum += temp.BuyNum; if (KFBoCaiDbManager.InserBuyBocai(this.OpenData.DataPeriods, data)) { temp.BuyNum = data.BuyNum; flag = true; } } } else if (KFBoCaiDbManager.InserBuyBocai(this.OpenData.DataPeriods, data)) { itemList = new List <KFBuyBocaiData>(); itemList.Add(data); this.RoleBuyDict.Add(data.GetKey(), itemList); flag = true; } if (flag) { this.OpenData.AllBalance += (long)((double)(data.BuyNum * this.OpenData.XiaoHaoDaiBi) * (1.0 - this.Config.XiTongChouCheng)); } result = flag; } return(result); }
private void StartServerSamePeriods(DateTime time) { try { OpenLottery data; KFBoCaiDbManager.SelectOpenLottery(this.MaxPeriods, (int)this.BoCaiType, out data); List <KFBuyBocaiData> HistoryList; if (null == data) { KFBoCaiDbManager.StopServer(string.Format("[ljl_CaiShuZi_猜数字] 开奖记录读取失败 BoCaiType={1},DataPeriods={0}", this.MaxPeriods, this.BoCaiType)); } else if (!string.IsNullOrEmpty(data.strWinNum)) { if (data.XiaoHaoDaiBi < 1) { data.XiaoHaoDaiBi = this.OpenData.XiaoHaoDaiBi; } this.OpenData = data; this.SetUpToDBOpenData(); this.PeriodsStartTime = DateTime.Parse(TimeUtil.DataTimeToString(time, "yyyy-MM-dd HH:mm:ss")); this.Stage = BoCaiStageEnum.Stage_End; base.KFSendStageData(); base.KFSendPeriodsData(); LogManager.WriteLog(LogTypes.Info, string.Format("[ljl_CaiShuZi_猜数字] 和上期是一期 并且已经开奖 BoCaiType={1},DataPeriods={0}", this.MaxPeriods, this.BoCaiType), null, true); } else if (!KFBoCaiDbManager.LoadBuyHistory((int)this.BoCaiType, this.MaxPeriods, out HistoryList)) { KFBoCaiDbManager.StopServer(string.Format("[ljl_CaiShuZi_猜数字]读取购买记录失败 BoCaiType={1},DataPeriods={0}", this.MaxPeriods, this.BoCaiType)); } else { this.RoleBuyDict = new Dictionary <string, List <KFBuyBocaiData> >(); using (List <KFBuyBocaiData> .Enumerator enumerator = HistoryList.GetEnumerator()) { while (enumerator.MoveNext()) { KFBuyBocaiData item = enumerator.Current; List <KFBuyBocaiData> itemList; if (this.RoleBuyDict.TryGetValue(item.GetKey(), out itemList)) { KFBuyBocaiData temp = itemList.Find((KFBuyBocaiData x) => x.BuyValue.Equals(item.BuyValue)); if (temp == null) { itemList.Add(item); } else { temp.BuyNum += item.BuyNum; } } else { itemList = new List <KFBuyBocaiData>(); itemList.Add(item); this.RoleBuyDict.Add(item.GetKey(), itemList); } } } if (data.XiaoHaoDaiBi < 1) { data.XiaoHaoDaiBi = this.OpenData.XiaoHaoDaiBi; } this.OpenData = data; this.PeriodsStartTime = DateTime.Parse(TimeUtil.DataTimeToString(time, "yyyy-MM-dd HH:mm:ss")); this.SetUpToDBOpenData(); if (DateTime.Parse(this.Config.KaiJiangShiJian) >= time) { this.Stage = BoCaiStageEnum.Stage_Buy; LogManager.WriteLog(LogTypes.Info, string.Format("[ljl_CaiShuZi_猜数字] 和上期是一期 并且没开奖 BoCaiType={1},DataPeriods={0}", this.MaxPeriods, this.BoCaiType), null, true); } else if ((DateTime.Parse("23:59:59") - time).TotalMinutes < 2.0) { this.Stage = BoCaiStageEnum.Stage_Open; this.SetUpToDBOpenData(); LogManager.WriteLog(LogTypes.Info, string.Format("[ljl_CaiShuZi_猜数字] 和上期是一期 状态设置开奖 &&强制开奖 不足2分钟 BoCaiType={1},DataPeriods={0}", this.MaxPeriods, this.BoCaiType), null, true); this.Thread(); } else { this.Stage = BoCaiStageEnum.Stage_Open; LogManager.WriteLog(LogTypes.Info, string.Format("[ljl_CaiShuZi_猜数字] 和上期是一期 状态设置开奖 BoCaiType={1},DataPeriods={0}", this.MaxPeriods, this.BoCaiType), null, true); } base.KFSendStageData(); base.KFSendPeriodsData(); } } catch (Exception ex) { LogManager.WriteLog(LogTypes.Exception, string.Format("[ljl_CaiShuZi_猜数字]{0}", ex.ToString()), null, true); } }