public async Task <ActionResult> Patch(string id, [FromBody] IEnumerable <PatchFeatureToggleRequest> patches) { if (patches == null || !patches.Any() || !patches.All(patch => PatchFeatureToggleRequest.Operations.Contains(patch.Operation.ToLowerInvariant()))) { return(BadRequest()); } var toggle = await _service.GetById(id); if (toggle.IsEmpty) { return(NotFound()); } foreach (var patch in patches) { switch (patch.Operation) { case PatchFeatureToggleRequest.OperationEnable: if (!bool.TryParse(patch.Value, out var enable)) { return(BadRequest()); } toggle.Enabled = enable; break; case PatchFeatureToggleRequest.OperationSetDescription: toggle.Description = patch.Value; break; default: return(BadRequest()); } } await _service.Update(toggle, GetContext()); return(NoContent()); }