public IActionResult AddFeatureToggle([FromBody] AddFeatureToggleModel featureToggleModel) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (featureToggleModel.ApplicationId <= 0) { return(BadRequest("Application not speficied!")); } var toggle = _db.FeatureToggles.FirstOrDefault(ft => ft.ToggleName == featureToggleModel.FeatureToggleName && ft.ApplicationId == featureToggleModel.ApplicationId); if (toggle != null) { return(BadRequest("Feature toggle with the same name already exists for this application!")); } var environments = GetEnvironmentsPerApp(featureToggleModel.ApplicationId); var featureToggle = _db.Add(new FeatureToggle { ToggleName = featureToggleModel.FeatureToggleName, ApplicationId = featureToggleModel.ApplicationId, Notes = featureToggleModel.Notes, IsPermanent = featureToggleModel.IsPermanent }); _db.SaveChanges(); foreach (var env in environments) { _db.Add(new FeatureToggleStatus { Enabled = env.DefaultToggleValue, EnvironmentId = env.Id, FeatureToggleId = featureToggle.Entity.Id }); } _db.SaveChanges(); return(Ok()); }