public ResultModel Update(UserModel user, NFMT.DoPrice.Model.StopLoss stopLoss, List<NFMT.DoPrice.Model.StopLossDetail> details) { ResultModel result = new ResultModel(); DAL.StopLossApplyDAL stopLossApplyDAL = new StopLossApplyDAL(); DAL.StopLossDetailDAL stopLossDetailDAL = new StopLossDetailDAL(); try { using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required)) { result = stoplossDAL.Get(user, stopLoss.StopLossId); if (result.ResultStatus != 0) return result; NFMT.DoPrice.Model.StopLoss stopLossResult = result.ReturnValue as NFMT.DoPrice.Model.StopLoss; if (stopLossResult == null) { result.ResultStatus = -1; result.Message = "获取止损信息错误"; return result; } result = stopLossApplyDAL.Get(user, stopLoss.StopLossApplyId); if (result.ResultStatus != 0) return result; NFMT.DoPrice.Model.StopLossApply stopLossApply = result.ReturnValue as NFMT.DoPrice.Model.StopLossApply; if (stopLossApply == null) { result.ResultStatus = -1; result.Message = "获取止损申请信息错误"; return result; } result = stoplossDAL.IsWeightCanStopLoss(user, stopLoss.StopLossApplyId, stopLoss.FuturesCodeId, stopLossApply.StopLossWeight, stopLoss.StopLossWeight, true, stopLossResult.StopLossWeight); if (result.ResultStatus != 0) return result; stopLossResult.StopLossWeight = stopLoss.StopLossWeight; stopLossResult.ExchangeId = stopLoss.ExchangeId; stopLossResult.FuturesCodeId = stopLoss.FuturesCodeId; stopLossResult.AvgPrice = stopLoss.AvgPrice; stopLossResult.PricingTime = DateTime.Now; stopLossResult.StopLosser = user.EmpId; //写入止损信息 result = stoplossDAL.Update(user, stopLossResult); if (result.ResultStatus != 0) return result; if (details != null && details.Any()) { //作废明细 result = stopLossDetailDAL.InvalidAll(user, stopLoss.StopLossId); if (result.ResultStatus != 0) return result; //写入明细信息 foreach (Model.StopLossDetail detail in details) { result = stopLossDetailDAL.Insert(user, detail); if (result.ResultStatus != 0) return result; } } scope.Complete(); } } catch (Exception e) { result.ResultStatus = -1; result.Message = e.Message; } return result; }
public ResultModel Create(UserModel user, NFMT.DoPrice.Model.StopLoss stopLoss, List<NFMT.DoPrice.Model.StopLossDetail> details) { ResultModel result = new ResultModel(); DAL.StopLossApplyDAL stopLossApplyDAL = new StopLossApplyDAL(); DAL.StopLossDetailDAL stopLossDetailDAL = new StopLossDetailDAL(); try { using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required)) { result = stopLossApplyDAL.Get(user, stopLoss.StopLossApplyId); if (result.ResultStatus != 0) return result; NFMT.DoPrice.Model.StopLossApply stopLossApply = result.ReturnValue as NFMT.DoPrice.Model.StopLossApply; if (stopLossApply == null) { result.Message = "获取止损申请失败"; result.ResultStatus = -1; return result; } result = stoplossDAL.IsWeightCanStopLoss(user, stopLoss.StopLossApplyId, stopLoss.FuturesCodeId, stopLossApply.StopLossWeight, stopLoss.StopLossWeight, false, 0); if (result.ResultStatus != 0) return result; stopLoss.PricingDirection = stopLossApply.PricingDirection; stopLoss.PricingTime = DateTime.Now; stopLoss.StopLosser = user.EmpId; stopLoss.StopLossStatus = Common.StatusEnum.已录入; //写入止损信息 result = stoplossDAL.Insert(user, stopLoss); if (result.ResultStatus != 0) return result; //写入明细信息 if (details != null && details.Any()) { int StopLossId = (int)result.ReturnValue; foreach (Model.StopLossDetail detail in details) { detail.StopLossId = StopLossId; result = stopLossDetailDAL.Insert(user, detail); if (result.ResultStatus != 0) return result; } } scope.Complete(); } } catch (Exception e) { result.ResultStatus = -1; result.Message = e.Message; } return result; }