public IEnumerable <Employee> GetEmployeesWith(GridFilterParameters parameters) { if (parameters.OfficeGroupName == @"Все" && !parameters.AnyDaysNumber) { return(store.FindByQuery <Employee>(e => e.Fired == parameters.IsFired && e.HoursFullDays >= parameters.DaysNumberFrom * 8 && e.HoursFullDays <= parameters.DaysNumberTo * 8).OrderBy(e => e.FullName)); } if (parameters.OfficeGroupName == @"Все") { return(store.FindByQuery <Employee>(e => e.Fired == parameters.IsFired).OrderBy(e => e.FullName)); } if (!parameters.AnyDaysNumber) { return(store.FindByQuery <Employee>(e => e.Fired == parameters.IsFired && parameters.SelectedOffices.Contains(e.Office) && e.HoursFullDays >= parameters.DaysNumberFrom * 8 && e.HoursFullDays <= parameters.DaysNumberTo * 8).OrderBy(e => e.FullName)); } return(store.FindByQuery <Employee>(e => e.Fired == parameters.IsFired && parameters.SelectedOffices.Contains(e.Office)).OrderBy(e => e.FullName)); }
private void BtnGridFilter_Click(object sender, EventArgs e) { var gridFilter = new GridFilterForm(filterParameters); if (gridFilter.ShowDialog() == DialogResult.OK) { filterParameters = gridFilter.Parameters; filteredEmployees = gridLoader.GetAndLoadWith(filterParameters); tstbFullNameSearcher.Text = null; } }
public EmployeeTableForm() { filteredEmployees = new List <Employee>(); repository = new Repository(); ChangeNameFields(); InitializeComponent(); var selectedOffices = repository.GetAllEmployees().Select(e => e.Office).Distinct().ToList(); var allOffices = repository.GetAllEmployees().Select(e => e.Office).Distinct().ToList(); filterParameters = GridFilterParameters.GetBaseParameters(selectedOffices, allOffices); gridLoader = new EmployeeLoader(dgvEmployees, filteredEmployees, repository, slbEmployeesCount); dgvEmployees.Columns[4].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; }
public void LoadWith(GridFilterParameters parameters) { dataGridEmployees.Rows.Clear(); filteredEmployees.Clear(); if (repository.TryGetNewOffices(parameters.AllOffices, out var newOffices)) { parameters.AllOffices.AddRange(newOffices); } filteredEmployees.AddRange(repository.GetEmployeesWith(parameters)); foreach (var employee in filteredEmployees) { dataGridEmployees.Rows.Add(employee.FullName, employee.Office, employee.HoursFullDays / 8, employee.HoursPartialDays, employee.Comment); } }
public List <Employee> GetAndLoadWith(GridFilterParameters parameters) { LoadWith(parameters); RefreshEmployeeCounter(filteredEmployees.Count); return(filteredEmployees); }