Beispiel #1
0
        public IHttpActionResult PostMetrics(Guid scenarioId)
        {
            var scenarioResult = _scenarioResultRepository.Find(scenarioId);

            if (scenarioResult == null)
            {
                return(NotFound());
            }

            var runId = _runRepository.GetRunIdForScenario(scenarioId);

            using (var calculationScope = _kpiCalculationScopeFactory.CreateCalculationScope(runId, scenarioId))
            {
                var kpiCalculationContext = calculationScope.Resolve <IKPICalculationContext>();
                var kpiCalculationManager = calculationScope.Resolve <IKPICalculationManager>();

                kpiCalculationContext.Recommendations = _recommendationRepository.GetByScenarioId(scenarioId);
                kpiCalculationContext.SetContextData(_failuresRepository.Get(scenarioId));

                scenarioResult.Metrics = kpiCalculationManager
                                         .SetAudit(null)
                                         .CalculateKPIs(runId, scenarioId);
            }

            return(Ok(scenarioResult));
        }