Exemplo n.º 1
0
        public async Task <ActionResult <List <GetCustomerAddressResponse> > > GetCustomerAddresses(Guid customerId, [FromQuery] GetCustomerAddressFilter filter)
        {
            var customerAddresses = await _customerAddressesService.GetCustomerAddresses(customerId, filter);

            if (customerAddresses is null)
            {
                return(NotFound());
            }
            return(Ok(customerAddresses));
        }
Exemplo n.º 2
0
        public async Task <List <GetCustomerAddressResponse> > GetCustomerAddresses(Guid customerId, GetCustomerAddressFilter filter)
        {
            // prepare filter predicate
            var predicate = PredicateBuilder.New <CustomerAddress>(true);

            if (!string.IsNullOrEmpty(filter?.SearchString))
            {
                predicate = predicate.Or(p => p.Name.ToLower().Contains(filter.SearchString.ToLower()));
                predicate = predicate.Or(p => p.Address.Street.ToLower().Contains(filter.SearchString.ToLower()));
                predicate = predicate.Or(p => p.Address.City.ToLower().Contains(filter.SearchString.ToLower()));
                predicate = predicate.Or(p => p.Address.ZipCode.ToLower().Contains(filter.SearchString.ToLower()));
                predicate = predicate.Or(p => p.Address.PhoneNumber.ToLower().Contains(filter.SearchString.ToLower()));
            }

            if (!string.IsNullOrEmpty(filter?.City))
            {
                predicate = predicate.And(p => p.Address.City.ToLower().Contains(filter.City.ToLower()));
            }

            var customerAddresses = await _unitOfWork.CustomerAddresses.FindWithAddress(customerId, predicate);

            return(_mapper.Map <List <GetCustomerAddressResponse> >(customerAddresses));
        }