FeederManualViewModel.cs 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. using Prism.Commands;
  2. using Prism.Mvvm;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using Team.FFFeederService.Interfaces;
  7. using Team.FFFeederService;
  8. using TeamAAS_VP.Core;
  9. using Prism.Ioc;
  10. using Prism.Events;
  11. using TeamAAS_VP.Events;
  12. namespace TeamAAS_VP.ViewModels.DebugMod
  13. {
  14. public class FeederManualViewModel : BindableBase
  15. {
  16. IContainerProvider _container;
  17. IEventAggregator _eventAggregator;
  18. #region 属性
  19. public Management management { get; set; }
  20. public FeederService feederService { get; set; }
  21. private IVoiceCoilMotorFeeder _Feeder;
  22. public IVoiceCoilMotorFeeder Feeder
  23. {
  24. get { return _Feeder; }
  25. set { SetProperty(ref _Feeder,value);
  26. FeederChangedEvent?.Invoke(value);
  27. }
  28. }
  29. #endregion
  30. #region 命令
  31. private DelegateCommand _LoadedCommand;
  32. public DelegateCommand LoadedCommand =>
  33. _LoadedCommand ?? (_LoadedCommand = new DelegateCommand(ExecuteLoadedCommand));
  34. #endregion
  35. #region 事件
  36. public event Action<IVoiceCoilMotorFeeder> FeederChangedEvent;
  37. #endregion
  38. public FeederManualViewModel(IContainerProvider container, IEventAggregator ea)
  39. {
  40. _container = container;
  41. _container.Resolve<DebugViewModel>().PropertyChanged += FeederManualViewModel_PropertyChanged;
  42. _eventAggregator = ea;
  43. //订阅权限登录事件
  44. _eventAggregator.GetEvent<UserLoginNotification>().Subscribe(LoginChange);
  45. }
  46. private void FeederManualViewModel_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
  47. {
  48. if (e.PropertyName== "SelectFeeder")
  49. {
  50. management = _container.Resolve<Management>();
  51. feederService = management.FeederService;
  52. var sfeeder = _container.Resolve<DebugViewModel>().SelectFeeder;
  53. if(sfeeder != null)
  54. {
  55. if (sfeeder.FeederBrand == FeederBrand.TEAM)
  56. {
  57. Feeder = feederService.GetFeeder(sfeeder.Id);
  58. }
  59. }
  60. }
  61. }
  62. #region 方法
  63. void ExecuteLoadedCommand()
  64. {
  65. try
  66. {
  67. if (_container.Resolve<Management>().CurrentUser.userPart == Enums.UserPart.Operator)
  68. {
  69. IsAllowEdit = false;
  70. }
  71. else
  72. {
  73. IsAllowEdit = true;
  74. }
  75. management = _container.Resolve<Management>();
  76. feederService = management.FeederService;
  77. var sfeeder = _container.Resolve<DebugViewModel>().SelectFeeder;
  78. if(sfeeder!=null)
  79. Feeder = feederService.GetFeeder(sfeeder.Id);
  80. }
  81. catch (Exception)
  82. {
  83. }
  84. }
  85. #endregion
  86. private bool _IsAllowEdit = false;
  87. public bool IsAllowEdit
  88. {
  89. get { return _IsAllowEdit; }
  90. set { SetProperty(ref _IsAllowEdit, value); }
  91. }
  92. private void LoginChange(Models.User user)
  93. {
  94. if (user.userPart == Enums.UserPart.Operator)
  95. {
  96. IsAllowEdit = false;
  97. }
  98. else
  99. {
  100. IsAllowEdit = true;
  101. }
  102. }
  103. }
  104. }