//Фильтр по зарплате public bool SalaryFilter(Employee employee, FilterClass filterParams) { if (filterParams.More && filterParams.Less) { if (employee.Salary > filterParams.Salary && employee.Salary < filterParams.MaxSalary) { return(true); } } else { if (filterParams.More) { if (employee.Salary > filterParams.Salary) { return(true); } } if (filterParams.Less) { if (employee.Salary < filterParams.Salary) { return(true); } } } return(false); }
//Фильтрация сотрудников public List <Employee> EmployeeFilter(Filter filter, FilterClass filterParams) { List <Employee> emps = new List <Employee>(); foreach (var elem in Employees) { if (filter(elem, filterParams)) { emps.Add(elem); } } return(emps); }
//Проверка и вызов фильтра по одной стороне (простой) private bool CheckAndCallSimpleFilter(string strSalary, out List <Employee> employees) { if (double.TryParse(strSalary, out double salary)) { var filterObj = new FilterClass(moreFilter, lessFilter, salary); employees = CallFilter(filterObj); return(true); } else { employees = null; return(false); } }
//Проверка и вызов фильтра по диапазону private bool CheckAndCallRangeFilter(string strSalary, string strMaxSalary, out List <Employee> employees) { if (double.TryParse(strSalary, out double minSalary) && double.TryParse(strMaxSalary, out double maxSalary)) { var filterObj = new FilterClass(minSalary, maxSalary); employees = CallFilter(filterObj); return(true); } else { employees = null; return(false); } }
//Вызов фильтра private List <Employee> CallFilter(FilterClass filterObj) { var tempList = list; return(tempList.EmployeeFilter(tempList.SalaryFilter, filterObj)); }