public TrayViewModel( [NotNull] ILog logger, [NotNull] IActivityProcessor activityProcessor, [NotNull] IReportSerializer reportSerializer, Func <TimeInfoViewModel> timeInfoViewModelFactory, [NotNull] IWindowFactory <ITimeInfoWindow> timeInfoWindowFactory) { _activityProcessor = activityProcessor ?? throw new ArgumentNullException(nameof(activityProcessor)); _reportSerializer = reportSerializer ?? throw new ArgumentNullException(nameof(reportSerializer)); _timeInfoViewModelFactory = timeInfoViewModelFactory; _timeInfoWindowFactory = timeInfoWindowFactory; _logger = logger ?? throw new ArgumentNullException(nameof(logger)); SaveReportCommand = new CorrelationCommand(SaveReport); ToolTipOpenCommand = new CorrelationCommand(ToolTipOpen); ToolTipCloseCommand = new CorrelationCommand(ToolTipClose); ExitCommand = new CorrelationCommand(Exit); OpenSettingsFolderCommand = new CorrelationCommand(OpenSettingsFolder); ViewLogsCommand = new CorrelationCommand(ViewLogs); EditPeriodsCommand = new AsyncCorrelationCommand(EditPeriodsAsync); }
protected IRefreshableCommand AddCommand <T>(Func <T, Task> executeFunc, Predicate <T>?canExecuteFunc = null) { var tempCmd = new AsyncCorrelationCommand <T>(_commandManager, executeFunc, canExecuteFunc); return(AddCommandToList(tempCmd)); }