示例#1
0
        public TimeInfoViewModel(
            [NotNull] ILog logger,
            [NotNull] IActivityProcessor activityProcessor,
            [NotNull] IReportSerializer reportSerializer,
            [NotNull] IStatusChangeEventRepository statusChangeEventRepository)
        {
            _statusChangeEventRepository = statusChangeEventRepository ?? throw new ArgumentNullException(nameof(statusChangeEventRepository));
            activityProcessor            = activityProcessor ?? throw new ArgumentNullException(nameof(activityProcessor));

            ToggleCommand = new CorrelationCommand <ActivityReportItemViewModel>(Toggle);
            _report       = activityProcessor.GenerateReport(DateTime.Now);
            _timer        = new DispatcherTimer
            {
                Interval = TimeSpan.FromSeconds(1)
            };
            _timer.Start();
            _report = activityProcessor.GenerateReport(DateTime.Now);
            ActivityReportItems.Clear();
            foreach (var viewModelItem in _report.Items.Select(item => new ActivityReportItemViewModel(item)))
            {
                ActivityReportItems.Add(viewModelItem);
            }

            SetCurrentTimeInfo();
            _timer.Tick += Timer_Tick;
        }
        private void SaveReport()
        {
            _logger.Trace("Saving report...");
            var report     = _activityProcessor.GenerateReport(DateTime.Now);
            var reportPath = _reportSerializer.SerializeReport(report);

            Process.Start(reportPath);
            _logger.Info("Report is saved");
        }
示例#3
0
        public Task Execute(IJobExecutionContext context)
        {
            _logger.Trace("Executing...");
            var report = _activityProcessor.GenerateReport(DateTime.Now);

            _reportSerializer.SerializeReport(report);
            _logger.Info("Executed");
            return(Task.CompletedTask);
        }