public async Task Run(SensitivityAnalysis sensitivityAnalysis) { if (!_entityValidationTask.Validate(sensitivityAnalysis)) { return; } try { if (IsRunning) { throw new OSPSuiteException(Error.CannotStartTwoConcurrentSensitivityAnalyses); } using (_sensitivityAnalysisEngine = _sensitivityAnalysisEngineFactory.Create()) { var begin = SystemTime.UtcNow(); await _sensitivityAnalysisEngine.StartAsync(sensitivityAnalysis); var end = SystemTime.UtcNow(); var timeSpent = end - begin; _dialogCreator.MessageBoxInfo(Captions.SensitivityAnalysis.SensitivityAnalysisFinished(timeSpent.ToDisplay())); } } catch (OperationCanceledException) { _dialogCreator.MessageBoxInfo(Captions.SensitivityAnalysis.SensitivityAnalysisCanceled); } finally { _executionContext.ProjectChanged(); _sensitivityAnalysisEngine = null; } }
private void simulationTerminated(ISensitivityAnalysisEngine sensitivityAnalysisEngine) { terminated(sensitivityAnalysisEngine, EventArgs.Empty); }
private void initializeProgress(ISensitivityAnalysisEngine sensitivityAnalysisEngine, SensitivityAnalysisRunOptions options) { sensitivityAnalysisEngine.Terminated += terminated; sensitivityAnalysisEngine.SimulationProgress += simulationProgress; _progressUpdater = options.ShowProgress ? _progressManager.Create() : new NoneProgressUpdater(); }