using Prism.Commands; using Prism.Mvvm; using System; using System.Collections.Generic; using System.Linq; using Team.FFFeederService.Interfaces; using Team.FFFeederService; using TeamAAS_VP.Core; using Prism.Ioc; using Prism.Events; using TeamAAS_VP.Events; namespace TeamAAS_VP.ViewModels.DebugMod { public class FeederManualViewModel : BindableBase { IContainerProvider _container; IEventAggregator _eventAggregator; #region 属性 public Management management { get; set; } public FeederService feederService { get; set; } private IVoiceCoilMotorFeeder _Feeder; public IVoiceCoilMotorFeeder Feeder { get { return _Feeder; } set { SetProperty(ref _Feeder,value); FeederChangedEvent?.Invoke(value); } } #endregion #region 命令 private DelegateCommand _LoadedCommand; public DelegateCommand LoadedCommand => _LoadedCommand ?? (_LoadedCommand = new DelegateCommand(ExecuteLoadedCommand)); #endregion #region 事件 public event Action FeederChangedEvent; #endregion public FeederManualViewModel(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.TEAM) { Feeder = feederService.GetFeeder(sfeeder.Id); } } } } #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); } catch (Exception) { } } #endregion private bool _IsAllowEdit = false; public bool IsAllowEdit { get { return _IsAllowEdit; } set { SetProperty(ref _IsAllowEdit, value); } } private void LoginChange(Models.User user) { if (user.userPart == Enums.UserPart.Operator) { IsAllowEdit = false; } else { IsAllowEdit = true; } } } }