private TextSearchParameters PrepareTextSearchParameters(ContactSearchRequestModel request) { return(new TextSearchParameters { SearchFields = new List <string> { nameof(Contact.Name) }, SearchText = request.Name }); }
public async Task <PagedResponse <ContactOverviewResponseModel> > GetContactsAsync(ContactSearchRequestModel requestModel) { var sortingParameters = PrepareSortParameters(requestModel, allowedSortBy); var pagingParameters = PreparePagingParameters(requestModel); var textSearchParameters = PrepareTextSearchParameters(requestModel); var contacts = await contactRepository.GetAsync ( orderingParameters : sortingParameters, pagingParameters : pagingParameters, textSearchParameters : textSearchParameters ); var totalContacts = await contactRepository.GetCountAsync(null, textSearchParameters); var results = mapper.Map <IEnumerable <ContactOverviewResponseModel> >(contacts); return(new PagedResponse <ContactOverviewResponseModel> { Results = results, Pagination = new PaginationDataResponse { Page = pagingParameters.CurrentPage, PageSize = pagingParameters.ItemsPerPage, PageCount = (int)Math.Ceiling((decimal)totalContacts / pagingParameters.ItemsPerPage), ResultCount = totalContacts } }); }
public async Task <ActionResult <PagedResponse <ContactOverviewResponseModel> > > GetContacts([FromQuery] ContactSearchRequestModel request) { var businessRequest = mapper.Map <BusinessRequests.ContactSearchRequestModel>(request); var businessResponse = await service.GetContactsAsync(businessRequest); return(Ok(mapper.Map <PagedResponse <ContactOverviewResponseModel> >(businessResponse))); }