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()); }
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))); }