public async Task <IEnumerable <Erc20ContractModel> > GetAsync(Erc20ContractQuery query) { var filterBuilder = Builders <Erc20ContractEntity> .Filter; var filter = filterBuilder.Empty; if (!string.IsNullOrEmpty(query.Address)) { filter &= filterBuilder.Eq(x => x.Address, query.Address); } else if (!string.IsNullOrEmpty(query.NameOrSymbol)) { filter &= filterBuilder.Or ( filterBuilder.Regex(x => x.TokenSymbol, query.NameOrSymbol), filterBuilder.Regex(x => x.TokenName, query.NameOrSymbol) ); } return((await _collection.Find(filter) .SortBy(x => x.TokenSymbol) .ThenBy(x => x.TokenName) .ThenBy(x => x.Address) .Skip(query.Start) .Limit(query.Count) .ToListAsync()) .Select(_mapper.Map <Erc20ContractModel>)); }
private async Task <IEnumerable <Erc20TokenResponse> > QueryServiceAsync(Erc20ContractQuery query) { return((await _contractService.GetAsync(query)) .Select(x => new Erc20TokenResponse { ContractAddress = x.Address, Decimals = x.TokenDecimals, Name = x.TokenName, Symbol = x.TokenSymbol, TotalSupply = x.TokenTotalSupply.ToString() })); }
public async Task <IEnumerable <Erc20ContractModel> > GetAsync(Erc20ContractQuery query) { return(await _contractRepository.GetAsync(query)); }