UserManageViewModel.cs 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. using AutoMapper;
  2. using BizService;
  3. using Microsoft.Extensions.Logging;
  4. using Model.Dto;
  5. using Model.Entities;
  6. using PLCTool.Common;
  7. using PLCTool.Controls;
  8. using PLCTool.Events;
  9. using PLCTool.Models;
  10. using Prism.Commands;
  11. using Prism.Events;
  12. using Prism.Mvvm;
  13. using Prism.Services.Dialogs;
  14. using System;
  15. using System.Collections.Generic;
  16. using System.Collections.ObjectModel;
  17. using System.Linq;
  18. using System.Text;
  19. using System.Text.RegularExpressions;
  20. using System.Threading.Tasks;
  21. using System.Windows;
  22. namespace PLCTool.ViewModels.SystemManageViewModel
  23. {
  24. public class UserManageViewModel:BindableBase
  25. {
  26. private readonly IUserService _iUserService;
  27. private readonly ILogger _logger;
  28. private readonly IMapper _mapper;
  29. private readonly IDialogService _dialog;
  30. private readonly IEventAggregator _aggregator;
  31. private List<UserDto> allUserInfoList = new List<UserDto>();
  32. public UserManageViewModel(IUserService iUserService, IMapper mapper, ILogger logger, IDialogService dialog,IEventAggregator aggregator)
  33. {
  34. _iUserService = iUserService;
  35. _mapper = mapper;
  36. _logger = logger;
  37. _dialog = dialog;
  38. _aggregator = aggregator;
  39. AddCommand = new DelegateCommand<object>(AddUser);
  40. EditCommand = new DelegateCommand<object>(EditUser);
  41. DeleteCommand = new DelegateCommand<object>(Delete);
  42. OnLoadCommand = new DelegateCommand(OnLoad);
  43. QueryCommand = new DelegateCommand<object>(Query);
  44. }
  45. #region 私有方法
  46. private void OnLoad()
  47. {
  48. GetAllUsers();
  49. //发布面包靴
  50. List<CrumbViewModel> breadCrumbs = new List<CrumbViewModel>();
  51. breadCrumbs.Add(new CrumbViewModel { Name = "系统管理" });
  52. breadCrumbs.Add(new CrumbViewModel { Name = "用户管理", NavigateRegion = "UserManageView" });
  53. _aggregator.GetEvent<BreadEvent>().Publish(breadCrumbs);
  54. }
  55. private void AddUser(object obj)
  56. {
  57. _dialog.ShowDialog("AddEditUserView", async callback =>
  58. {
  59. if (callback.Result == ButtonResult.OK)
  60. {
  61. GetAllUsers();
  62. }
  63. });
  64. }
  65. private void EditUser(object obj)
  66. {
  67. int id = Convert.ToInt32(obj);
  68. DialogParameters parm = new DialogParameters();
  69. parm.Add("Key", id);
  70. //蒙层显示
  71. _aggregator.GetEvent<MaskEvent>().Publish(true);
  72. _dialog.ShowDialog("AddEditUserView", parm, async callback =>
  73. {
  74. if (callback.Result == ButtonResult.OK)
  75. {
  76. GetAllUsers();
  77. }
  78. });
  79. }
  80. private void Delete(object obj)
  81. {
  82. int id = Convert.ToInt32(obj);
  83. MessageBoxResult boxResult = MessageBox.Show("确认删除此条数据?", "确认", MessageBoxButton.OKCancel, MessageBoxImage.Question);
  84. if (boxResult == MessageBoxResult.OK)
  85. {
  86. var del = _iUserService.Delete(id);
  87. if (del)
  88. {
  89. MessageBox.Show("删除成功!", "确认", MessageBoxButton.OK, MessageBoxImage.Information);
  90. GetAllUsers();
  91. }
  92. }
  93. }
  94. private void GetAllUsers()
  95. {
  96. var users = _iUserService.QueryList();
  97. allUserInfoList = _mapper.Map<List<User>, List<UserDto>>(users);
  98. UserInfoList = new ObservableCollection<UserDto>(allUserInfoList);
  99. }
  100. /// <summary>
  101. /// 判断输入的数据
  102. /// </summary>
  103. /// <param name="input"></param>
  104. /// <summary>
  105. /// 获取PLC配置
  106. /// </summary>
  107. /// <summary>
  108. /// 查询
  109. /// </summary>
  110. /// <param name="obj"></param>
  111. private void Query(object obj)
  112. {
  113. var conUsers = (from a in allUserInfoList
  114. where (string.IsNullOrEmpty(UserName) ? true : (a.UserName.Contains(UserName)))
  115. select a).ToList();
  116. //默认显示的第一页
  117. UserInfoList = new ObservableCollection<UserDto>(conUsers);
  118. }
  119. #endregion
  120. #region 数据绑定
  121. private ObservableCollection<UserDto> userInfoList = new ObservableCollection<UserDto>();
  122. public ObservableCollection<UserDto> UserInfoList
  123. {
  124. get { return userInfoList; }
  125. set { userInfoList = value; RaisePropertyChanged(); }
  126. }
  127. private string userName = string.Empty;
  128. public string UserName
  129. {
  130. get { return userName; }
  131. set { userName = value; RaisePropertyChanged(); }
  132. }
  133. #endregion
  134. #region 命令绑定
  135. public DelegateCommand OnLoadCommand { set; get; }
  136. public DelegateCommand<object> AddCommand { set; get; }
  137. public DelegateCommand<object> EditCommand { set; get; }
  138. public DelegateCommand<object> DeleteCommand { set; get; }
  139. public DelegateCommand<object> QueryCommand { set; get; }
  140. #endregion
  141. }
  142. }