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)); }
/// <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); }