public Task <IEnumerable <Employee> > GetEmployeesAsync(Guid companyId, EmployeeDtoParameters parameters) { //if (string.IsNullOrWhiteSpace(parameters.Gender) && string.IsNullOrWhiteSpace(parameters.Q)) // return Task.FromResult(context.Employees.Where(x => x.CompanyId == companyId).OrderBy(x => x.EmployeeNo).AsEnumerable()); var query = context.Employees.Where(x => x.CompanyId == companyId); if (!string.IsNullOrWhiteSpace(parameters.Gender)) { var gender = Enum.Parse <Gender>(parameters.Gender.Trim()); query = query.Where(x => x.Gender == gender); } if (!string.IsNullOrWhiteSpace(parameters.Q)) { parameters.Q = parameters.Q.Trim(); query = query.Where(x => x.EmployeeNo.Contains(parameters.Q) || x.FirstName.Contains(parameters.Q) || x.LastName.Contains(parameters.Q)); } //if (!string.IsNullOrWhiteSpace(parameters.OrderBy)) //{ // if (parameters.OrderBy.ToLower() == "name") // query = query.OrderBy(x => x.FirstName).ThenBy(x => x.LastName); //} return(Task.FromResult(query.AsEnumerable())); }
public async Task <IEnumerable <Employee> > GetEmployeesAsync(Guid companyId, EmployeeDtoParameters parameters) { if (companyId == Guid.Empty) { throw new ArgumentNullException(nameof(companyId)); } var items = _context.Employees.Where(x => x.CompanyId == companyId); if (!string.IsNullOrWhiteSpace(parameters.Gender)) { parameters.Gender = parameters.Gender.Trim(); var gender = Enum.Parse <Gender>(parameters.Gender); items = items.Where(x => x.Gender == gender); } if (!string.IsNullOrWhiteSpace(parameters.Q)) { parameters.Q = parameters.Q.Trim(); items = items.Where(x => x.EmployeeNo.Contains(parameters.Q) || x.FirstName.Contains(parameters.Q) || x.LastName.Contains(parameters.Q)); } var mappingDictionary = _propertyMappingService.GetPropertyMapping <EmployeeDto, Employee>(); items = items.ApplySort(parameters.OrderBy, mappingDictionary); return(await items.ToListAsync()); }
public async Task<IEnumerable<Employee>> GetEmployeesAsync(Guid companyId,EmployeeDtoParameters parameters) { if (companyId == null) { throw new ArgumentNullException(nameof(companyId)); } var items = _context.Employees.Where(x => x.CompanyId == companyId); //先预设一个所有数据的集合IQueryable(此时并不会立即查询数据库,而是相当于拼SQL语句的过程) if (!string.IsNullOrWhiteSpace(parameters.Gender)) //如果筛选条件 genderDisplay不为空,返回过滤后的List { parameters.Gender = parameters.Gender.Trim(); var gender = Enum.Parse<Gender>(parameters.Gender); //转换为枚举类型 items = items.Where(x => x.Gender == gender); } if (!string.IsNullOrWhiteSpace(parameters.Q)) //如果搜索条件 q 不为空,返回全文搜索后的List { parameters.Q = parameters.Q.Trim(); items = items.Where(x => x.EmployeeNo.Contains(parameters.Q) || x.FirstName.Contains(parameters.Q) || x.LastName.Contains(parameters.Q) ); } if (!string.IsNullOrWhiteSpace(parameters.OrderBy)) { if (parameters.OrderBy.ToLowerInvariant() == "name") { items = items.OrderBy(x => x.FirstName).ThenBy(x => x.LastName); } } var mappingDictionary = _propertyMappingService.GetPropertyMapping<EmployeeDto, Employee>(); items = items.ApplySort(parameters.OrderBy, mappingDictionary); return await items.ToListAsync(); }