/// <summary>
 /// 港股改单
 /// </summary>
 /// <param name="dataOrder">港股改单实体</param>
 /// <returns></returns>
 public HKModifyResultEntity ModifyHKStockOrder(HKModifyEntity dataOrder)
 {
     if (dataOrder == null)
     {
         return(null);
     }
     return(MatchCenterManager.Instance.ModifyHKOrder(dataOrder));
 }
        /// <summary>
        /// 撤消委托单
        /// </summary>
        /// <param name="model">委托实体</param>
        public void ModifyOrder(HKModifyEntity model)
        {
            LogHelper.WriteDebug("[撮合单元运行撤销委托单方法]");
            //委托实体为空
            if (model == null)
            {
                return;
            }
            //bool cancel = false;
            string code       = Guid.NewGuid().ToString();
            var    dataEntity = new HKModifyBackEntity();

            //id
            dataEntity.Id = code;
            //委托单号码
            dataEntity.OrderNo = model.OldOrderNo;
            //通道号码
            dataEntity.ChannelNo = model.ChannelNo;
            decimal cancount = 0.00m;

            dataEntity.IsSuccess = false;
            dataEntity.Message   = "改单失败,委托单不存在。";
            OperationContext context = null;

            //通道号码不能为空
            if (model.ChannelNo != null)
            {
                if (MatchCenterManager.Instance.OperationContexts.ContainsKey((model.ChannelNo)))
                {
                    context = MatchCenterManager.Instance.OperationContexts[model.ChannelNo];
                }
            }
            //上下文不能为空
            if (context == null)
            {
                return;
            }
            try
            {
                var callback = context.GetCallbackChannel <IDoOrderCallback>();

                if (callback != null)
                {
                    callback.ModifyHKStockOrderRpt(dataEntity);
                }
                LogHelper.WriteDebug(" 改单单失败[" + "委托id=" + code + "委托代码=" + model.StockCode + ",撤单时间=" + DateTime.Now + ",委托单号码=" + model.OldOrderNo + ",撤单数量=" + cancount + "]");
            }
            catch (Exception ex)
            {
                LogHelper.WriteError("CH-100:撤单wcf服务通道异常", ex);
                //TradePushBackImpl.Instanse.SaveCanceBack(dataEntity);
            }
        }
        /// <summary>
        /// 港股改单
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public HKModifyResultEntity ModifyHKOrder(HKModifyEntity model)
        {
            var    result = new HKModifyResultEntity();
            string message;

            result.OrderNo = model.OldOrderNo;
            LogHelper.WriteDebug("撮合中心管理器港股下单方法:");
            try
            {
                if (model == null || string.IsNullOrEmpty(model.StockCode))
                {
                    message          = "CH-0018:委托港股改单不能为空或者港股代码不能为空;";
                    result.Message   = message;
                    result.IsSuccess = false;
                    LogHelper.WriteDebug(message);
                    return(result);
                }
                if (matchDevices != null)
                {
                    if (matchDevices.ContainsKey(model.StockCode.Trim()))
                    {
                        return(matchDevices[model.StockCode.Trim()].ModifyHKOrder(model));
                    }
                    message = "CH-0018:管理中心撮合单元没有分配或撮合中心没有分配此品种类型撮合;";
                    LogHelper.WriteDebug(message);
                }
                else
                {
                    message = "CH-0018:港股改单撮合中心撮合机不存在;";
                    LogHelper.WriteDebug(message);
                }
            }
            catch (Exception ex)
            {
                message = "CH-0018:港股改单异常";
                LogHelper.WriteError(message, ex);
            }
            result.IsSuccess = false;
            result.Message   = message;
            return(result);
        }
 /// <summary>
 /// 添加实体
 /// </summary>
 /// <param name="modifyEntity">撤单实体</param>
 public void Add(HKModifyEntity modifyEntity)
 {
     bufferModify.InsertQueueItem(modifyEntity);
 }