public async Task <EmployeeSearchResponse> SearchAsync(string keyword, string langCode) { EmployeeSearchResponse employeeSearchResponse = new EmployeeSearchResponse(); string indexName = $"employees_{langCode}"; ISearchResponse <Employee> searchResponse = await _elasticClient.SearchAsync <Employee>(x => x .Index(indexName) .Query(q => q.MultiMatch(mp => mp .Query(keyword) .Fields(f => f.Fields(f1 => f1.jobTitle, f2 => f2.Name ))) && q.DateRange(r => r .Field(f => f.dateofStart) .LessThan(DateTime.Today.AddYears(-5)) ) )); if (searchResponse.IsValid && searchResponse.Documents != null) { employeeSearchResponse.Total = (int)searchResponse.Total; employeeSearchResponse.Employees = searchResponse.Documents; } return(employeeSearchResponse); }
public async Task <IActionResult> Employees(string keyword) { var requestCultureFeature = Request.HttpContext.Features.Get <IRequestCultureFeature>(); CultureInfo culture = requestCultureFeature.RequestCulture.Culture; EmployeeSearchResponse employeeSearchResponse = await _employeeService.SearchAsync(keyword, culture.TwoLetterISOLanguageName); return(View(employeeSearchResponse)); }
public EmployeeSearchResponse Map(EmployeeSearch employee) { if (employee == null) { return(null); } var response = new EmployeeSearchResponse() { EmployeeId = employee.EmployeeId, FirstName = employee.FirstName, LastName = employee.LastName, Bio = employee.Bio, SubDepartmentName = employee.SubDepartmentName, DepartmentName = employee.DepartmentName, ProfileImage = employee.ProfileImage, FbprofileLink = employee.FbprofileLink, TwitterProfileLink = employee.TwitterProfileLink }; return(response); }