private List <JieriLianXuChargeActivity._AwardInfo> _GetMyActInfoFromDB(GameClient client)
        {
            List <JieriLianXuChargeActivity._AwardInfo> result2;

            if (client == null)
            {
                result2 = null;
            }
            else if (!this.InActivityTime() && !this.InAwardTime())
            {
                result2 = null;
            }
            else
            {
                StringBuilder sb = new StringBuilder();
                sb.Append(client.ClientData.RoleID);
                sb.Append(':').Append(client.ClientData.ZoneID);
                sb.Append(':').Append(this.FromDate.Replace(':', '$'));
                sb.Append(':').Append(this.ToDate.Replace(':', '$'));
                sb.Append(':');
                foreach (JieriLianXuChargeActivity._ChargeLvl cl in this.chargeLvlList)
                {
                    sb.Append(cl.Id).Append('_');
                }
                string[] dbRet = Global.ExecuteDBCmd(13214, sb.ToString(), client.ServerId);
                if (dbRet == null || dbRet.Length != 2)
                {
                    result2 = null;
                }
                else
                {
                    int[] eachDayChargeArr             = this._ParseEachDayCharge(dbRet[0]);
                    Dictionary <int, int> awardFlagDic = this._ParseAwardFlagOfEachLvl(dbRet[1]);
                    List <JieriLianXuChargeActivity._AwardInfo> result = new List <JieriLianXuChargeActivity._AwardInfo>();
                    foreach (JieriLianXuChargeActivity._ChargeLvl cl in this.chargeLvlList)
                    {
                        JieriLianXuChargeActivity._AwardInfo ai = new JieriLianXuChargeActivity._AwardInfo();
                        ai.LianXuDay = this._CalcLianXuChargeDay(eachDayChargeArr, cl.NeedCharge);
                        ai.AwardId   = cl.Id;
                        ai.AwardFlag = 0;
                        if (awardFlagDic.ContainsKey(cl.Id))
                        {
                            ai.AwardFlag = awardFlagDic[cl.Id];
                        }
                        result.Add(ai);
                    }
                    result2 = result;
                }
            }
            return(result2);
        }
        public bool CanGetAnyAward(GameClient client)
        {
            bool result;

            if (client == null || !this.InAwardTime())
            {
                result = false;
            }
            else
            {
                List <JieriLianXuChargeActivity._AwardInfo> myDataLst = this._GetMyActInfoFromDB(client);
                if (myDataLst == null)
                {
                    result = false;
                }
                else
                {
                    using (List <JieriLianXuChargeActivity._AwardInfo> .Enumerator enumerator = myDataLst.GetEnumerator())
                    {
                        while (enumerator.MoveNext())
                        {
                            JieriLianXuChargeActivity._AwardInfo info = enumerator.Current;
                            JieriLianXuChargeActivity._ChargeLvl cl   = this.chargeLvlList.Find((JieriLianXuChargeActivity._ChargeLvl _cl) => _cl.Id == info.AwardId);
                            if (cl == null)
                            {
                                return(false);
                            }
                            foreach (JieriLianXuChargeActivity._DayAward award in cl.AwardList)
                            {
                                if (award.LianXuDay <= info.LianXuDay && Global.GetIntSomeBit(info.AwardFlag, award.LianXuDay) == 0)
                                {
                                    return(true);
                                }
                            }
                        }
                    }
                    result = false;
                }
            }
            return(result);
        }
        public JieriLianXuChargeErrorCode HandleGetAward(GameClient client, int awardId, int day)
        {
            JieriLianXuChargeErrorCode result;

            if (!this.InAwardTime() || client == null)
            {
                result = JieriLianXuChargeErrorCode.NotAwardTime;
            }
            else
            {
                JieriLianXuChargeActivity._ChargeLvl cl = this.chargeLvlList.Find((JieriLianXuChargeActivity._ChargeLvl _cl) => _cl.Id == awardId);
                if (cl == null)
                {
                    result = JieriLianXuChargeErrorCode.ConfigError;
                }
                else
                {
                    JieriLianXuChargeActivity._DayAward da = cl.AwardList.Find((JieriLianXuChargeActivity._DayAward _da) => _da.LianXuDay == day);
                    if (da == null)
                    {
                        result = JieriLianXuChargeErrorCode.ConfigError;
                    }
                    else
                    {
                        List <JieriLianXuChargeActivity._AwardInfo> myDataLst = this._GetMyActInfoFromDB(client);
                        if (myDataLst == null)
                        {
                            result = JieriLianXuChargeErrorCode.DBFailed;
                        }
                        else
                        {
                            JieriLianXuChargeActivity._AwardInfo info = myDataLst.Find((JieriLianXuChargeActivity._AwardInfo _info) => _info.AwardId == awardId);
                            if (info == null)
                            {
                                result = JieriLianXuChargeErrorCode.ConfigError;
                            }
                            else if (info.LianXuDay < day || Global.GetIntSomeBit(info.AwardFlag, day) == 1)
                            {
                                result = JieriLianXuChargeErrorCode.NotMeetAwardCond;
                            }
                            else
                            {
                                if (da.AwardGoods != null && da.AwardGoods.GoodsDataList != null && da.AwardGoods.GoodsDataList.Count > 0)
                                {
                                    int AwardGoodsCnt = da.AwardGoods.GoodsDataList.Count((GoodsData goods) => Global.IsRoleOccupationMatchGoods(client, goods.GoodsID));
                                    if (!Global.CanAddGoodsNum(client, AwardGoodsCnt))
                                    {
                                        return(JieriLianXuChargeErrorCode.NoBagSpace);
                                    }
                                }
                                int newAwardFlag = Global.SetIntSomeBit(day, info.AwardFlag, true);
                                if (!this._UpdateAwardFlag2DB(client, awardId, newAwardFlag))
                                {
                                    result = JieriLianXuChargeErrorCode.DBFailed;
                                }
                                else
                                {
                                    info.AwardFlag = newAwardFlag;
                                    base.GiveAward(client, da.AwardGoods);
                                    if (client._IconStateMgr.CheckJieriLianXuCharge(client))
                                    {
                                        client._IconStateMgr.AddFlushIconState(14000, client._IconStateMgr.IsAnyJieRiTipActived());
                                        client._IconStateMgr.SendIconStateToClient(client);
                                    }
                                    result = JieriLianXuChargeErrorCode.Success;
                                }
                            }
                        }
                    }
                }
            }
            return(result);
        }