public int Query() { int ret = -1; //var portfolio = LoginManager.Instance.GetPortfolio(tradeCommandItem.PortfolioCode); //var stockholder = LoginManager.Instance.GetHolder(tradeCommandItem. var ufxRequests = new List <UFXHoldingRequest>(); var ufxRequest = new UFXHoldingRequest { CombiNo = "30", }; ufxRequests.Add(ufxRequest); Callbacker callbacker = new Callbacker { Token = new CallerToken { SubmitId = 90000, CommandId = 90001, WaitEvent = new AutoResetEvent(false), }, DataHandler = DataHandlerCallback, }; var result = _securityBLL.QueryMultipleHolding(ufxRequests, callbacker); if (result == Model.ConnectionCode.Success) { if (callbacker.Token.WaitEvent.WaitOne(_timeOut)) { var errorResponse = callbacker.Token.ErrorResponse as UFXErrorResponse; if (errorResponse != null && T2ErrorHandler.Success(errorResponse.ErrorCode)) { ret = 1; } } else { ret = -1; } } return(ret); }
public List <UFXHoldingResponse> Query(CallerCallback callback) { List <UFXHoldingResponse> holdingItems = new List <UFXHoldingResponse>(); var portfolios = _productBLL.GetAll(); foreach (var portfolio in portfolios) { var ufxRequests = new List <UFXHoldingRequest>(); var ufxRequest = new UFXHoldingRequest { CombiNo = portfolio.PortfolioNo, }; ufxRequests.Add(ufxRequest); Callbacker callbacker = new Callbacker { Token = new CallerToken { SubmitId = 90000, CommandId = 90001, InArgs = portfolio.PortfolioNo, OutArgs = holdingItems, WaitEvent = new AutoResetEvent(false), Caller = callback, }, DataHandler = DataHandlerCallback, }; var result = _securityBLL.QueryHolding(ufxRequests, callbacker); BLLResponse bllResponse = new BLLResponse(); if (result == Model.ConnectionCode.Success) { if (callbacker.Token.WaitEvent.WaitOne(_timeOut)) { var errorResponse = callbacker.Token.ErrorResponse as UFXErrorResponse; if (errorResponse != null && T2ErrorHandler.Success(errorResponse.ErrorCode)) { bllResponse.Code = ConnectionCode.Success; bllResponse.Message = "Success QueryHolding"; } else { bllResponse.Code = ConnectionCode.FailQueryHolding; bllResponse.Message = "Fail QueryHolding: " + errorResponse.ErrorMessage; } } else { bllResponse.Code = ConnectionCode.FailTimeoutQueryHolding; bllResponse.Message = "Fail QueryHolding: Timeout"; } } else { bllResponse.Code = result; bllResponse.Message = "Fail to QueryHolding in ufx."; } } return(holdingItems); }