internal DateFilter(DateTime date, DateSeachMode mode) { Date = date; Mode = mode; }
public void InitialControlsEvents() { addButton.Click += (s, e) => { try { var filter = new FilterControl(_console); filter.Initial(_filters.Keys); int count = filtersPanel.Controls.Count - 4; filter.Location = new Point(0, count * 30); filter.Parent = filtersPanel; filter.Anchor = AnchorStyles.Right | AnchorStyles.Top | AnchorStyles.Left; filter.Size = new Size(filtersPanel.Width - 7, 29); filter.Subscribe(this); filtersPanel.Controls.Add(filter); } catch (Exception exception) { _console?.AddException(exception); } }; removeButton.Click += (s, e) => { try { for (int i = filtersPanel.Controls.Count - 1; i >= 0; i--) { if (filtersPanel.Controls[i] is FilterControl) { filtersPanel.Controls[i].Dispose(); } } _filters.Keys.ForEach(i => _filters[i] = new SearchingTerm(String.Empty)); } catch (Exception exception) { _console?.AddException(exception); } }; fromCheckBox.CheckedChanged += (s, e) => { bool result = fromCheckBox.Checked; fromDateTimePicker.Enabled = result; if (!result) { if (toCheckBox.Checked) { toCheckBox.Checked = false; toDateTimePicker.Enabled = false; } _datesFilters.Clear(); } else { if (!_datesFilters.ContainsKey(DateSeachMode.OnDate)) { _datesFilters.Add(DateSeachMode.OnDate, new DateFilter(fromDateTimePicker.Value, DateSeachMode.OnDate)); } } _datesFiltersObservers.ForEach(i => i.OnNext(_datesFilters.Values.ToList())); }; toCheckBox.CheckedChanged += (s, e) => { if (!fromCheckBox.Checked) { if (toCheckBox.Checked) { ((CheckBox)s).CheckState = CheckState.Unchecked; } if (_datesFilters.ContainsKey(DateSeachMode.FromDate)) { _datesFilters.Remove(DateSeachMode.FromDate); } if (_datesFilters.ContainsKey(DateSeachMode.ToDate)) { _datesFilters.Remove(DateSeachMode.ToDate); } return; } toDateTimePicker.Enabled = toCheckBox.Checked; fromCheckBox.Text = toCheckBox.Checked ? "C" : "На"; if (!_datesFilters.ContainsKey(DateSeachMode.FromDate)) { _datesFilters.Add(DateSeachMode.FromDate, null); } _datesFilters[DateSeachMode.FromDate] = new DateFilter( fromDateTimePicker.Value, DateSeachMode.FromDate); if (!_datesFilters.ContainsKey(DateSeachMode.ToDate)) { _datesFilters.Add(DateSeachMode.ToDate, null); } _datesFilters[DateSeachMode.ToDate] = new DateFilter( toDateTimePicker.Value, DateSeachMode.ToDate); _datesFiltersObservers.ForEach(i => i.OnNext(_datesFilters.Values.ToList())); }; fromDateTimePicker.ValueChanged += (s, e) => { DateSeachMode mode = toCheckBox.Checked ? DateSeachMode.FromDate : DateSeachMode.OnDate; if (!_datesFilters.ContainsKey(mode)) { _datesFilters.Add(mode, null); } _datesFilters[mode] = new DateFilter( fromDateTimePicker.Value, mode); _datesFiltersObservers.ForEach(i => i.OnNext(_datesFilters.Values.ToList())); }; toDateTimePicker.ValueChanged += (s, e) => { var mode = DateSeachMode.ToDate; _datesFilters[mode] = new DateFilter( toDateTimePicker.Value, mode); _datesFiltersObservers.ForEach(i => i.OnNext(_datesFilters.Values.ToList())); }; }