public IActionResult ListEmployees(ListEmployeeFilter filter) { var employees = _repository.Employees; if (filter.DepartmentId.HasValue) { employees = employees.Where(e => e.DepartmentId == filter.DepartmentId.Value); } if (filter.EmployedSince.HasValue) { employees = employees.Where(e => e.EmploymentStartDate >= filter.EmployedSince.Value); } if (filter.Type.HasValue) { employees = employees.Where(e => e.Type == filter.Type.Value); } if (!string.IsNullOrWhiteSpace(filter.Name)) { employees = employees.Where(e => e.Name.Contains(filter.Name)); } var model = new ListEmployeeViewModel(); model.Employees = employees.Select(i => new ListEmployeeItem { Name = i.Name, Department = i.Department.Name, Type = i.Type, HireDate = i.EmploymentStartDate }).ToArray(); model.Filter = filter; model.Departments = _repository.Departments.ToArray() .Select(i => new SelectListItem() { Text = i.Name, Value = i.Id.ToString() }); model.EmployeeTypes = ((EmployeeType[])Enum.GetValues(typeof(EmployeeType))).Select(i => new SelectListItem { Text = i.ToString("G"), Value = ((int)i).ToString() }); return(View(model)); }
protected override void OnAppearing() { base.OnAppearing(); BindingContext = new ListEmployeeViewModel(); }