using Prism.Commands; using Prism.Events; using Prism.Ioc; using Prism.Mvvm; using System; using System.Collections.Generic; using System.Linq; using Team.FFFeederService; using Team.FFFeederService.Interfaces; using TeamAAS_VP.Core; using TeamAAS_VP.Events; namespace TeamAAS_VP.ViewModels.DebugMod { public class AfagFeederManualViewModel : BindableBase { IContainerProvider _container; IEventAggregator _eventAggregator; #region 属性 public Management management { get; set; } public FeederService feederService { get; set; } private AfagFeeder _Feeder; public AfagFeeder Feeder { get { return _Feeder; } set { SetProperty(ref _Feeder, value); FeederChangedEvent?.Invoke(value); } } private bool _IsAllowEdit = false; public bool IsAllowEdit { get { return _IsAllowEdit; } set { SetProperty(ref _IsAllowEdit, value); } } #endregion #region 命令 private DelegateCommand _LoadedCommand; public DelegateCommand LoadedCommand => _LoadedCommand ?? (_LoadedCommand = new DelegateCommand(ExecuteLoadedCommand)); #endregion #region 事件 public event Action FeederChangedEvent; #endregion public AfagFeederManualViewModel(IContainerProvider container, IEventAggregator ea) { _container = container; _container.Resolve().PropertyChanged += FeederManualViewModel_PropertyChanged; _eventAggregator = ea; //订阅权限登录事件 _eventAggregator.GetEvent().Subscribe(LoginChange); } private void FeederManualViewModel_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) { if (e.PropertyName == "SelectFeeder") { management = _container.Resolve(); feederService = management.FeederService; var sfeeder = _container.Resolve().SelectFeeder; if (sfeeder != null) { if (sfeeder.FeederBrand== FeederBrand.AFAG) { Feeder = feederService.GetFeeder(sfeeder.Id) as AfagFeeder; } } } } #region 方法 void ExecuteLoadedCommand() { try { if (_container.Resolve().CurrentUser.userPart == Enums.UserPart.Operator) { IsAllowEdit = false; } else { IsAllowEdit = true; } management = _container.Resolve(); feederService = management.FeederService; var sfeeder = _container.Resolve().SelectFeeder; if (sfeeder != null) Feeder = feederService.GetFeeder(sfeeder.Id) as AfagFeeder; } catch (Exception) { } } private void LoginChange(Models.User user) { if (user.userPart == Enums.UserPart.Operator) { IsAllowEdit = false; } else { IsAllowEdit = true; } } #endregion } }