Exemple #1
0
        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);
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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);
        }
Exemple #5
0
 public async Task <SearchResult <Person> > SearchPersonsAsync(
     SearchPersonRequest input,
     CancellationToken cancellationToken)
 {
     return(await _personService.SearchAsync(input, cancellationToken));
 }