Beispiel #1
0
 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);
 }