コード例 #1
0
        public IActionResult Index([FromBody] CustomerResourceParameters parameters)
        {
            if (string.IsNullOrWhiteSpace(sharedKey))
            {
                return(BadRequest());
            }

            var result = new Result()
            {
                Success = true
            };

            try
            {
                if (parameters == null)
                {
                    parameters = new CustomerResourceParameters();
                }

                parameters.Key = sharedKey;
                var customers = _uow.Customers.GetAllCustomers(parameters);

                var customerList = _mapper.Map <IEnumerable <CustomerModel> >(customers).AsQueryable();
                result.Data = customerList.GetPaged(parameters.PageNo, parameters.PageSize);

                return(Ok(result));
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.Message);
                result.AddError(ex.Message);
            }

            return(BadRequest(result));
        }
コード例 #2
0
        public async Task <IReadOnlyList <Customer> > GetAllAsync(CustomerResourceParameters customerResourceParameters)
        {
            if (customerResourceParameters == null)
            {
                throw new ArgumentNullException(nameof(customerResourceParameters));
            }

            IQueryable <Customer> collection = (await _customerRepository.GetAllAsync().ConfigureAwait(true)).AsQueryable();

            if (string.IsNullOrEmpty(customerResourceParameters.CompanyNameFilter) &&
                string.IsNullOrWhiteSpace(customerResourceParameters.CompanyNameFilter) &&
                string.IsNullOrWhiteSpace(customerResourceParameters.SearchQuery) &&
                string.IsNullOrEmpty(customerResourceParameters.SearchQuery))
            {
                return(collection.ToList());
            }

            if (!string.IsNullOrEmpty(customerResourceParameters.CompanyNameFilter))
            {
                collection = collection.Where(q => q.CompanyName.Contains(customerResourceParameters.CompanyNameFilter.Trim()));
            }

            if (!string.IsNullOrEmpty(customerResourceParameters.SearchQuery))
            {
                collection = collection.Where(q => q.CompanyName.Contains(customerResourceParameters.SearchQuery) ||
                                              q.Address.Contains(customerResourceParameters.SearchQuery) ||
                                              q.ContactName.Contains(customerResourceParameters.SearchQuery) ||
                                              q.Phone.Contains(customerResourceParameters.SearchQuery));
            }

            return(collection.ToList());
        }
コード例 #3
0
        public async Task <IActionResult> GetCustomers([FromQuery] CustomerResourceParameters customerResourceParameters)
        {
            var customers = _mapper.Map <IReadOnlyList <CustomerDto> >(await _customerService.GetAllAsync(customerResourceParameters));

            if (customers == null || customers.Count == 0)
            {
                return(NotFound());
            }

            return(Ok(customers));
        }
コード例 #4
0
        public IQueryable <Customer> GetAllCustomers(CustomerResourceParameters parameters)
        {
            var customers = FindAll(c => c.SharedKey == parameters.Key && c.IsActive && !c.IsDeleted);

            #region Filter, Search & sort
            if (!string.IsNullOrWhiteSpace(parameters.Name))
            {
                var name = parameters.Name.Trim().ToLowerInvariant();
                customers = customers.Where(a => a.Name.ToLowerInvariant().Contains(name));
            }

            if (!string.IsNullOrWhiteSpace(parameters.Email))
            {
                var email = parameters.Email.Trim().ToLowerInvariant();
                customers = customers.Where(a => a.Email.ToLowerInvariant().Contains(email));
            }

            if (!string.IsNullOrWhiteSpace(parameters.Mobile))
            {
                var mobile = parameters.Mobile.Trim().ToLowerInvariant();
                customers = customers.Where(a => a.Mobile.ToLowerInvariant().Contains(mobile));
            }

            if (!string.IsNullOrEmpty(parameters.SearchQuery))
            {
                var searchQueryForWhereClause = parameters.SearchQuery.Trim().ToLowerInvariant();

                customers = customers
                            .Where(a => a.Name.ToLowerInvariant().Contains(searchQueryForWhereClause) ||
                                   a.Address.ToLowerInvariant().Contains(searchQueryForWhereClause) ||
                                   a.Telephone.ToLowerInvariant().Contains(searchQueryForWhereClause) ||
                                   a.Email.ToLowerInvariant().Contains(searchQueryForWhereClause) ||
                                   a.Mobile.ToLowerInvariant().Contains(searchQueryForWhereClause));
            }
            #endregion

            return(customers);
        }