Example #1
0
        public ActionResult <ScenarioDto> GetActiveScenario()
        {
            try
            {
                _logger.Info($"{nameof(GetActiveScenario)}()");
                IEnumerable <ScenarioDefinition> scenarioDefinitions = _scenarioRunner.GetScenarioDefinitions();

                ScenarioSession scenarioSession = _scenarioRunner.GetActiveScenarioSession(User.Identity.Name);

                if (scenarioSession != null)
                {
                    ScenarioDefinition scenarioDefinition = scenarioDefinitions.FirstOrDefault(s => s.Id == scenarioSession.ScenarioId);
                    return(new ScenarioDto
                    {
                        Name = scenarioDefinition.Name,
                        Id = scenarioDefinition.Id.ToString(),
                        IsActive = scenarioSession != null,
                        CurrentStep = scenarioSession?.CurrentStep ?? 0,
                        SessionId = scenarioSession?.ScenarioSessionId ?? 0,
                        StartTime = scenarioSession?.StartTime ?? DateTime.MinValue,
                        Steps = scenarioDefinition.Steps.Select(s => new ScenarioStepDto {
                            Id = s.Id, Caption = s.Caption
                        }).ToArray()
                    });
                }

                return(null);
            }
            catch (Exception ex)
            {
                _logger.Error($"Failed {nameof(GetActiveScenario)}()", ex);

                throw;
            }
        }