/// <summary> /// 带事务的Update /// </summary> /// <param name="entity"></param> /// <param name="trans">The trans.</param> /// <returns></returns> /// <remarks>2016/1/11 14:52:41</remarks> public bool Update(LadderExchangerecordEntity entity, DbTransaction trans = null) { var database = new SqlDatabase(this.ConnectionString); DbCommand commandWrapper = database.GetStoredProcCommand("dbo.P_LadderExchangerecord_Update"); database.AddInParameter(commandWrapper, "@Idx", DbType.Int32, entity.Idx); database.AddInParameter(commandWrapper, "@ManagerId", DbType.Guid, entity.ManagerId); database.AddInParameter(commandWrapper, "@ItemCode", DbType.Int32, entity.ItemCode); database.AddInParameter(commandWrapper, "@CostHonor", DbType.Int32, entity.CostHonor); database.AddInParameter(commandWrapper, "@RowTime", DbType.DateTime, entity.RowTime); int results = 0; if (trans != null) { results = database.ExecuteNonQuery(commandWrapper, trans); } else { results = database.ExecuteNonQuery(commandWrapper); } entity.Idx = (System.Int32)database.GetParameterValue(commandWrapper, "@Idx"); return(Convert.ToBoolean(results)); }
/// <summary> /// 将IDataReader的当前记录读取到LadderExchangerecordEntity 对象 /// </summary> /// <param name="reader"></param> /// <returns></returns> public LadderExchangerecordEntity LoadSingleRow(IDataReader reader) { var obj = new LadderExchangerecordEntity(); obj.Idx = (System.Int32)reader["Idx"]; obj.ManagerId = (System.Guid)reader["ManagerId"]; obj.ItemCode = (System.Int32)reader["ItemCode"]; obj.CostHonor = (System.Int32)reader["CostHonor"]; obj.RowTime = (System.DateTime)reader["RowTime"]; return(obj); }
/// <summary> /// GetById /// </summary> /// <param name="idx">idx</param> /// <returns>LadderExchangerecordEntity</returns> /// <remarks>2016/1/11 14:52:41</remarks> public LadderExchangerecordEntity GetById(System.Int32 idx) { var database = new SqlDatabase(this.ConnectionString); DbCommand commandWrapper = database.GetStoredProcCommand("P_LadderExchangerecord_GetById"); database.AddInParameter(commandWrapper, "@Idx", DbType.Int32, idx); LadderExchangerecordEntity obj = null; using (IDataReader reader = database.ExecuteReader(commandWrapper)) { if (reader.Read()) { obj = LoadSingleRow(reader); } } return(obj); }
MessageCode Tran_SaveExchange(DbTransaction transaction, LadderManagerEntity ladderManager, ItemPackageFrame package, LadderExchangerecordEntity ladderExchangerecord) { if (!LadderManagerMgr.Update(ladderManager, transaction)) { return(MessageCode.NbUpdateFail); } if (!package.Save(transaction)) { return(MessageCode.NbUpdateFail); } if (!LadderExchangerecordMgr.Insert(ladderExchangerecord, transaction)) { return(MessageCode.NbUpdateFail); } return(MessageCode.Success); }
MessageCode SaveExchange(LadderManagerEntity ladderManager, ItemPackageFrame package, LadderExchangerecordEntity ladderExchangerecord) { if (ladderManager == null || package == null || ladderExchangerecord == null) { return(MessageCode.NbUpdateFail); } try { using (var transactionManager = new TransactionManager(Dal.ConnectionFactory.Instance.GetDefault())) { transactionManager.BeginTransaction(); var messageCode = Tran_SaveExchange(transactionManager.TransactionObject, ladderManager, package, ladderExchangerecord); if (messageCode == ShareUtil.SuccessCode) { transactionManager.Commit(); } else { transactionManager.Rollback(); } return(messageCode); } } catch (Exception ex) { SystemlogMgr.Error("SaveExchange", ex); return(MessageCode.Exception); } }
public LadderExchangeResponse Exchange(Guid managerId, string exchangeKey) { var manager = GetLadderManager(managerId); if (manager == null || string.IsNullOrEmpty(manager.ExchangeIds) || !manager.ExchangeIds.Contains(exchangeKey)) { return(ResponseHelper.InvalidParameter <LadderExchangeResponse>()); } var exchangeCache = CacheFactory.LadderCache.GetExchangeEntity(exchangeKey); if (exchangeCache == null) { return(ResponseHelper.InvalidParameter <LadderExchangeResponse>()); } if (manager.ExchangedIds.Contains(exchangeKey)) { return(ResponseHelper.Create <LadderExchangeResponse>(MessageCode.LadderExchangeTimesOver)); } //if (manager.Score < exchangeCache.NeedScore) // return ResponseHelper.Create<LadderExchangeResponse>(MessageCode.LadderExchangeScoreShortage); if (manager.Honor < exchangeCache.CostHonor) { return(ResponseHelper.Create <LadderExchangeResponse>(MessageCode.LadderExchangeHonorShortage)); } if (manager.LadderCoin < exchangeCache.LadderCoin) { return(ResponseHelper.Create <LadderExchangeResponse>(MessageCode.LadderExchangeLadderCoinShortage)); } var package = ItemCore.Instance.GetPackage(managerId, EnumTransactionType.LadderExchange); var itemcode = exchangeCache.ItemCode; var exchanagerItemCode = Convert.ToInt32(exchangeKey.Split(',')[1]); if (exchangeCache.ItemCode != exchanagerItemCode) { itemcode = exchanagerItemCode; } var itemInfo = CacheFactory.ItemsdicCache.GetItem(itemcode); var code = MessageCode.Success; if (itemInfo.ItemType == (int)EnumItemType.Equipment) { var allEquipmentProperties = CacheFactory.LeagueCache.AnalysisProperties(manager.EquipmentProperties); var property = GetEquipmentProperty(manager.EquipmentItems, allEquipmentProperties, itemcode); code = package.AddEquipment(itemcode, true, false, property); } else { code = package.AddItem(itemcode, true, false); } if (code != MessageCode.Success) { return(ResponseHelper.Create <LadderExchangeResponse>(code)); } manager.Honor = manager.Honor - exchangeCache.CostHonor; manager.LadderCoin = manager.LadderCoin - exchangeCache.LadderCoin; manager.UpdateTime = DateTime.Now; manager.ExchangedIds = manager.ExchangedIds + "|" + exchangeKey; var record = new LadderExchangerecordEntity() { CostHonor = exchangeCache.CostHonor, ItemCode = itemcode, ManagerId = managerId, RowTime = DateTime.Now }; code = SaveExchange(manager, package, record); if (code != MessageCode.Success) { return(ResponseHelper.Create <LadderExchangeResponse>(code)); } else { package.Shadow.Save(); var response = ResponseHelper.CreateSuccess <LadderExchangeResponse>(); response.Data = new LadderExchangeEntity() { CurHonor = manager.Honor, ItemCode = itemcode, LadderCoin = manager.LadderCoin }; return(response); } }
public static bool Update(LadderExchangerecordEntity ladderExchangerecordEntity, DbTransaction trans = null, string zoneId = "") { var provider = new LadderExchangerecordProvider(zoneId); return(provider.Update(ladderExchangerecordEntity, trans)); }