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