/// <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)); }
/// <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); }
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); } }
/// <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); }
/// <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)); }
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); }