Ejemplo n.º 1
0
        public BLLResponse Withdraw(int submitId, int commandId, List <EntrustSecurity> entrustItems)
        {
            List <UFXWithdrawRequest> requests = new List <UFXWithdrawRequest>();

            foreach (var entrustItem in entrustItems)
            {
                UFXWithdrawRequest request = new UFXWithdrawRequest
                {
                    EntrustNo = entrustItem.EntrustNo,
                };

                requests.Add(request);
            }

            var responseItems = _withdrawSyncBLL.Withdraw(requests);

            return(GetResponse(submitId, commandId, responseItems));
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Withdraw the entrusted securites.
        /// NOTE: the entrust_no is  necessary.
        /// </summary>
        /// <param name="submitId">The entrustsecurity SubmitId.</param>
        /// <param name="commandId">The tradingcommand CommandId.</param>
        /// <param name="entrustItems">The entrustsecurity item.</param>
        /// <param name="callerCallback"></param>
        /// <returns></returns>
        public BLLResponse Withdraw(int submitId, int commandId, List <EntrustSecurity> entrustItems, CallerCallback callerCallback)
        {
            BLLResponse bllResponse = new BLLResponse();

            List <UFXWithdrawRequest> requests = new List <UFXWithdrawRequest>();

            foreach (var entrustItem in entrustItems)
            {
                UFXWithdrawRequest request = new UFXWithdrawRequest
                {
                    EntrustNo = entrustItem.EntrustNo,
                };

                requests.Add(request);
            }

            Callbacker callbacker = new Callbacker
            {
                Token = new CallerToken
                {
                    SubmitId  = submitId,
                    CommandId = commandId,
                    WaitEvent = new AutoResetEvent(false),
                    Caller    = callerCallback,
                },

                DataHandler = WithdrawDataHandler,
            };

            var result = _securityBLL.Withdraw(requests, 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))
                    {
                        bllResponse.Code    = Model.ConnectionCode.Success;
                        bllResponse.Message = "Success Withdraw";
                    }
                    else
                    {
                        bllResponse.Code    = Model.ConnectionCode.FailWithdraw;
                        bllResponse.Message = errorResponse.ErrorMessage;
                    }
                }
                else
                {
                    bllResponse.Code    = Model.ConnectionCode.FailTimeoutWithdraw;
                    bllResponse.Message = "Fail to submit the basket withdraw to UFX: Timeout";
                }
            }
            else
            {
                bllResponse.Code    = Model.ConnectionCode.FailSubmit;
                bllResponse.Message = "Fail to submit the basket withdraw to UFX!";
            }

            return(bllResponse);
        }