コード例 #1
0
 private TextSearchParameters PrepareTextSearchParameters(ContactSearchRequestModel request)
 {
     return(new TextSearchParameters
     {
         SearchFields = new List <string> {
             nameof(Contact.Name)
         },
         SearchText = request.Name
     });
 }
コード例 #2
0
        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
                }
            });
        }
コード例 #3
0
        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)));
        }