/// <summary> /// 缓存港股 /// </summary> /// <param name="orderRequest"></param> public bool CacheHKOrder(HkTodayEntrustEx orderRequest) { bool result = false; if (orderRequest != null && orderRequest.OriginalEntity != null) { if (orderRequest.IsCacheOrder) { return(true); } try { orderRequest.IsCacheOrder = true; string strCode = orderRequest.OriginalEntity.Code; string strOrderId = orderRequest.OriginalEntity.EntrustNumber; if (_HKOrderContainer.ContainsKey(strCode)) { var levelOneItem = _HKOrderContainer[strCode]; if (levelOneItem == null) { levelOneItem = new Dictionary <string, HkTodayEntrustEx>(); } if (levelOneItem.ContainsKey(strOrderId)) { LogHelper.WriteDebug("OrderCache.CacheHKOrder:已经缓存委托单" + strOrderId); } else { levelOneItem.Add(strOrderId, orderRequest); } } else { var levelOneItem = new Dictionary <string, HkTodayEntrustEx>(); levelOneItem.Add(strOrderId, orderRequest); _HKOrderContainer.Add(strCode, levelOneItem); } result = true; } catch (Exception ex) { string strMessage = "GT-2114:[港股报盘]缓存未开市委托异常。"; orderRequest.OriginalEntity.OrderMessage = strMessage; OrderOfferDataLogic.UpdateHKOrderMessage(orderRequest.OriginalEntity); LogHelper.WriteError(strMessage, ex); result = false; } } return(result); }
private void LoadHKOrderFromDB() { string format = "OrderStatusId = '{0}'"; string where = string.Format(format, (int)Entity.Contants.Types.OrderStateType.DOSUnRequired); HK_TodayEntrustDal dal = new HK_TodayEntrustDal(); List <HK_TodayEntrustInfo> list = null; try { //list = DataRepository.XhTodayEntrustTableProvider.Find(where); list = dal.GetListArray(where); } catch (Exception ex) { LogHelper.WriteError(ex.Message, ex); } if (Utils.IsNullOrEmpty(list)) { return; } DateTime now = DateTime.Now; foreach (HK_TodayEntrustInfo table in list) { //DateTime entrustTime = table.EntrustTime.Value; //if (entrustTime.Year == now.Year && entrustTime.Month == now.Month && entrustTime.Day == now.Day) //{ // CacheStockOrder(new XhTodayEntrustTableEx(table)); //} //不再判断是否是当天 var order = new HkTodayEntrustEx(table); CacheHKOrder(order); } }
private void SendHKValue(HkTodayEntrustEx value) { if (value.HasSendCacheOrder) { return; } //if(!IsTimeDone(value.OriginalEntity.SpotCode)) // return; try { value.HasSendCacheOrder = true; this.HKOfferWakeupEvent(this, new WakeupEventArgs <HkTodayEntrustEx>(value)); } catch (Exception ex) { string strMessage = "GT-2111:[现货报盘]缓存未开市委托唤醒异常"; value.OriginalEntity.OrderMessage = strMessage; OrderOfferDataLogic.UpdateHKOrderMessage(value.OriginalEntity); LogHelper.WriteError(ex.Message, ex); } }