using Muchinfo.MTPClient.Data;
using Muchinfo.MTPClient.Data.Model.Account;
using Muchinfo.MTPClient.Data.Model.Bank;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
namespace Muchinfo.MTPClient.IService
{
public interface IBankService
{
///
/// 进行银行解约申请
///
/// 银行信息
/// 交易账号
/// 错误码
// int BankCaneclSign(SigningBank bankInfo, TradeAccount tradeAccount, out BankSignResult bankSignResult);
void BankCaneclSign(SigningBank bankInfo, Action successAction, Action errorAction);
///
/// 签约银行申请
///
/// The signing bank.
/// The trade account.
/// System.Int32.
// int BankSign(SigningBank signingBank, TradeAccount tradeAccount, out BankSignResult bankSignResult);
void BankSign(SigningBank signingBank, Action successAction, Action errorAction);
///
/// 签约信息变更
///
///
///
///
//int SignUpdate(SigningBank signingBank, TradeAccount tradeAccount);
void SignUpdate(SigningBank signingBank, Action successAction, Action errorAction);
///
/// 客户签约银行信息查询
///
///
///
// ObservableCollection QueryBankCustomerSign(TradeAccount tradeAccount);
void QueryBankCustomerSign(string accountCode, Action> successAction, Action errorAction);
///
/// 托管银行简要信息查询
///
///
///
// List QueryCusBankInfo(TradeAccount tradeAccount);
void QueryCusBankInfo(Action> successAction, Action errorAction);
///
/// 银行信息查询
///
///
///
//List GetBanks(TradeAccount tradeAccount);
///
/// 查询银行信息
///
///
///
//List QueryBankInfo(TradeAccount tradeAccount);
void QueryBankInfo(Action> successAction, Action errorAction);
///
/// 支行查询
///
///
///
///
List GetBranchBanks(string bankId, string cityName, TradeAccount tradeAccount);
///
/// 委托银行设置查询
///
///
///
///
/// // SigningBank QueryBankParamConfig(string cusBankID, TradeAccount tradeAccount);
void QueryBankParamConfig(string cusBankID, Action> successAction, Action errorAction);
///
/// 获取省份
///
///
List> GetProvinces(TradeAccount tradeAccount);
///
/// 获取城市
///
///
List GetCitys(string province, TradeAccount tradeAccount);
///
/// 出入金查询
///
///
///
List QueryBankOutIn(DateTime startDate, DateTime endDate, TradeAccount tradeAccount);
///
/// 出入金请求
///
///
/// The trade account.
/// 申请金额
/// 返回码:1为成功,其它为失败
//int OutInMoney(Amount amount, TradeAccount tradeAccount, SigningBank bankAccountInfo, out BankSignResult bankSignResult);
void OutInMoney(Amount amount, SigningBank bankAccountInfo, Action successAction, Action errorAction);
///
/// 签约银行密码确认
///
/// 提交参数
/// 登录账号
///
// int SignBankPwd(SignBankPDW signbPdw, string loginCode);
void SignBankPwd(SignBankPDW signbPdw, Action successAction, Action errorAction);
///
/// 查询密码加密钥
///
/// 密钥请求参数
/// 登录账号
///
// EncryptKey QueryEncryptKey(EncryptKeyRequest request, string loginCode);
void QueryEncryptKey(EncryptKeyRequest request, Action successAction, Action errorAction);
///
/// 查询一级省列表
///
///
// List QueryProvinceInfo(TradeAccount tradeAccount);
void QueryProvinceInfo(Action> successAction, Action errorAction);
///
/// 查询一级市列表
///
///
///
//List QueryCityInfo(string provinceCode, TradeAccount tradeAccount);
void QueryCityInfo(string provinceCode, Action> successAction, Action errorAction);
///
/// 出入金查询
///
///
///
///
///
void QueryBankOutIn(string statement, List queryCommonParams, Action> successAction,
Action errorAction);
///
/// 查询账号所属会员账号信息
///
/// 交易员ID
///
///
void QueryMemberAccountInfo(ulong accountId, Action> successAction,
Action errorAction);
///
/// 查询签约信息
///
/// ID
///
///
void QueryBankCustomerSignInfo(ulong accountId, Action> successAction,
Action errorAction);
///
/// 查询托管银行信息
///
///
///
void QueryCusBankParamConfig(ulong accountId, Action> successAction,
Action errorAction);
///
/// 查询银行信息(通用查询,使用MTP库)
///
/// 银行列表成功回应
/// 错误
void QueryCommonBankInfo(List CommonParams, Action> successAction, Action errorAction);
///
/// 获取手机验证码
///
/// 错误码
// int BankCaneclSign(SigningBank bankInfo, TradeAccount tradeAccount, out BankSignResult bankSignResult);
void BankGetIdentifyCode(IdentifyCodeReq bankInfo, Action successAction, Action errorAction);
///
/// 获取银行账号余额
///
/// 签约信息
/// 成功回应
/// 失败回应
void GetBankBalace(SigningBank bankInfo, Action> successAction, Action errorAction);
///
/// 解绑银行卡
///
/// 银行信息
// int BankCaneclSign(SigningBank bankInfo, TradeAccount tradeAccount, out BankSignResult bankSignResult);
void BankUnBindBankCard(SigningBank bankInfo, Action successAction, Action errorAction);
///
/// 绑银行卡
///
/// 银行信息
// int BankCaneclSign(SigningBank bankInfo, TradeAccount tradeAccount, out BankSignResult bankSignResult);
void BankBindingBankCard(SigningBank bankInfo, Action successAction, Action errorAction);
}
}