protected override void ProcessResponse(ETradeResponse response) { var request = response.Request as ETradeGetOrderListRequest; if (request != null && request.IsDone && response.Exception == null) { var params1 = _paramsDict[request.PortfolioName]; if (request.FoundOldestIncompleteOrderPosition < 0) { Client.AddDebugLog("Auto-updates for portfolio '{0}' were stopped.", request.PortfolioName); params1.NumOrdersToRequest = 0; params1.OldestIncompleteOrderId = 0; } else { params1.NumOrdersToRequest = request.FoundOldestIncompleteOrderPosition >= ETradeGetOrderListRequest.MaxAllowedOrderCount ? ETradeGetOrderListRequest.MaxAllowedOrderCount : request.FoundOldestIncompleteOrderPosition + 1; params1.OldestIncompleteOrderId = request.FoundOldestIncompleteOrderId; Client.AddDebugLog("Auto-updates for portfolio '{0}': NumOrdersToRequest={1}, OldestIncompleteOrderId={2}", request.PortfolioName, params1.NumOrdersToRequest, params1.OldestIncompleteOrderId); } } base.ProcessResponse(response); }
protected override ETradeResponse ExecuteNextPartInternal(ETradeApi api) { Exception ex; var result = PerformApiRequest(() => api.GetRateLimitStatus(_moduleName), out ex); return(ETradeResponse.Create(this, result, ex)); }
protected override ETradeResponse ExecuteNextPartInternal(ETradeApi api) { Exception ex; var result = PerformApiRequest(() => api.ProductLookup(_criteria), out ex); return(ETradeResponse.Create(this, result, ex)); }
protected override ETradeResponse ExecuteNextPartInternal(ETradeApi api) { Exception ex; var result = PerformApiRequest(() => api.SendOrderChange(_oldOrderId, _newOrder), out ex); return(ETradeResponse.Create(this, result, ex)); }
protected override ETradeResponse ExecuteNextPartInternal(ETradeApi api) { Exception ex; var result = PerformApiRequest(() => api.CancelOrder(_orderId, _portfolioName), out ex); return(ETradeResponse.Create(this, result, ex)); }
protected override ETradeResponse ExecuteNextPartInternal(ETradeApi api) { Exception ex; var result = PerformApiRequest(api.GetAccounts, out ex); return(ETradeResponse.Create(this, result, ex)); }
protected override ETradeResponse ExecuteNextPartInternal(ETradeApi api) { Exception ex; var result = PerformApiRequest(() => api.GetPositions(PortfolioName, ref _marker), out ex); if (result == null) { result = new List <PositionInfo>(); } return(ETradeResponse.Create(this, result, ex)); }
protected override ETradeResponse ExecuteNextPartInternal(ETradeApi api) { Exception ex; var result = PerformApiRequest(() => api.GetOrderList(PortfolioName, _orderCounter == 0 ? _firstRequestCount : MaxAllowedOrderCount, ref _marker), out ex); if (_marker.IsEmpty()) { _done = true; } if (ex == null) { for (var i = 0; i < result.Count; ++i) { var nativeOrder = result[i]; if (nativeOrder == null) { continue; } if (!ETradeUtil.IsOrderInFinalState(nativeOrder)) { FoundOldestIncompleteOrderPosition = _orderCounter + i; FoundOldestIncompleteOrderId = nativeOrder.orderId; } if (nativeOrder.orderId == _oldestIncompleteOrderId) { _done = true; break; } } _orderCounter += result.Count; } if (result != null) { result.RemoveAll(o => o == null); } else { result = new List <Order>(); } return(ETradeResponse.Create(this, result, ex)); }
private void GetAccountsResponseHanlder(ETradeResponse <List <AccountInfo> > response) { Client.AccountsData.SafeInvoke(response.Data, response.Exception); var isNew = false; foreach (var name in response.Data.Select(info => info.accountId.ToString(CultureInfo.InvariantCulture)).Where(name => !Client._portfolioNames.Contains(name))) { Client._portfolioNames.Add(name); isNew = true; } if (isNew) { Client._marketModule.Wakeup(); Client._orderModule.Wakeup(); } }
protected virtual void ProcessResponse(ETradeResponse response) { response.Process(); }
private void GetOrderListResponseHandler(ETradeResponse <List <Order> > response) { var portfName = ((ETradeGetOrderListRequest)response.Request).PortfolioName; Client.OrdersData.SafeInvoke(portfName, response.Data, response.Exception); }
private void GetPositionsResponseHandler(ETradeResponse <List <PositionInfo> > response) { var portfName = ((ETradeGetPositionsRequest)response.Request).PortfolioName; Client.PositionsData.SafeInvoke(portfName, response.Data, response.Exception); }