protected override IQuery <Company> ApplyWhereClause(IQuery <Company> query, CompanyFilterDto filter) { if (string.IsNullOrWhiteSpace(filter.Name)) { return(query); } return(query.Where(new SimplePredicate(nameof(Company.Name), ValueComparingOperator.StringContains, filter.Name))); }
protected override IQuery <Company> ApplyWhereClause(IQuery <Company> query, CompanyFilterDto filter) { if (filter.Ico < 0) { return(query); } return(query.Where(new SimplePredicate(nameof(Company.Ico), ValueComparingOperator.Equal, filter.Ico))); }
public IResponseDTO SearchCompanies(CompanyFilterDto filterDto) { try { var query = _appDbContext.Companies .Include(x => x.Country) .Include(x => x.Creator) .Include(x => x.Updator) .Where(x => !x.IsDeleted); if (filterDto != null) { if (!string.IsNullOrEmpty(filterDto.Name)) { query = query.Where(x => x.Name.Trim().ToLower().Contains(filterDto.Name.Trim().ToLower())); } if (!string.IsNullOrEmpty(filterDto.Email)) { query = query.Where(x => x.Email.Trim().ToLower().Contains(filterDto.Email.Trim().ToLower())); } if (!string.IsNullOrEmpty(filterDto.BusinessRegisterationNumber)) { query = query.Where(x => x.BusinessRegisterationNumber.Trim().ToLower().Contains(filterDto.BusinessRegisterationNumber.Trim().ToLower())); } if (!string.IsNullOrEmpty(filterDto.TaxRegisterationNumber)) { query = query.Where(x => x.TaxRegisterationNumber.Trim().ToLower().Contains(filterDto.TaxRegisterationNumber.Trim().ToLower())); } if (filterDto.CountryId != null) { query = query.Where(x => x.Country.Id == filterDto.CountryId); } } //Check Sort Property if (!string.IsNullOrEmpty(filterDto?.SortProperty)) { //query = query.OrderBy( // string.Format("{0} {1}", filterDto.SortProperty, filterDto.IsAscending ? "ASC" : "DESC")); } else { query = query.OrderByDescending(x => x.Id); } // Pagination var total = query.Count(); if (filterDto.PageIndex.HasValue && filterDto.PageSize.HasValue) { query = query.Skip((filterDto.PageIndex.Value - 1) * filterDto.PageSize.Value).Take(filterDto.PageSize.Value); } var datalist = _mapper.Map <List <CompanyDto> >(query.ToList()); _response.IsPassed = true; _response.Data = new { List = datalist, Total = total, }; } catch (Exception ex) { _response.Data = null; _response.IsPassed = false; _response.Errors.Add($"Error: {ex.Message}"); } return(_response); }
public IResponseDTO SearchCompanies([FromQuery] CompanyFilterDto filterDto) { _response = _companyService.SearchCompanies(filterDto); return(_response); }
/// <summary> /// Gets companies according to filter /// </summary> /// <param name="filter"></param> /// <returns></returns> public async Task <QueryResultDto <CompanyDto, CompanyFilterDto> > GetCompaniesAsync(CompanyFilterDto filter) { using (UnitOfWorkProvider.Create()) { var companyListQueryResult = await companyService.ListCompaniesAsync(filter); return(companyListQueryResult); } }