EditEmploeeViewModel.cs 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. using Prism.Commands;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Collections.ObjectModel;
  5. using System.Windows;
  6. using WpfAppUI.Model;
  7. using Prism.Mvvm;
  8. using System.Diagnostics;
  9. namespace WpfAppUI.ViewModel
  10. {
  11. internal class EditEmploeeViewModel : BindableBase
  12. {
  13. #region Поля
  14. private string _surname;
  15. private string _name;
  16. private string _patronymic;
  17. private string _birthday;
  18. private string _phone;
  19. private string _mail;
  20. private Post _post;
  21. private DelegateCommand _update;
  22. private int id;
  23. private Window window;
  24. #endregion
  25. #region Свойства
  26. public string surnameInput { get => _surname; set => _surname = value; }
  27. public string nameInput { get => _name; set => _name = value; }
  28. public string patronymicInput { get => _patronymic; set => _patronymic = value; }
  29. public string birthdayInput { get => _birthday; set => _birthday = value; }
  30. public string phoneInput { get => _phone; set => _phone = value; }
  31. public string mailInput { get => _mail; set => _mail = value; }
  32. public Post SelectedPost { get => _post; set => _post = value; }
  33. public ObservableCollection<Post> Posts { get; set; }
  34. public DelegateCommand Update { get => _update; set => _update = value; }
  35. #endregion
  36. #region Коструктор
  37. public EditEmploeeViewModel(int id, Window window)
  38. {
  39. this.window = window;
  40. _update = new DelegateCommand(UpdateRealization);
  41. Posts = new ObservableCollection<Post>(PostDataUpdate());
  42. this.id = id;
  43. UploadAllDataRecive(id);
  44. }
  45. #endregion
  46. #region Реализация методов для привязки
  47. private void UpdateRealization()
  48. {
  49. Debugger.Launch();
  50. if (Emploee.RegexCheckEmail(mailInput))
  51. {
  52. DBRequests.ChangeEmploeeData(id, surnameInput, nameInput, SelectedPost, DateTime.Parse(birthdayInput), phoneInput, mailInput, patronymicInput);
  53. window.Close();
  54. } else
  55. MessageBox.Show("Неправильно заполнена почта", "Ошибка");
  56. }
  57. #endregion
  58. #region Методы
  59. private void UploadAllDataRecive(int id)
  60. {
  61. var emploee = DBRequests.EmploeeById(id);
  62. surnameInput = emploee.Surname;
  63. nameInput = emploee.Name;
  64. patronymicInput = emploee.Patronymic;
  65. birthdayInput = emploee.Birthday.ToString();
  66. phoneInput = emploee.Phone;
  67. mailInput = emploee.Mail;
  68. SelectedPost = Posts[emploee.PostId - 1];
  69. }
  70. private ICollection<Post> PostDataUpdate()
  71. {
  72. return DBRequests.PostRequest();
  73. }
  74. #endregion
  75. }
  76. }