示例#1
0
        /// <summary>
        /// 带事务的Update
        /// </summary>
        /// <param name="entity"></param>
        /// <param name="trans">The trans.</param>
        /// <returns></returns>
        /// <remarks>2016/9/28 13:30:42</remarks>
        public bool Update(PenaltykickSeasonEntity entity, DbTransaction trans = null)
        {
            var       database       = new SqlDatabase(this.ConnectionString);
            DbCommand commandWrapper = database.GetStoredProcCommand("dbo.P_PenaltykickSeason_Update");

            database.AddInParameter(commandWrapper, "@Idx", DbType.Int32, entity.Idx);
            database.AddInParameter(commandWrapper, "@StartTime", DbType.DateTime, entity.StartTime);
            database.AddInParameter(commandWrapper, "@EndTime", DbType.DateTime, entity.EndTime);
            database.AddInParameter(commandWrapper, "@IsPrize", DbType.Boolean, entity.IsPrize);
            database.AddInParameter(commandWrapper, "@PrizeTime", DbType.DateTime, entity.PrizeTime);


            int results = 0;

            if (trans != null)
            {
                results = database.ExecuteNonQuery(commandWrapper, trans);
            }
            else
            {
                results = database.ExecuteNonQuery(commandWrapper);
            }


            return(Convert.ToBoolean(results));
        }
示例#2
0
        /// <summary>
        /// 将IDataReader的当前记录读取到PenaltykickSeasonEntity 对象
        /// </summary>
        /// <param name="reader"></param>
        /// <returns></returns>
        public PenaltykickSeasonEntity LoadSingleRow(IDataReader reader)
        {
            var obj = new PenaltykickSeasonEntity();

            obj.Idx       = (System.Int32)reader["Idx"];
            obj.StartTime = (System.DateTime)reader["StartTime"];
            obj.EndTime   = (System.DateTime)reader["EndTime"];
            obj.IsPrize   = (System.Boolean)reader["IsPrize"];
            obj.PrizeTime = (System.DateTime)reader["PrizeTime"];

            return(obj);
        }
示例#3
0
 private void InitActivity()
 {
     _seasonInfo = PenaltykickSeasonMgr.GetSeason();
     if (_seasonInfo == null)
     {
         _seasonInfo = new PenaltykickSeasonEntity(0, ConvertHelper.StringToDateTime("2000-01-01"), ConvertHelper.StringToDateTime("2000-01-01"), true, DateTime.Now);
     }
     if (!IsActivity && !_seasonInfo.IsPrize)
     {
         //SetRank();
         //开始发奖
         SendPrize(_seasonInfo);
     }
 }
示例#4
0
        /// <summary>
        /// GetSeason
        /// </summary>

        /// <returns>PenaltykickSeasonEntity</returns>
        /// <remarks>2016/9/28 13:30:42</remarks>
        public PenaltykickSeasonEntity GetSeason()
        {
            var database = new SqlDatabase(this.ConnectionString);

            DbCommand commandWrapper = database.GetStoredProcCommand("C_PenaltyKickSeason_GetSeason");



            PenaltykickSeasonEntity obj = null;

            using (IDataReader reader = database.ExecuteReader(commandWrapper))
            {
                if (reader.Read())
                {
                    obj = LoadSingleRow(reader);
                }
            }
            return(obj);
        }
示例#5
0
        /// <summary>
        /// GetById
        /// </summary>
        /// <param name="idx">idx</param>
        /// <returns>PenaltykickSeasonEntity</returns>
        /// <remarks>2016/9/28 13:30:42</remarks>
        public PenaltykickSeasonEntity GetById(System.Int32 idx)
        {
            var database = new SqlDatabase(this.ConnectionString);

            DbCommand commandWrapper = database.GetStoredProcCommand("P_PenaltykickSeason_GetById");

            database.AddInParameter(commandWrapper, "@Idx", DbType.Int32, idx);


            PenaltykickSeasonEntity obj = null;

            using (IDataReader reader = database.ExecuteReader(commandWrapper))
            {
                if (reader.Read())
                {
                    obj = LoadSingleRow(reader);
                }
            }
            return(obj);
        }
        public static bool Update(PenaltykickSeasonEntity penaltykickSeasonEntity, DbTransaction trans = null, string zoneId = "")
        {
            var provider = new PenaltykickSeasonProvider(zoneId);

            return(provider.Update(penaltykickSeasonEntity, trans));
        }
示例#7
0
        private MessageCode SendPrize(PenaltykickSeasonEntity seasonInfo)
        {
            if (seasonInfo.Idx == 0)
            {
                return(MessageCode.Success);
            }
            PenaltykickManagerMgr.SetRank();
            var prizeList = PenaltykickManagerMgr.GetNotPrize(seasonInfo.Idx);

            seasonInfo.IsPrize   = true;
            seasonInfo.PrizeTime = DateTime.Now;
            foreach (var item in prizeList)
            {
                if (item.IsPrize || item.TotalScore < 500)
                {
                    continue;
                }
                item.IsPrize = true;
                //排名奖励
                var prize = CacheFactory.AdCache.GetPrize(3, item.Rank);
                if (prize == null || prize.Count == 0)
                {
                    continue;
                }
                //邮件
                var mail = new MailBuilder(item.Rank, item.ManagerId);
                foreach (var p in prize)
                {
                    switch (p.ItemType)
                    {
                    case 3:    //暂时只有物品奖励
                        mail.AddAttachment(p.ItemCount, p.ItemCode, false, 1);
                        break;

                    case 10:    //金条
                        mail.AddAttachment(EnumCurrencyType.GoldBar, p.ItemCount);
                        break;
                    }
                }
                using (var transactionManager = new TransactionManager(Dal.ConnectionFactory.Instance.GetDefault()))
                {
                    transactionManager.BeginTransaction();
                    var messageCode = MessageCode.NbUpdateFail;
                    do
                    {
                        if (!PenaltykickManagerMgr.Update(item, transactionManager.TransactionObject))
                        {
                            break;
                        }
                        if (!mail.Save(transactionManager.TransactionObject))
                        {
                            break;
                        }
                        messageCode = MessageCode.Success;
                    } while (false);
                    if (messageCode != MessageCode.Success)
                    {
                        transactionManager.Rollback();
                    }
                    transactionManager.Commit();
                }
            }
            PenaltykickSeasonMgr.Update(seasonInfo);
            return(MessageCode.Success);
        }