Example #1
0
        protected override void OnStartup(StartupEventArgs e)
        {
            var hideFromAppSwitch   = new HideFromAppSwitchService();
            var hideFromPeekService = new HideFromPeekService();
            var alertsQueue         = new BlockingAlertsQueue();
            var schedulerProvider   = new DefaultSchedulerProvider();
            var alertActions        = new AlertActionsService(schedulerProvider);

            var viewController = new AlertsViewController(hideFromAppSwitch, hideFromPeekService);

            viewController.OnImportsSatisfied();
            var viewModelController = new AlertsViewModelController(alertsQueue, schedulerProvider, alertActions);

            viewModelController.OnImportsSatisfied();

            var view = viewController.View;

            view.DataContext = viewModelController.ViewModel;
            view.Show();

            var alertModel = new Mock <IAlert>();

            alertModel.Setup(a => a.Title).Returns("Update Available");
            alertModel.Setup(a => a.Content).Returns("Restart to use the new version.");

            Observable.Interval(TimeSpan.FromSeconds(15))
            .Select(_ => alertModel.Object)
            .Subscribe(alert => alertsQueue.Enqueue(alert));
        }
        protected override void OnStartup(StartupEventArgs e)
        {
            var hideFromAppSwitch   = new HideFromAppSwitchService();
            var hideFromPeekService = new HideFromPeekService();
            var notificationManager = new NotificationManager();
            var schedulerProvider   = new DefaultSchedulerProvider();

            var viewController = new SideBarViewController(hideFromAppSwitch, hideFromPeekService);

            viewController.OnImportsSatisfied();
            var viewModelController = new SideBarViewModelController(notificationManager, schedulerProvider);

            viewModelController.OnImportsSatisfied();

            var view = viewController.View;

            view.DataContext = viewModelController.ViewModel;
            view.Show();

            Observable.Timer(TimeSpan.FromSeconds(5))
            .ObserveOn(SynchronizationContext.Current)
            .Subscribe(_ => viewModelController.ViewModel.IsOpen = true);
            Observable.Interval(TimeSpan.FromSeconds(5))
            .ObserveOn(SynchronizationContext.Current)
            .Select(_ => new NotificationModel("id", "Update Available", "Restart to use the new version.", DateTime.Now, null))
            .Subscribe(alert => viewModelController.ViewModel.Notifications.Insert(0, alert));
            Observable.Timer(TimeSpan.FromSeconds(60))
            .ObserveOn(SynchronizationContext.Current)
            .Subscribe(_ => viewModelController.ViewModel.IsOpen = false);
        }