using System.Threading; using GalaSoft.MvvmLight; using GalaSoft.MvvmLight.Command; using GalaSoft.MvvmLight.Ioc; using Microsoft.Practices.ServiceLocation; using Muchinfo.MTPClient.Bank.Views; using Muchinfo.MTPClient.CustomException; using Muchinfo.MTPClient.Data; using Muchinfo.MTPClient.Data.Enums; using Muchinfo.MTPClient.Data.Helper; using Muchinfo.MTPClient.Data.Model; using Muchinfo.MTPClient.Data.Model.Account; using Muchinfo.MTPClient.Data.Model.Bank; using Muchinfo.MTPClient.Infrastructure.Cache; using Muchinfo.MTPClient.Infrastructure.Helpers; using Muchinfo.MTPClient.Infrastructure.MessageBox; using Muchinfo.MTPClient.Infrastructure.Utilities; using Muchinfo.MTPClient.IService; using Muchinfo.MTPClient.Resources; using Muchinfo.PC.Common.Extensions; using Muchinfo.PC.Common.Helpers; using Muchinfo.WPF.Controls.Keyboard; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; namespace Muchinfo.MTPClient.Bank.ViewModels { public class AmountManagerViewModel : IdentifyCodeTimerViewModel { #region Fields private FundsApplyType _currentApplyType; private TradeAccount _currentTradeAccount; private IBankService _bankService; private EncryptKey _encryptKey; private Window _OKCommandTemp; private AreaAccount _areaAccount; //会员账号信息 private ILoginService _loginService; //// private bool _isGetIdentifyCode=false; ////是否取验证码 private ObservableCollection _signBankList = new ObservableCollection(); private List _moneyThresholdRatios; ////出金阈值比率 /// /// 当前选中的交易账号 /// public TradeAccount CurrentTradeAccount { get { return _currentTradeAccount; } set { Set(() => CurrentTradeAccount, ref _currentTradeAccount, value); } } /// /// 签约银行列表 /// public ObservableCollection SignBankList { get { return _signBankList; } set { Set(() => SignBankList, ref _signBankList, value); } } private SigningBank _currentSigningBank = new SigningBank(); /// /// 当前选中签约银行 /// public SigningBank CurrentSigningBank { get { return _currentSigningBank; } set { Set(() => CurrentSigningBank, ref _currentSigningBank, value); this.PhoneBankPassword = string.Empty; if (value != null) { SetSignBankInfo(); } RaisePropertyChanged(() => IsShowInTips); } } public string InAmountTips { get { if (CurrentSigningBank != null) { return string.Format(Client_Resource.text_inWindow_ShowInGuideTips, CurrentSigningBank.card_Acct); } return string.Empty; } } /// /// 是否显示入金提示 /// public bool IsShowInTips { get { if (CurrentSigningBank == null) { return false; } return _fundsApplyType == FundsApplyType.Deposit && CurrentSigningBank.CusBankID==3; ////中信银行入金显示提示 } } /// ///银行列表 /// List AccoumtBankSignList; private FundsApplyType _fundsApplyType; #endregion Fields #region Constructors public AmountManagerViewModel(FundsApplyType applyType) { _fundsApplyType = applyType; _bankService = ServiceLocator.Current.GetInstance(); IsBusy = true; CurrentTradeAccount = UserManager.CurrentTradeAccount; _loginService = SimpleIoc.Default.GetInstance(); CurrentApplyType = ApplyTypes.FirstOrDefault(z => z.Key == applyType).Key; // _bankService.QueryBankInfo(QueryBankInfoCallback, QueryErrorCallback); // var signBankList = _bankService.QueryBankCustomerSign(UserManager.CurrentTradeAccount); var accountid = UserManager.CurrentTradeAccount.AccountId; //if (UserManager.CurrentTradeAccount.FundsAccounts != null && UserManager.CurrentTradeAccount.FundsAccounts.Any()) //{ // accountid = UserManager.CurrentTradeAccount.FundsAccounts[0].AccountId; //} _bankService.QueryBankCustomerSignInfo(accountid, SearchBankCustomerSignCallback, ErrorCallback); ////计算浮动盈亏 MessengerHelper.QuoteRegister>(this, MessengerTokens.ReceiveRealTimeQuote, (quoteList) => { UseAmount = FloatPLExpressions.SetUseAmount(_moneyThresholdRatios); }); } public void QueryBankInfoCallback(List list) { AccoumtBankSignList = list; if (UserManager.CurrentTradeAccount.AccountType == eUserType.USERTYPE_INVESTOR) { _bankService.QueryBankCustomerSign(UserManager.CurrentTradeAccount.AccountCode, QueryBankCustomerSignCallback, QueryErrorCallback); } else { ///查询会员账号信息 _bankService.QueryMemberAccountInfo(UserManager.CurrentTradeAccount.AccountId, QueryAreaAccountCallback, QueryErrorCallback); } } private void SearchBankCustomerSignCallback(List list) { IsBusy = false; System.Windows.Application.Current.Dispatcher.BeginInvoke(new Action(() => { if (list != null && list.Any()) { // list = list.Where((item) => item.SignStatusType == SignStatus.SignStatus_Signed).ToList(); foreach (var item in list) { switch (CurrentApplyType) { case FundsApplyType.Deposit: if (item.IsAllowInMoney == 1) { SignBankList.Add(item); } break; case FundsApplyType.Withdraw: if (item.IsAllowOutMoney == 1) { SignBankList.Add(item); } break; } } if (SignBankList.Any()) { CurrentSigningBank = SignBankList.FirstOrDefault(); } } // if (applyType == FundsApplyType.Withdraw) if (CurrentApplyType == FundsApplyType.Withdraw) { Task.Factory.TryStartNew(() => { // var useAmount = CalcUseAmount(); // UseAmount = Math.Round(useAmount, 2, MidpointRounding.AwayFromZero); }, () => IsBusy = false); } })); } private void QueryAreaAccountCallback(List areaAccounts) { if (areaAccounts != null && areaAccounts.Any()) { _areaAccount = areaAccounts[0]; _bankService.QueryBankCustomerSign(_areaAccount.AccountCode, QueryBankCustomerSignCallback, QueryErrorCallback); } } private void QueryBankCustomerSignCallback(ObservableCollection signBankList) { IsBusy = false; System.Windows.Application.Current.Dispatcher.BeginInvoke(new Action(() => { if (signBankList != null && signBankList.Any()) { foreach (var item in signBankList) { switch (CurrentApplyType) { case FundsApplyType.Deposit: //if (item.IsAllowinMoney == 1) todo:银行联调忽略状态 //{ SignBankList.Add(item); //} break; case FundsApplyType.Withdraw: // if (item.IsAllowoutMoney == 1) todo:银行联调忽略状态 //{ SignBankList.Add(item); //} break; } } if (null != AccoumtBankSignList && AccoumtBankSignList.Any()) { foreach (var item in SignBankList) { foreach (var k in AccoumtBankSignList) { if (item.BankId == k.BankId) { item.CusBankName = k.BankName; item.Name = k.BankName; // item.AccountName = UserManager.CurrentTradeAccount.CustomerName; } if (item.BranchId == k.BankId) { item.BranchBankName = k.BankName; } } } } if (SignBankList.Any()) { CurrentSigningBank = SignBankList.FirstOrDefault(); } } // if (applyType == FundsApplyType.Withdraw) if (CurrentApplyType == FundsApplyType.Withdraw) { Task.Factory.TryStartNew(() => { // var useAmount = CalcUseAmount(); // UseAmount = Math.Round(useAmount, 2, MidpointRounding.AwayFromZero); }, () => IsBusy = false); } })); } #endregion Constructors #region Public Properties private string _titleName; public string TitleName { get { return this._titleName; } set { Set(() => TitleName, ref this._titleName, value); } } public Dictionary ApplyTypes { get { return new Dictionary { {FundsApplyType.Deposit, FundsApplyType.Deposit.Discription()}, {FundsApplyType.Withdraw, FundsApplyType.Withdraw.Discription()} }; } } public FundsApplyType CurrentApplyType { get { return this._currentApplyType; } set { Set(() => CurrentApplyType, ref this._currentApplyType, value); if (CurrentApplyType == FundsApplyType.Deposit) { OutVisibility = Visibility.Collapsed; InVisibility = Visibility.Visible; this.TitleName = Muchinfo.MTPClient.Resources.Client_Resource.TradeTreeMenu_AmountInApply; } else { OutVisibility = Visibility.Visible; InVisibility = Visibility.Collapsed; this.TitleName = Muchinfo.MTPClient.Resources.Client_Resource.TradeTreeMenu_AmountOutApply; } } } private decimal _useAmount; /// ///可取资金 /// public decimal UseAmount { get { return _useAmount; } set { value = value < 0 ? 0 : value; //出金不显示负数 Set(() => UseAmount, ref _useAmount, value); } } /// /// 计算可出金额 /// /// private void CalcUseAmount() { // 可出资金1 = 期末余额 - 交易占用 - 交易冻结 - 出金冻结 - 交割冻结 - 发售冻结 - 摘牌冻结 - 托管冻结 - 浮动亏损 //可出资金2 = 期初余额 - 当日出金 - 出金冻结 [(如果当日入金可出的话) + 当日入金] //可出资金3 = min(可出资金1, 可出资金2) - max(期末余额阀值, 人工冻结, 出金阀值, 净值阀值) IsBusy = true; var accountid = UserManager.CurrentTradeAccount.AccountId; //if (UserManager.CurrentTradeAccount.FundsAccounts != null && UserManager.CurrentTradeAccount.FundsAccounts.Any()) //{ // accountid = UserManager.CurrentTradeAccount.FundsAccounts[0].AccountId; //} _loginService.QueryOutMoneyThresholdRatio(accountid, QueryOutMoneyThresholdSuccess, QueryOutMoneyError); } private void QueryTaAccountSuccess(List fundsAccounts) { //Application.Current.Dispatcher.BeginInvoke(new Action(() => //{ MessengerHelper.DefaultSend(string.Empty, MessengerTokens.UpdateAccountCommand); ////计算浮动盈亏 Thread.Sleep(500);////等待计划浮动盈亏完成 UseAmount = FloatPLExpressions.SetUseAmount(_moneyThresholdRatios); //})); } /// /// 获取手机验证码 /// public RelayCommand IdentifyCodeCommand { get { return new RelayCommand(() => { if (CurrentSigningBank == null) { return; } var IndentityReq = new IdentifyCodeReq() { AccountCode = CurrentSigningBank.AccountCode, CusBankID = CurrentSigningBank.CusBankID + string.Empty, Amount = Money, CustomerSignId = CurrentSigningBank.CustomerSignId, CustomerName = CurrentSigningBank.CustomerName, BankCode = CurrentSigningBank.BankId, AccountType = CurrentSigningBank.AccountType, BankAccountNo = CurrentSigningBank.BankAccount, CardNum = CurrentSigningBank.CredentialNumber, CardType = CurrentSigningBank.CredentialType, MobilePhone = CurrentSigningBank.MobilePhone, Currency = (UserManager.CurrentTradeAccount.FundsAccounts == null || !UserManager.CurrentTradeAccount.FundsAccounts.Any()) ? "RMB" : UserManager.CurrentTradeAccount.FundsAccounts[0].Currency, }; IndentityReq.TradeType = CurrentApplyType == FundsApplyType.Deposit ? BankTradeType.inAmount : BankTradeType.OutAmount; _bankService.BankGetIdentifyCode(IndentityReq, QueryIdentifyCodeSuccess, QueryErrorCallback); IsMoneyBoxEnable = false; this.Start(); },(()=>Money>0)); } } public void QueryIdentifyCodeSuccess(bool success) { _isGetIdentifyCode = true; } private string _identifyCode; public string IdentifyCode { get { return _identifyCode; } set { Set(() => IdentifyCode, ref _identifyCode, value); } } /// /// 查询 /// /// private void QueryOutMoneyThresholdSuccess(List ratios) { _moneyThresholdRatios = ratios; var accountid = UserManager.CurrentTradeAccount.AccountId; //if (UserManager.CurrentTradeAccount.FundsAccounts != null && UserManager.CurrentTradeAccount.FundsAccounts.Any()) //{ // accountid = UserManager.CurrentTradeAccount.FundsAccounts[0].AccountId; //} _loginService.QueryTaAccount(accountid, QueryTaAccountSuccess, QueryErrorCallback); } /// /// /// private void QueryOutMoneyError(ErrorEntity errorEntity) { var errorMsg = string.Format("{0}:{1}", errorEntity.RequestFunc, ErrorManager.FormatErrorMsg(errorEntity)); //错误信息显示到状态 LogInfoHelper.WriteInfo(errorMsg); var accountid = UserManager.CurrentTradeAccount.AccountId; //if (UserManager.CurrentTradeAccount.FundsAccounts != null && UserManager.CurrentTradeAccount.FundsAccounts.Any()) //{ // accountid = UserManager.CurrentTradeAccount.FundsAccounts[0].AccountId; //} _loginService.QueryTaAccount(accountid, QueryTaAccountSuccess, QueryErrorCallback); } /// /// 打开键盘命令 /// public RelayCommand OpenKeyboardCommand { get { return new RelayCommand((control) => { PassWordKeyBoard.SetTouchScreenKeyboard(control, true); control.Focus(); }); } } private Visibility _outVisibility; /// /// 显示出金申请 /// public Visibility OutVisibility { get { return _outVisibility; } set { Set(() => OutVisibility, ref _outVisibility, value); } } private Visibility _inVisibility; /// /// 显示入金申请 /// public Visibility InVisibility { get { return _inVisibility; } set { Set(() => InVisibility, ref _inVisibility, value); } } private string _remark; /// /// 备注 /// public string Remark { get { return _remark; } set { Set(() => Remark, ref _remark, value); } } private decimal _money; /// /// 出入金金额 /// public decimal Money { get { ChineseNumber = FormatHelper.ConvertToChinese(_money); //设置大小写 if (_money.Equals(0) || _money < 0) { return 0; } return _money; } set { Set(() => Money, ref _money, value); if (_isGetIdentifyCode) { IsShowModifyTips = true; } } } private bool _isShowModifyTips; /// /// 是否显示修改金额提示 /// public bool IsShowModifyTips { get { return _isShowModifyTips; } set { Set(() => IsShowModifyTips, ref _isShowModifyTips, value);} } private string _password; /// /// 账户密码 /// public string Password { get { return _password; } set { Set(() => Password, ref _password, value); } } private string _chineseNumber; /// /// 转换成大写数字 /// public string ChineseNumber { get { return _chineseNumber; } set { Set(() => ChineseNumber, ref _chineseNumber, value); } } private bool _isBusy; /// /// 是否在忙 /// public bool IsBusy { get { return _isBusy; } set { Set(() => IsBusy, ref _isBusy, value); } } private string _busyContent; public string BusyContent { get { return _busyContent; } set { Set(() => BusyContent, ref _busyContent, value); } } //private BankAccountInfo _bankAccountInfo = new BankAccountInfo(); ///// ///// 银行信息 ///// //public BankAccountInfo BankAccountInfo //{ // get { return _bankAccountInfo; } // set // { // Set(() => BankAccountInfo, ref _bankAccountInfo, value); // } //} private bool _phoneBankPassIsEnabled; /// /// 是否输入电话银行密码 /// public bool PhoneBankPassIsEnabled { get { return _phoneBankPassIsEnabled; } set { Set(() => PhoneBankPassIsEnabled, ref _phoneBankPassIsEnabled, value); } } private bool _BankPassIsEnabled; /// /// 是否输入 银行取款密码 /// public bool BankPassIsEnabled { get { return _BankPassIsEnabled; } set { Set(() => BankPassIsEnabled, ref _BankPassIsEnabled, value); } } /// /// 是否显示密码 /// public bool IsPassWordEnabled { get { return BankPassIsEnabled || PhoneBankPassIsEnabled; } } private bool _isShowIdentifyCode; /// /// 是否显示验证码 /// public bool IsShowIdentifyCode { get { return _isShowIdentifyCode; } set { Set(() => IsShowIdentifyCode, ref _isShowIdentifyCode, value); } } private bool _isMoneyBoxEnable=true; /// /// 是否可输入金额 /// public bool IsMoneyBoxEnable { get { return _isMoneyBoxEnable; } set { Set(() => IsMoneyBoxEnable, ref _isMoneyBoxEnable, value); } } private string _phoneBankPassword; /// /// 电话银行密码 /// public string PhoneBankPassword { get { return _phoneBankPassword; } set { Set(() => PhoneBankPassword, ref _phoneBankPassword, value); } } #endregion Public Properties /// /// 确定 /// public RelayCommand OKCommand { get { return new RelayCommand((view) => { var caption = CurrentApplyType == FundsApplyType.Deposit ? Muchinfo.MTPClient.Resources.Client_Resource.Bank_InCashTips : Muchinfo.MTPClient.Resources.Client_Resource.Bank_OutCashTips; var successMessage = CurrentApplyType == FundsApplyType.Deposit ? Muchinfo.MTPClient.Resources.Client_Resource.Bank_InCash : Muchinfo.MTPClient.Resources.Client_Resource.Bank_OutCash; if (Money <= 0) { MessageBoxHelper.ShowInfo(string.Format(Muchinfo.MTPClient.Resources.Client_Resource.Bank_CashGreatThanZero, successMessage), caption); return; } if (string.IsNullOrEmpty(Password)) { MessageBoxHelper.ShowInfo(Muchinfo.MTPClient.Resources.Client_Resource.Bank_InputCashPassword, caption); return; } if (Password.Length < 6) { MessageBoxHelper.ShowInfo(Muchinfo.MTPClient.Resources.Client_Resource.Bank_CashPasswordNotLess6Bit, caption); return; } if (CurrentApplyType == FundsApplyType.Withdraw && Money > UseAmount) { MessageBoxHelper.ShowInfo(Muchinfo.MTPClient.Resources.Client_Resource.Bank_OutCashNotGreatAvailable, caption); return; } if (IsPassWordEnabled) { if (string.IsNullOrEmpty(PhoneBankPassword)) { MessageBoxHelper.ShowInfo(Muchinfo.MTPClient.Resources.Client_Resource.Bank_InputBankPassword, caption); return; } if (PhoneBankPassword.Length < 6) { MessageBoxHelper.ShowInfo(Muchinfo.MTPClient.Resources.Client_Resource.Bank_TelephoPasswordNotLess6Bit, caption); return; } } _OKCommandTemp = view; //验证账号信息,出入金交互。 IsBusy = true; BusyContent = string.Format(Muchinfo.MTPClient.Resources.Client_Resource.Bank_SubmitInfo_Waiting, successMessage); // BankSignResult bankDealStatus; Amount amount = new Amount() { FundsApplyType = CurrentApplyType, Money = Money, Password = Password, Remark = Remark }; amount.AccountId = UserManager.CurrentTradeAccount.AccountId;// 操作账号 amount.AccountType = UserManager.CurrentTradeAccount.AccountType; amount.AccountCode = CurrentSigningBank.AccountCode; _bankService.OutInMoney(amount, this.CurrentSigningBank, OutInMoneyCallback, ErrorCallback); //LogManager.WriteFundApplyLog(CurrentApplyType, // UserManager.CurrentTradeAccount, // Money,this.CurrentSigningBank); }); } } private BankSignResult temp_bankDealStatus; private void OutInMoneyCallback(BankSignResult bankDealStatus) { var caption = CurrentApplyType == FundsApplyType.Deposit ? Muchinfo.MTPClient.Resources.Client_Resource.Bank_InCashTips : Muchinfo.MTPClient.Resources.Client_Resource.Bank_OutCashTips; var successMessage = CurrentApplyType == FundsApplyType.Deposit ? Muchinfo.MTPClient.Resources.Client_Resource.Bank_InCash : Muchinfo.MTPClient.Resources.Client_Resource.Bank_OutCash; temp_bankDealStatus = bankDealStatus; Application.Current.Dispatcher.BeginInvoke(new Action(() => { //IsBusy = false; if (bankDealStatus.ReturnCode == 0) { if (IsPassWordEnabled) { if (_encryptKey == null) { var reqKey = new EncryptKeyRequest() { Currency = (UserManager.CurrentTradeAccount.FundsAccounts == null || !UserManager.CurrentTradeAccount.FundsAccounts.Any()) ? "RMB" : UserManager.CurrentTradeAccount.FundsAccounts[0].Currency, CusBankId = CurrentSigningBank.CusBankID+string.Empty, }; // _encryptKey = _bankService.QueryEncryptKey(reqKey, QueryEncryptKeyCallback, QueryErrorCallback); } } else { IsBusy = false; if (bankDealStatus.Status == BankDealStatus.BankDealStatus__Succeed) { MessageBoxHelper.ShowSuccess( string.Format(Muchinfo.MTPClient.Resources.Client_Resource.Bank_ApplaySuccess, successMessage), caption); } else if (bankDealStatus.Status == BankDealStatus.BankDealStatus__Pend) { MessageBoxHelper.ShowSuccess( string.Format(Muchinfo.MTPClient.Resources.Client_Resource.Bank_ApplaySubmit, successMessage), caption); } else if (bankDealStatus.Status == BankDealStatus.BankDealStatus__BankWebComfirm) { try { IPHelper.OpenWebAddress(bankDealStatus.WebAddress); } catch (Exception ex) { throw new MuchinfoException(ExceptionManager.OpenIEError); } finally { string tips = string.Format(Client_Resource.Tips_BankDepositWebComfrim, CurrentApplyType.Discription()); var messageBox = new MsgAlter(bankDealStatus.WebAddress, tips) { Owner = Application.Current.MainWindow, WindowStartupLocation = WindowStartupLocation.CenterOwner }; messageBox.ShowDialog(); } } if (_OKCommandTemp != null) _OKCommandTemp.DialogResult = true; } } else { ErrorManager.ShowReturnError(bankDealStatus.ReturnCode, caption); } })); } private void QueryEncryptKeyCallback(EncryptKey encryptKey) { _encryptKey = encryptKey; var encryptHelper = new TasEncryptHelper(); string encryptPWD = encryptHelper.EncryptPassd(_encryptKey.SecretKey, PhoneBankPassword); var bankDealStatus = temp_bankDealStatus; var req = new SignBankPDW() { AccountCode = CurrentSigningBank.AccountCode, ExchTicket = bankDealStatus.ExchTicket, ExtOperatorID = bankDealStatus.ExtOperatorID, CusBankId = CurrentSigningBank.CusBankID + string.Empty, BankAccountPWD = encryptPWD, Currency = (UserManager.CurrentTradeAccount.FundsAccounts == null || !UserManager.CurrentTradeAccount.FundsAccounts.Any()) ? "RMB" : UserManager.CurrentTradeAccount.FundsAccounts[0].Currency, }; //if (UserManager.CurrentTradeAccount.AccountType == eLoginUserType.LOGINUSERTYPE_TRADER && _areaAccount != null) //{ // req.AccountCode = _areaAccount.AccountCode; //} // var result = _bankService.SignBankPwd(req, UserManager.CurrentTradeAccount.LoginCode); _bankService.SignBankPwd(req, SignBankPwdCallback, ErrorCallback); } private void SignBankPwdCallback(int result) { IsBusy = false; var caption = CurrentApplyType == FundsApplyType.Deposit ? Muchinfo.MTPClient.Resources.Client_Resource.Bank_InCashTips : Muchinfo.MTPClient.Resources.Client_Resource.Bank_OutCashTips; var successMessage = CurrentApplyType == FundsApplyType.Deposit ? Muchinfo.MTPClient.Resources.Client_Resource.Bank_InCash : Muchinfo.MTPClient.Resources.Client_Resource.Bank_OutCash; Application.Current.Dispatcher.BeginInvoke(new Action(() => { if (result != 0) //密码 { ErrorManager.ShowReturnError(result, caption); } else { MessageBoxHelper.ShowSuccess( string.Format( Muchinfo.MTPClient.Resources.Client_Resource.Bank_ApplaySuccess, successMessage), caption); if (_OKCommandTemp != null) _OKCommandTemp.DialogResult = true; } })); } public void ErrorCallback(ErrorEntity error) { IsBusy = false; Application.Current.Dispatcher.BeginInvoke(new Action(() => { var caption = CurrentApplyType == FundsApplyType.Deposit ? Muchinfo.MTPClient.Resources.Client_Resource.Bank_InCashTips : Muchinfo.MTPClient.Resources.Client_Resource.Bank_OutCashTips; ErrorManager.ShowReturnError(error, caption); })); } public void QueryErrorCallback(ErrorEntity error) { IsBusy = false; if (!_isClose) Application.Current.Dispatcher.BeginInvoke(new Action(() => { var caption = CurrentApplyType == FundsApplyType.Deposit ? Muchinfo.MTPClient.Resources.Client_Resource.Bank_InCashTips : Muchinfo.MTPClient.Resources.Client_Resource.Bank_OutCashTips; ErrorManager.ShowReturnError(error, caption); })); } /// /// 取消命令 /// public RelayCommand CancelCommand { get { return new RelayCommand((view) => { view.DialogResult = false; }); } } /// /// 刷新可出资金 /// public RelayCommand RefreshCommand { get { return new RelayCommand(() => { //todo:更新可出资金 Task.Factory.TryStartNew(() => { // var useAmount = CalcUseAmount(); // UseAmount = Math.Round(useAmount, 2, MidpointRounding.AwayFromZero); }, () => IsBusy = false); }); } } private void SetSignBankInfo() { string inOutshowfield = string.Empty; if (CurrentApplyType == FundsApplyType.Deposit) { inOutshowfield = CurrentSigningBank.InShowField; } else { inOutshowfield = CurrentSigningBank.OutShowField; } if (inOutshowfield != null) { string[] showField = inOutshowfield.Split(','); PhoneBankPassIsEnabled = showField.Any(m => m == ((int)ShowFieldStatus.ShowField_BankAccountPWD) + string.Empty ); BankPassIsEnabled = showField.Any(m => m == ((int)ShowFieldStatus.ShowField_Draw_IdentifyCode) + string.Empty); RaisePropertyChanged(() => IsPassWordEnabled); IsShowIdentifyCode = showField.Any(m => m == ((int) ShowFieldStatus.ShowField_IdentifyCode) + string.Empty); //this.PhoneBankPassIsEnabled = value != null ? true : false; } // IsBusy = true; //BusyContent = Muchinfo.MTPClient.Resources.Client_Resource.Bank_GetBankInfomation_waiting; //System.Threading.Tasks.Task.Factory.TryStartNew( //() => //{ // // SigningBank configInfo = // _bankService.QueryBankParamConfig(CurrentSigningBank.CusBankID + string.Empty, QueryBankParamConfigCallback, QueryErrorCallback); //}, () => IsBusy = false); } private void QueryBankParamConfigCallback(List signingBank) { System.Windows.Application.Current.Dispatcher.BeginInvoke(new Action(() => { if (signingBank != null) { foreach (var sb in signingBank) { if (CurrentSigningBank.CusBankID != sb.CusBankID) { continue; } string inOutshowfield = string.Empty; if (CurrentApplyType == FundsApplyType.Deposit) { inOutshowfield = sb.InShowField; } else { inOutshowfield = sb.OutShowField; } if (inOutshowfield != null) { string[] showField = inOutshowfield.Split(','); string value = showField.FirstOrDefault(m => m == "8"); this.PhoneBankPassIsEnabled = value != null ? true : false; } } } //this.PhoneBankPassIsEnabled = (CurrentSigningBank != null && CurrentSigningBank.CusBankID == "10") ? true : false; })); } private bool _isClose = false; public override void Cleanup() { MessengerHelper.QuoteUnregister< List>(this, MessengerTokens.ReceiveRealTimeQuote); base.Cleanup(); _isClose = true; } } }