public MainWindowViewModel(ITickerPublisher tickerPublisher, ITickerRepository tickerRepository)
        {
            this.tickerPublisher = tickerPublisher;
            this.tickerRepository = tickerRepository;
            this.rand = new Random();

            serverStarted = false;
            autoTickerStarted = false;

            AutoTickerStartCommand = new DelegateCommand(
                AutoRunning,
                () => serverStarted && !autoTickerStarted);

            AutoTickerStopCommand = new DelegateCommand(
                () =>
                {
                    if (autoRunningCancellationToken != null)
                    {
                        autoRunningCancellationToken.Cancel();
                        autoRunningTask.Wait();
                        autoTickerStarted = false;
                    }
                },
                () => serverStarted && autoTickerStarted);

            SendOneTickerCommand = new DelegateCommand(
                SendOneManualFakeTicker,
                () => serverStarted && !autoTickerStarted);

            StartCommand = new DelegateCommand(
                StartServer,
                () => !serverStarted);

            StopCommand = new DelegateCommand(
                StopServer,
                () => serverStarted);
        }
Esempio n. 2
0
        public MainWindowViewModel(ITickerPublisher tickerPublisher, ITickerRepository tickerRepository)
        {
            this.tickerPublisher  = tickerPublisher;
            this.tickerRepository = tickerRepository;
            this.rand             = new Random();

            serverStarted     = false;
            autoTickerStarted = false;

            AutoTickerStartCommand = new DelegateCommand(
                AutoRunning,
                () => serverStarted && !autoTickerStarted);

            AutoTickerStopCommand = new DelegateCommand(
                () =>
            {
                if (autoRunningCancellationToken != null)
                {
                    autoRunningCancellationToken.Cancel();
                    autoRunningTask.Wait();
                    autoTickerStarted = false;
                }
            },
                () => serverStarted && autoTickerStarted);

            SendOneTickerCommand = new DelegateCommand(
                SendOneManualFakeTicker,
                () => serverStarted && !autoTickerStarted);

            StartCommand = new DelegateCommand(
                StartServer,
                () => !serverStarted);

            StopCommand = new DelegateCommand(
                StopServer,
                () => serverStarted);
        }