Beispiel #1
0
    public IndexViewModel(DFrameControllerExecutionEngine engine, IExecutionResultHistoryProvider historyProvider, IScopedPublisher <DrawerRequest> drawerProvider, ISynchronizedView <string, string> logView, ExecuteSettings?executeSettings = null)
    {
        this.historyProvider = historyProvider;
        this.drawerProvider  = drawerProvider;
        this.logView         = logView;

        SelectedWorkloadParameters          = Array.Empty <WorkloadParameterInfoViewModel>();
        ResultHistoryCount                  = historyProvider.GetCount();
        historyProvider.NotifyCountChanged += HistoryProvider_NotifyCountChanged;

        RefreshEngineProperties(engine);

        if (executeSettings != null)
        {
            CommandMode = executeSettings.CommandMode;
            if (executeSettings.Workload != null)
            {
                SelectedWorkload = executeSettings.Workload;
            }
            Concurrency  = executeSettings.Concurrency;
            TotalRequest = executeSettings.TotalRequest;
            if (executeSettings.WorkerLimit != null)
            {
                RequestWorkerLimit = executeSettings.WorkerLimit.Value;
            }
            IncreaseTotalRequestCount = executeSettings.IncreaseTotalRequestCount;
            IncreaseWorkerCount       = executeSettings.IncreaseWorkerCount;
            RepeatCount         = executeSettings.RepeatCount;
            DurationTimeSeconds = executeSettings.DurationTimeSeconds;
        }
    }
Beispiel #2
0
    public void RefreshEngineProperties(DFrameControllerExecutionEngine engine)
    {
        if (CurrentConnections == RequestWorkerLimit)
        {
            // auto extend
            this.RequestWorkerLimit = engine.CurrentConnectingCount;
        }
        this.CurrentConnections = engine.CurrentConnectingCount;
        if (CurrentConnections < this.RequestWorkerLimit)
        {
            this.RequestWorkerLimit = CurrentConnections;
        }

        this.IsRunning     = engine.IsRunning;
        this.WorkloadInfos = engine.WorkloadInfos;
        if (this.SelectedWorkload == null)
        {
            this.SelectedWorkload = WorkloadInfos.FirstOrDefault()?.Name;
        }
        this.ExecutionSummary = engine.LatestExecutionSummary;
        this.ExecutionResults = engine.LatestSortedSummarizedExecutionResults;
    }
Beispiel #3
0
 public ControllerHub(DFrameControllerExecutionEngine engine)
 {
     this.engine = engine;
 }