123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200 |
- using Microsoft.EntityFrameworkCore;
- using Prism.Commands;
- using Prism.Mvvm;
- using System;
- using System.Collections.Generic;
- using System.Collections.ObjectModel;
- using System.ComponentModel;
- using System.Linq;
- using System.Windows;
- using System.Windows.Input;
- using WpfAppUI.Model;
- using WpfAppUI.View.WindowEmploee;
- namespace WpfAppUI.ViewModel
- {
- internal class EmploeeViewModel : BindableBase
- {
- #region Поля
- private DelegateCommand _addCommand;
- private DelegateCommand _undoCommand;
- private DelegateCommand _editCommand;
- private DelegateCommand _searchCommand;
- private DelegateCommand _saveCommand;
- private DelegateCommand _deleteCommand;
- private DelegateCommand _filterClear;
- private Emploee _selectedItemInDataGrid;
- private string _searchFilterSurname;
- private Post _searchFilterPost;
- private Visibility _visibilityText;
- private ObservableCollection<Emploee> EmploeeFilter;
- #endregion
- #region Реализация методов для привязки
- private void UndoCommandRealization()
- {
- MessageBox.Show("Отменить");
- }
- private void AddCommandRealization()
- {
- NewEmploee emploee = new NewEmploee();
- Nullable<bool> dialogResult = emploee.ShowDialog();
- if (dialogResult == false)
- {
- UpdateData();
- }
- }
- private void EditCommandRealization()
- {
- if (_selectedItemInDataGrid != null)
- {
- EditEmploee editEmploee = new EditEmploee(_selectedItemInDataGrid.id);
- Nullable<bool> dialogResult = editEmploee.ShowDialog();
- if (dialogResult == false)
- {
- UpdateData();
- }
- }
- else
- MessageBox.Show("Выберите строку с нужным сотрудником", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
- }
- private void SearchCommandRealization()
- {
- MessageBox.Show("Поиск");
- }
- private void SaveCommandRealization()
- {
- MessageBox.Show("Сохранить");
- }
- private void DeleteCommandRealization()
- {
- if ( _selectedItemInDataGrid != null)
- {
- if (MessageBox.Show($"Вы уверены что хотите удалить рабочего {_selectedItemInDataGrid.Surname} безвозвратно?", "Удаление сотрудника", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
- {
- if (!DBRequests.DeleteEmploeeById(_selectedItemInDataGrid.id))
- MessageBox.Show("Ошибка при удалении", "Ошибка");
- else
- MessageBox.Show("Сотрудник удалён успешно", "Успешный успех");
- UpdateData();
- }
- } else
- MessageBox.Show("Выберите строку с нужным сотрудником", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
- }
- private void FilterClearRealization()
- {
- SearchFilterSurname = null;
- SearchFilterPost = null;
- }
- #endregion
- #region Методы
- private void UpdateData()
- {
- EmploeesOutput.Clear();
- if (SearchFilterSurname != null && SearchFilterPost != null)
- {
- var epml = EmploeeFilter.Where(i => i.Post.Name == SearchFilterPost.Name && i.Surname.Contains(SearchFilterSurname)).ToList();
- foreach (var i in epml)
- {
- EmploeesOutput.Add(i);
- }
- }
- else if (SearchFilterPost != null)
- {
- var epml = EmploeeFilter.Where(i => i.Post.Name == SearchFilterPost.Name).ToList();
- foreach (var i in epml)
- {
- EmploeesOutput.Add(i);
- }
- }
- else if (SearchFilterSurname != null)
- {
- var epml = EmploeeFilter.Where(i => i.Surname.Contains(SearchFilterSurname)).ToList();
- foreach (var i in epml)
- {
- EmploeesOutput.Add(i);
- }
- }
- else
- {
- var epml = DBRequests.AllDataRequest();
- foreach (var i in epml)
- {
- EmploeesOutput.Add(i);
- }
- }
- if (EmploeesOutput.Count == 0)
- VisibilityText = Visibility.Visible;
- else
- VisibilityText = Visibility.Hidden;
- }
- #endregion
- #region Конструктор
- public EmploeeViewModel()
- {
- UndoCommand = new DelegateCommand(UndoCommandRealization, () => true);
- AddCommand = new DelegateCommand(AddCommandRealization, () => true);
- EditCommand = new DelegateCommand(EditCommandRealization, () => true);
- SearchCommand = new DelegateCommand(SearchCommandRealization, () => true);
- SaveCommand = new DelegateCommand(SaveCommandRealization, () => true);
- DeleteCommand = new DelegateCommand(DeleteCommandRealization, () => true);
- FilterClear = new DelegateCommand(FilterClearRealization, () => true);
- EmploeeFilter = new ObservableCollection<Emploee>(DBRequests.AllDataRequest());
- EmploeesOutput = new ObservableCollection<Emploee>(DBRequests.AllDataRequest());
- Posts = new ObservableCollection<Post>(DBRequests.PostRequest());
- VisibilityText = Visibility.Hidden;
- }
- #endregion
- #region Свойства
- public DelegateCommand UndoCommand { get { return _undoCommand; } set { _undoCommand = value; } }
- public DelegateCommand AddCommand { get { return _addCommand; } set { _addCommand = value; } }
- public DelegateCommand EditCommand { get { return _editCommand; } set { _editCommand = value; } }
- public DelegateCommand SearchCommand { get { return _searchCommand; } set { _searchCommand = value; } }
- public DelegateCommand SaveCommand { get { return _saveCommand; } set { _saveCommand = value; } }
- public DelegateCommand DeleteCommand { get { return _deleteCommand; } set { _deleteCommand = value; } }
- public DelegateCommand FilterClear { get => _filterClear; set => _filterClear = value; }
- public ObservableCollection<Emploee> EmploeesOutput { get; set; }
- public ObservableCollection<Post> Posts { get; set; }
- public Emploee SelectedItem { get => _selectedItemInDataGrid; set => _selectedItemInDataGrid = value; }
- public Visibility VisibilityText
- {
- get => _visibilityText;
- set
- {
- _visibilityText = value;
- RaisePropertyChanged();
- }
- }
- public string SearchFilterSurname
- {
- get => _searchFilterSurname;
- set
- {
- _searchFilterSurname = value;
- UpdateData();
- RaisePropertyChanged();
- }
- }
- public Post SearchFilterPost
- {
- get => _searchFilterPost;
- set
- {
- _searchFilterPost = value;
- UpdateData();
- RaisePropertyChanged();
- }
- }
- #endregion
- }
- }
|