Esempio n. 1
0
        public IHttpActionResult Delete(Guid id)
        {
            if (!ModelState.IsValid)
            {
                return(this.Error().InvalidParameters("Invalid scenario parameters"));
            }

            Scenario scenario = _scenarioRepository.Get(id);

            if (scenario == null)
            {
                return(this.NotFound());
            }

            // Check that scenario isn't referenced by a run
            var runs = _runRepository.GetByScenarioId(id);

            if (runs.Any())
            {
                return(this.Error().BadRequest("Cannot delete a scenario because a run has a dependency on it"));
            }

            // Check that scenario being deleted isn't the default
            TenantSettings tenantSettings = _tenantSettingsRepository.Get();

            if (scenario.Id == tenantSettings.DefaultScenarioId)
            {
                return(this.Error().BadRequest("Cannot delete the default scenario"));
            }

            _passRepository.RemoveByScenarioId(id);
            _scenarioRepository.Delete(id);

            return(this.NoContent());
        }
Esempio n. 2
0
        public IHttpActionResult GetUniqueFailureTypesForScenarioAndItsSiblings(Guid scenarioId)
        {
            var run = _runRepository.GetByScenarioId(scenarioId);

            if (run is null || run.Count() != 1)
            {
                return(NotFound());
            }

            var scenarioIds = new List <Guid>();

            run.First().Scenarios.ForEach(s => scenarioIds.Add(s.Id));

            return(Ok(GetFailureTypes(scenarioIds)));
        }