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)); }
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()); }
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)); }
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); }