public async Task <ApiResult <List <WalletResponse> > > GetWalletsByFilterAsync(UInt32 page = 1, UInt32 perPage = 10, string id = "", FilterOperator idOperator = FilterOperator.None, ulong balance = 0, FilterOperator balanceOperator = FilterOperator.None) { var url = $"{baseUrl}/api/v1/wallets"; var nameValues = new List <KeyValuePair <string, string> >(); if (!string.IsNullOrEmpty(id) && idOperator != FilterOperator.None) { nameValues.Add(new KeyValuePair <string, string>("id", $"{idOperator.GetName()}[{id}]")); } if ((balance >= 0) && balanceOperator != FilterOperator.None) { nameValues.Add(new KeyValuePair <string, string>("balance", $"{balanceOperator.GetName()}[{balance}]")); } var query = await(new FormUrlEncodedContent(nameValues).ReadAsStringAsync()); if (!string.IsNullOrWhiteSpace(query)) { url += "?" + query; } return(await apiClient.GetAsync <ApiResult <List <WalletResponse> > >(url).ConfigureAwait(false)); }
public async Task <ApiResult <List <TransactionResponse> > > GetTransactionsByFilterAsync(string walletId = "", UInt32 accountIndex = 0, string address = "", ulong page = 1, uint perPage = 10, string id = "", FilterOperator idOperator = FilterOperator.None, DateTime createdAt = default(DateTime), FilterOperator createAtOperator = FilterOperator.None, SortByOperator sortByCreateAt = SortByOperator.DES) { var url = $"{baseUrl}/api/v1/transactions"; var nameValues = new List <KeyValuePair <string, string> >(); if (!string.IsNullOrWhiteSpace(walletId)) { nameValues.Add(new KeyValuePair <string, string>("wallet_id", walletId)); } if (accountIndex != 0 && !string.IsNullOrWhiteSpace(walletId)) { nameValues.Add(new KeyValuePair <string, string>("account_index", accountIndex.ToString())); } if (!string.IsNullOrWhiteSpace(address)) { nameValues.Add(new KeyValuePair <string, string>("address", address)); } if (page != 1) { nameValues.Add(new KeyValuePair <string, string>("page", page.ToString())); } if (perPage != 10) { nameValues.Add(new KeyValuePair <string, string>("per_page", perPage.ToString())); } if (!string.IsNullOrWhiteSpace(id) && idOperator != FilterOperator.None) { string ops = $"{idOperator.GetName()}[{id}]"; nameValues.Add(new KeyValuePair <string, string>("id", ops)); } if (createdAt != default(DateTime) && createAtOperator != FilterOperator.None) { string ops = $"{createAtOperator.GetName()}[{createdAt.ToString("s")}]"; nameValues.Add(new KeyValuePair <string, string>("created_at", ops)); nameValues.Add(new KeyValuePair <string, string>("sort_by", $"{sortByCreateAt.GetName()}[created_at]")); } var query = await(new FormUrlEncodedContent(nameValues).ReadAsStringAsync()); if (!string.IsNullOrWhiteSpace(query)) { url += "?" + query; } var result = await apiClient.GetAsync <ApiResult <List <TransactionResponse> > >(url).ConfigureAwait(false); return(result); }