/// <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);
        }
Exemple #4
0
 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);
 }
Exemple #5
0
        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);
            }
        }
Exemple #6
0
        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);
            }
        }
Exemple #7
0
        public static bool Update(LadderExchangerecordEntity ladderExchangerecordEntity, DbTransaction trans = null, string zoneId = "")
        {
            var provider = new LadderExchangerecordProvider(zoneId);

            return(provider.Update(ladderExchangerecordEntity, trans));
        }