Пример #1
0
        private bool CanTakeEmployee(SearchCompanyDTO searchCompany, Employee employee)
        {
            var a = (searchCompany.EmployeeDateOfBirthTo == null || employee.DateOfBirth < searchCompany.EmployeeDateOfBirthTo);
            var b = (searchCompany.EmployeeDateOfBirthFrom == null || employee.DateOfBirth > searchCompany.EmployeeDateOfBirthFrom);
            var c = (!searchCompany.EmployeeJobTitles.Any() || searchCompany.EmployeeJobTitles.Contains(employee.JobTitle));
            var d = a && b && c;

            return(d);
        }
Пример #2
0
        public async Task <ICollection <CompanySearchResultDTO> > SearchCompany(SearchCompanyDTO searchCompany)
        {
            var result = await Task.Run(() =>
            {
                var entries = _dbContext.Companies.Include(x => x.Employees).Where(x =>
                                                                                   string.IsNullOrEmpty(searchCompany.Keyword) ||
                                                                                   (x.Name.Contains(searchCompany.Keyword) ||
                                                                                    x.Employees.Any(y =>
                                                                                                    y.FirstName.Contains(searchCompany.Keyword) ||
                                                                                                    y.LastName.Contains(searchCompany.Keyword)))).ToList();



                foreach (var company in entries)
                {
                    var filtered = new List <Employee>();

                    foreach (var employee in company.Employees)
                    {
                        if (CanTakeEmployee(searchCompany, employee))
                        {
                            filtered.Add(employee);
                        }
                    }

                    company.Employees.Clear();
                    company.Employees.AddRange(filtered);
                }

                var mapped = _mapper.Map <ICollection <CompanySearchResultDTO> >(entries);

                return(mapped);
            });

            return(result);
        }