public ConnectionViewModel(IProgrammerService programmer) : base() { if (programmer == null) { throw new ArgumentNullException(nameof(programmer)); } // initialize values this.programmer = programmer; programmer.StateChanged += args => { RaisePropertyChanged(nameof(State)); RaisePropertyChanged(nameof(CurrentPort)); }; connected = programmer.CurrentState != ProgrammerState.NotConnected; programmer.StateChanged += args => { var con = programmer.CurrentState != ProgrammerState.NotConnected; if (connected != con) { connected = con; RaisePropertyChanged(nameof(ConnectionString)); } }; SelectedPort = AvailablePorts.Length != 0 ? AvailablePorts[0] : null; SelectedBaudRate = programmer.DefaultBaudRate; SelectedDataBits = programmer.DefaultDataBits; SelectedStopBits = programmer.DefaultStopBits; SelectedParity = programmer.DefaultParity; ConnectionCommand = new DelegateCommand(ConnectionAction, () => SelectedPort != null).ObservesProperty(() => SelectedPort); }
public ProgrammerController(IProgrammerService programmerService) { _programmerService = programmerService; }
public ProgrammersController(IProgrammerService programmerService, IMapper mapper) { _programmerService = programmerService; _mapper = mapper; }
public RfidCardViewModel(IEventAggregator eventAggr, IProgrammerService programmer, IConnectionViewModel conViewModel) : base() { if (eventAggr == null) { throw new ArgumentNullException(nameof(eventAggr)); } if (programmer == null) { throw new ArgumentNullException(nameof(programmer)); } if (conViewModel == null) { throw new ArgumentNullException(nameof(conViewModel)); } // initialize values this.programmer = programmer; var dispatcher = Application.Current.Dispatcher; UpdateCard(new ProgrammerCardChangedEventArgs(programmer.CurrentCard)); UpdateAccess(new ProgrammerAccessChangedEventArgs(programmer.CurrentAccess)); // subscribe to events programmer.CardChanged += card => dispatcher.BeginInvoke(new Action <ProgrammerCardChangedEventArgs>(UpdateCard), new object[] { card }); programmer.AccessChanged += access => dispatcher.BeginInvoke(new Action <ProgrammerAccessChangedEventArgs>(UpdateAccess), new object[] { access }); var stateChangedAction = new Action(() => { RaisePropertyChanged(nameof(State)); RaisePropertyChanged(nameof(CardReady)); RaisePropertyChanged(nameof(ConnectedAndReady)); RaisePropertyChanged(nameof(AccessChanged)); RaisePropertyChanged(nameof(AccessChangedCardReady)); RaisePropertyChanged(nameof(Connected)); }); programmer.StateChanged += args => { dispatcher.BeginInvoke(stateChangedAction); }; // commands WriteCommand = new DelegateCommand(() => { if (Content != null) { var currContent = cardModel.Content != null ? Encoding.ASCII.GetString(cardModel.Content) : null; var start = currContent != null ? currContent.TakeWhile((c, i) => i < Content.Length && c == Content[i]).Count() : 0; if (start != Content.Length) { var newContent = Content.Substring(start); // ignore start if equal programmer.WriteContent(Encoding.ASCII.GetBytes(newContent), (uint)start); } else { programmer.WriteContent(Encoding.ASCII.GetBytes(Content)); // overwrite all } } else { programmer.WriteContent(null); } }).ObservesCanExecute(() => CardReady); ReadCommand = new DelegateCommand(() => programmer.ReadContent()).ObservesCanExecute(() => CardReady); EraseCardCommand = new DelegateCommand(() => programmer.EraseContent()).ObservesCanExecute(() => CardReady); ResetAccessAndKeysCommand = new DelegateCommand(() => programmer.ResetAccessAndKeys()).ObservesCanExecute(() => ConnectedAndReady); ReadAccessBitsCommand = new DelegateCommand(() => programmer.ReadAccessBits()).ObservesCanExecute(() => CardReady); CheckKeysCommand = new DelegateCommand(() => programmer.CheckKeys()).ObservesCanExecute(() => AccessChangedCardReady); ChangeKeysCommand = new DelegateCommand(() => programmer.ChangeKeys(KeyA, KeyB, AccessBits, SelectedKey)).ObservesCanExecute(() => AccessChangedCardReady); UseKeysCommand = new DelegateCommand(() => programmer.UseKeys(KeyA, KeyB, AccessBits, SelectedKey)).ObservesCanExecute(() => AccessChanged); SendCommandCommand = new DelegateCommand(() => { if (ConsoleInput != null && ConsoleInput.Length > 0) { programmer.SendCustomCommand(ConsoleInput); ConsoleInput = ""; } }).ObservesCanExecute(() => Connected); ConnectionViewModel = conViewModel; SaveKeysCommand = new DelegateCommand <Window>(SaveKeys).ObservesCanExecute(() => ConnectedAndReady); LoadKeysCommand = new DelegateCommand <Window>(LoadKeys).ObservesCanExecute(() => ConnectedAndReady); }
public ProgrammerController(IProgrammerService service) { this.service = service; }
public ProgrammerController(IProgrammerService programmers, ILoginService logins, ICategoryService categories) { this.programmers = programmers; this.logins = logins; this.categories = categories; }