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()); }
GetEmployeesForCompany(Guid companyId, [FromQuery] EmployeeDtoParameters parameters) { if (!await _companyRepository.CompanyExistAsync(companyId)) { return(NotFound()); } var employees = await _companyRepository.GetEmployeesAsync(companyId, parameters); return(Ok(_mapper.Map <IEnumerable <EmployeeDto> >(employees))); }
private async void GetEmployeesForCompany(CompanyDto obj) { Employees.Clear(); var parameters = new EmployeeDtoParameters(); var result = await enterpriseApi.GetEmployeesForCompany(obj.Id, parameters).RunApi(); foreach (var item in result) { Employees.Add(item); } }
public async Task <ActionResult <IEnumerable <EmployeeDto> > > GetEmployeesForCompany( Guid companyId, [FromQuery] EmployeeDtoParameters parameters) { if (!await companyRepository.Where(t => t.Id.Equals(companyId)).AnyAsync()) { return(NotFound()); } var employees = await employeeService.GetEmployeesForCompany(companyId, parameters); return(Ok(employees)); }
public async Task <IActionResult> GetEmployeesForCompany(Guid companyId, [FromQuery] EmployeeDtoParameters parameters) { //判断Uri query string 中的 orderby 是否合法(视频P38) if (!_propertyMappingService.ValidMappingExistsFor <CompanyDto, Company>(parameters.OrderBy)) { return(BadRequest()); //返回状态码400 } if (await _companyRepository.CompanyExistsAsync(companyId)) { var employees = await _companyRepository.GetEmployeesAsync(companyId, parameters); var employeeDtos = _mapper.Map <IEnumerable <EmployeeDto> >(employees); return(Ok(employeeDtos)); } else { return(NotFound()); } }
public async Task <ActionResult <IEnumerable <EmployeeDto> > > GetEmployeesFromCompany ( Guid companyId, [FromQuery] EmployeeDtoParameters parameters ) { if (!await _companyRepository.CompanyExistsAsync(companyId)) { return(NotFound()); } var employees = await _companyRepository.GetEmployeesAsync(companyId, parameters); if (employees == null) { return(NotFound()); } var employeeDtos = _mapper.Map <IEnumerable <EmployeeDto> >(employees); return(Ok(employeeDtos)); }
public async Task <IEnumerable <Employee> > GetEmployeesAsync(Guid companyId, EmployeeDtoParameters parameters) { if (companyId == Guid.Empty) { throw new ArgumentNullException(nameof(companyId)); } var genderDisplay = parameters.Gender; var q = parameters.Q; //if (string.IsNullOrWhiteSpace(genderDisplay) && string.IsNullOrWhiteSpace(q)) //{ // return await _context.Employees.Where(x => x.CompanyId == companyId).OrderBy(x => x.EmployeeNo).ToListAsync(); //} var items = _context.Employees.Where(x => x.CompanyId == companyId); if (!string.IsNullOrWhiteSpace(genderDisplay)) { genderDisplay = genderDisplay.Trim(); var gender = Enum.Parse <Gender>(genderDisplay); items = items.Where(x => x.Gender == gender); } if (!string.IsNullOrWhiteSpace(q)) { q = q.Trim(); items = items.Where(x => x.EmployeeNo.Contains(q) || x.FirstName.Contains(q) || x.LastName.Contains(q)); } //if (!string.IsNullOrWhiteSpace(parameters.OrderBy)) //{ // if (parameters.OrderBy.ToLowerInvariant()=="name") // { // items = items.OrderBy(x => x.FirstName).ThenBy(x => x.FirstName); // } //} var mappingDictionary = _propertyMappingService.GetPropertyMapping <EmployeeDto, Employee>(); var item = items.ApplySort(parameters.OrderBy, mappingDictionary); return(await items.ToListAsync()); }
/// <summary> /// 公司id条件查询 /// </summary> /// <param name="companyId"></param> /// <param name="parameters"></param> /// <returns></returns> public async Task <IEnumerable <Employee> > GetEmployeesAsync(Guid companyId, EmployeeDtoParameters parameters) { if (companyId == Guid.Empty) { throw new ArgumentNullException(nameof(companyId)); } var queryExpression = _context.Employees.Where(x => x.CompanyId == companyId); //性别筛选 if (!string.IsNullOrWhiteSpace(parameters.Gender)) { parameters.Gender = parameters.Gender.Trim(); var gender = Enum.Parse <Gender>(parameters.Gender); queryExpression = queryExpression.Where(x => x.Gender == gender); } //查询 if (!string.IsNullOrWhiteSpace(parameters.Q)) { parameters.Q = parameters.Q.Trim(); queryExpression = queryExpression.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") // { // queryExpression = queryExpression.OrderBy(x => x.FirstName).ThenBy(x => x.LastName); // } //} //排序(P36 P37) if (!string.IsNullOrWhiteSpace(parameters.OrderBy)) { //取得映射关系字典 var mappingDictionary = _propertyMappingService.GetPropertyMapping <EmployeeDto, Employee>(); //ApplySort是一个自己定义的拓展方法 //传入 FormQuery 中的 OrderBy 字符串与映射关系字典 //返回排序好的字符串 queryExpression = queryExpression.ApplySort(parameters.OrderBy, mappingDictionary); } return(await queryExpression.ToListAsync()); }
/// <summary> /// Gets the employees for company. /// </summary> /// <param name="companyId">The company identifier.</param> /// <param name="parameters">The parameters.</param> /// <returns></returns> /// <exception cref="NotImplementedException"></exception> public async Task <PagedList <EmployeeDto> > GetEmployeesForCompany(Guid companyId, EmployeeDtoParameters parameters) { Guards.ThrowIfNull(parameters); var query = employeeRepository.Select.Where(t => t.CompanyId.Equals(companyId)); var mappingDictionary = propertyMappingService.GetPropertyMapping <EmployeeDto, Employee>(); query = query.ApplySort(parameters.OrderBy, mappingDictionary); var pagedEmployees = await PagedList <EmployeeDto> .CreateAsync( query, parameters.PageNumber, parameters.PageSize, Mapper); return(pagedEmployees); }