示例#1
0
        // this constructor is called from XAML - use fixed dependencies
        public MiningViewModel()
        {
            // enforce a minimum of ten seconds for the polling period
            var pollingPeriod = TimeSpan.FromSeconds(Math.Max(TimeSpan.FromSeconds(10).TotalSeconds, Settings.Default.MinerWatchdogPollingPeriod.TotalSeconds));

            if (pollingPeriod != Settings.Default.MinerWatchdogPollingPeriod)
            {
                AddMessage(string.Format("Setting MinerWatchdogPollingPeriod to minimum polling period [{0}].", pollingPeriod));
            }

            IController         controller  = null;
            ISummaryDataManager dataManager = null;

            if (!IsDesignMode)
            {
                var minerComms = new MinerCommunication(Settings.Default.MinerProcessName, Settings.Default.LaunchCommand, Settings.Default.ImportantProcessNames.Cast <string>());
                controller  = new Controller(minerComms, pollingPeriod);
                dataManager = new SummaryDataManager(Settings.Default.SaveInterval);
            }

            var idleTimeProvider = new IdleTimeProvider();
            var windowController = new WindowController();

            var conn           = new Connection(new ProductHeaderValue(Title.Replace(" ", string.Empty)));
            var api            = new ApiConnection(conn);
            var releasesClient = new ReleasesClient(api);

            var versionService = new VersionService(releasesClient, GitHubOwner, GitHubRepo);

            this.InitializeDesignTime(controller, idleTimeProvider, dataManager, windowController, versionService);
        }
示例#2
0
        private void InitializeDesignTime(IController controller, IIdleTimeProvider idleTimeProvider, ISummaryDataManager summaryDataManager, IWindowController windowController, IVersionService versionService)
        {
            this.ApplicationTitle            = Title;
            this.idleTimeProvider            = idleTimeProvider;
            this.summaryDataManager          = summaryDataManager;
            this.summaryDataManager.Message += (s, e) => { AddMessage(e.Message); };
            this.windowController            = windowController;

            this.Messages           = new ObservableCollection <string>();
            this.DataPointsHashRate = new ObservableCollection <DataPoint>();
            this.GraphTimeSpans     = new ObservableCollection <GraphTimeSpan>(LoadGraphTimeSpans());

            var durations = new List <TimeSpan>();

            foreach (string durationText in Settings.Default.SnoozeDurations)
            {
                TimeSpan duration;
                if (TimeSpan.TryParse(durationText, out duration))
                {
                    durations.Add(duration);
                    if (duration == Settings.Default.DefaultSnoozeDuration)
                    {
                        this.SnoozeDuration = duration;
                    }
                }
            }

            this.SnoozeDurations = durations;

            if (!IsDesignMode)
            {
                this.InitializeRunTime(controller, versionService);
            }

            this.Activity = UserActivity.Active; // initial setting
        }
示例#3
0
 public MiningViewModel(IController controller, IIdleTimeProvider idleTimeProvider, ISummaryDataManager summaryDataManager, IWindowController windowController, IVersionService versionService)
 {
     this.InitializeDesignTime(controller, idleTimeProvider, summaryDataManager, windowController, versionService);
 }
示例#4
0
 public MiningViewModel(IController controller, IIdleTimeProvider idleTimeProvider, ISummaryDataManager summaryDataManager, IWindowController windowController, IVersionService versionService)
 {
     this.InitializeDesignTime(controller, idleTimeProvider, summaryDataManager, windowController, versionService);
 }
示例#5
0
        private void InitializeDesignTime(IController controller, IIdleTimeProvider idleTimeProvider, ISummaryDataManager summaryDataManager, IWindowController windowController, IVersionService versionService)
        {
            this.ApplicationTitle = Title;
            this.idleTimeProvider = idleTimeProvider;
            this.summaryDataManager = summaryDataManager;
            this.summaryDataManager.Message += (s, e) => { AddMessage(e.Message); };
            this.windowController = windowController;

            this.Messages = new ObservableCollection<string>();
            this.DataPointsHashRate = new ObservableCollection<DataPoint>();
            this.GraphTimeSpans = new ObservableCollection<GraphTimeSpan>(LoadGraphTimeSpans());

            var durations = new List<TimeSpan>();
            foreach (string durationText in Settings.Default.SnoozeDurations)
            {
                TimeSpan duration;
                if (TimeSpan.TryParse(durationText, out duration))
                {
                    durations.Add(duration);
                    if (duration == Settings.Default.DefaultSnoozeDuration)
                    {
                        this.SnoozeDuration = duration;
                    }
                }
            }

            this.SnoozeDurations = durations;

            if (!IsDesignMode)
            {
                this.InitializeRunTime(controller, versionService);
            }

            this.Activity = UserActivity.Active; // initial setting
        }