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