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);
        }
Exemple #2
0
        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);
        }