public IReadOnlyCollection <Business> QueryAsync(QueryBusinessParameters parameters) { var queryable = _table.CreateQuery <Business>() .Where(x => x.IsApproved); if (!string.IsNullOrEmpty(parameters.IsoCountryCode)) { queryable = queryable.Where(x => x.CountryIsoCode == parameters.IsoCountryCode); } if (!string.IsNullOrEmpty(parameters.Term)) { queryable = queryable.Where(x => x.Name.Equals(parameters.Term)); } return(queryable .Take(parameters.Take) .ToList()); }
private static QueryBusinessParameters GetModelFromQueryParameters(IQueryCollection query) { var dto = new QueryBusinessParameters(); if (query["take"].FirstOrDefault() is string take) { dto.Take = Convert.ToInt32(take); } if (query["term"].FirstOrDefault() is string term) { dto.Term = term; } if (query["isoCountryCode"].FirstOrDefault() is string isoCountryCode) { dto.IsoCountryCode = isoCountryCode; } new QueryBusinessParameters.Validator().ValidateAndThrow(dto); return(dto); }