using Prism.Commands; using Prism.Events; using Prism.Ioc; using Prism.Mvvm; using Prism.Regions; using System; using System.Collections.Generic; using System.Linq; using Team.FFFeederService; using Team.FFFeederService.Interfaces; using TeamAAS_VP.Core; using TeamAAS_VP.Events; using TeamAAS_VP.Interfaces; namespace TeamAAS_VP.ViewModels.DebugMod { public class AfagFeederManualViewModel : BindableBase, IConfirmNavigationRequest { IContainerProvider _container; IEventAggregator _eventAggregator; IFeederService _feederService; ISystemDatabaseService _systemDatabaseService; #region 属性 public Management management { 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, IFeederService feederService, ISystemDatabaseService systemDatabaseService) { _container = container; _feederService = feederService; _eventAggregator = ea; _systemDatabaseService = systemDatabaseService; //订阅权限登录事件 _eventAggregator.GetEvent().Subscribe(LoginChange); } #region 方法 void ExecuteLoadedCommand() { } private void LoginChange(Models.User user) { if (user.userPart == Enums.UserPart.Operator) { IsAllowEdit = false; } else { IsAllowEdit = true; } } #endregion #region 继承 /// /// 确认导航请求时调用。此方法允许您在导航之前执行一些操作。 /// /// /// public void ConfirmNavigationRequest(NavigationContext navigationContext, Action continuationCallback) { continuationCallback(true); } /// /// 接收导航请求时调用。传入导航参数,包含有关导航目标的信息。 /// /// /// public async void OnNavigatedTo(NavigationContext navigationContext) { var feederInfo = navigationContext.Parameters["FeederInfo"] as Models.FeederInfo; if (feederInfo != null) { Feeder = _feederService.GetFeeder(feederInfo.Id) as AfagFeeder; } if (_systemDatabaseService.GetCurrentUser().userPart == Enums.UserPart.Operator) { IsAllowEdit = false; } else { IsAllowEdit = true; } } /// /// 是否允许导航到此视图模型。 /// /// /// public bool IsNavigationTarget(NavigationContext navigationContext) { return true; } /// /// 导航离开此视图模型时调用。您可以在此处执行清理操作或保存状态。 /// /// public void OnNavigatedFrom(NavigationContext navigationContext) { } #endregion } }