Пример #1
0
        public LimitObserver(ITrackingService trackingService,
                             IRepository repository,
                             IAppChangedNotifier appChangedNotifier,
                             IMidnightNotifier midnightNotifier,
                             ILimitHandler limitHandler,
                             IAppDurationCalc appDurationCalc,
                             Mediator mediator,
                             ISyncContext syncContext)
        {
            this.trackingService    = trackingService;
            this.repository         = repository;
            this.appChangedNotifier = appChangedNotifier;
            this.midnightNotifier   = midnightNotifier;
            this.limitHandler       = limitHandler;
            this.appDurationCalc    = appDurationCalc;
            this.mediator           = mediator;

            limitNotifiers.Add(new LimitNotifier(syncContext, LimitSpan.Day));
            limitNotifiers.Add(new LimitNotifier(syncContext, LimitSpan.Week));

            foreach (var notifier in limitNotifiers)
            {
                notifier.LimitReached += OnLimitReached;
            }

            mediator.Register(MediatorMessages.APP_LIMITS_CHANGIING, LoadAppLimits);
        }
Пример #2
0
        public LimitToastWindow(IUserSettingsService userSettingsService,
                                IAppDurationCalc appDurationCalc,
                                Mediator mediator,
                                MeasureProvider measureProvider)
        {
            this.userSettingsService = userSettingsService;
            this.appDurationCalc     = appDurationCalc;
            this.mediator            = mediator;
            this.measureProvider     = measureProvider;

            InitializeComponent();

            mediator.Register <AppLimit>(MediatorMessages.APP_LIMIT_REACHED, OnAppLimitReached);

            var bounds = System.Windows.Forms.Screen.PrimaryScreen.Bounds;

            this.Left    = bounds.Right - this.Width - 5;
            this.Top     = bounds.Bottom + 5;
            timer        = new DispatcherTimer(TimeSpan.FromSeconds(1), DispatcherPriority.Normal, OnTimerTick, this.Dispatcher);
            Loaded      += (s, e) => HideHelper.RemoveFromAltTab(this);
            Deactivated += (s, e) => Topmost = true;
        }