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);
 }
Esempio n. 2
0
 public ProgrammerController(IProgrammerService programmerService)
 {
     _programmerService = programmerService;
 }
Esempio n. 3
0
 public ProgrammersController(IProgrammerService programmerService, IMapper mapper)
 {
     _programmerService = programmerService;
     _mapper            = mapper;
 }
Esempio n. 4
0
        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;
 }