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));
        }
Exemplo n.º 3
0
        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);
        }