示例#1
0
        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));
        }
示例#2
0
        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);
        }