public async Task <SearchResult <Person> > SearchAsync( SearchPersonRequest request, CancellationToken cancellationToken) { FilterDefinition <Person> filter = Builders <Person> .Filter.Empty; if (!string.IsNullOrWhiteSpace(request.SearchText)) { filter &= Builders <Person> .Filter.Regex( x => x.Name, new BsonRegularExpression($".*{Regex.Escape(request.SearchText)}.*", "i")); } if (request.Groups is { } groups&& groups.Any()) { filter = filter & Builders <Person> .Filter.In(nameof(Person.Groups), groups); } IFindFluent <Person, Person>?cursor = _mediaStoreContext.Persons.Find(filter); long totalCount = await cursor.CountDocumentsAsync(cancellationToken); List <Person> persons = await cursor .Skip(request.PageNr *request.PageSize) .Limit(request.PageSize) .ToListAsync(); return(new SearchResult <Person>(persons, (int)totalCount)); }
public SearchPersonResponse Search([FromBody] SearchPersonRequest request) { SearchPersonResponse searchResponse = new SearchPersonResponse { Persons = new List <Person>(), }; searchResponse.Persons = _personSearch.Execute(request.SearchCriteria); return(searchResponse); }
public async Task <SearchPersonResponse> SearchPerson(SearchPersonRequest request) { var res = await _client.GetAsync($"person/{request.Query}/search"); var content = await res.Content.ReadAsStringAsync(); EnsureSuccessStatusCode(res, content); var searchPersonResponse = JsonConvert.DeserializeObject <SearchPersonResponse>(content); return(searchPersonResponse); }
public async Task <SearchPersonResponse> SearchPerson(SearchPersonRequest request) { SearchPersonResponse searchPersonResponse = new SearchPersonResponse(); try { searchPersonResponse = (await App.Database.SearchPerson(new SearchPersonRequest { Query = request.Query })); } catch (Exception e) { await _dialogService.ShowMessage($"The server returned an error: {e.Message}", "Error", "OK", null); } return(searchPersonResponse); }
public async Task <SearchResult <Person> > SearchPersonsAsync( SearchPersonRequest input, CancellationToken cancellationToken) { return(await _personService.SearchAsync(input, cancellationToken)); }