public JsonResult DeleteParameters(string key) { bool success = false; string message = ""; try { var metas = repo.GetPuckMeta().Where(x => x.Name == DBNames.EditorSettings && x.Key == key).ToList(); var meta = metas.FirstOrDefault(); metas.ForEach(x => repo.DeleteMeta(x)); //clear cached values var cachePrefix = "editor_settings_"; var cacheKey = cachePrefix + key; cache.Remove(cacheKey); cache.Remove("null_" + cacheKey); var instruction = new PuckInstruction() { Count = 2, ServerName = ApiHelper.ServerName(), InstructionDetail = $"{cacheKey},{"null_" + cacheKey}", InstructionKey = InstructionKeys.RemoveFromCache }; repo.AddPuckInstruction(instruction); repo.SaveChanges(); if (meta != null) { var keyParts = key.Split(new char[] { ':' }); var typeSettings = ApiHelper.EditorSettingTypes().FirstOrDefault(x => x.FullName == keyParts[0]); object model = JsonConvert.DeserializeObject(meta.Value, typeSettings); ApiHelper.OnAfterSettingsDelete(this, new puck.core.Events.AfterEditorSettingsDeleteEventArgs { Setting = (I_Puck_Editor_Settings)model , SettingsTypeFullName = keyParts[0] , ModelTypeName = keyParts[1] , PropertyName = keyParts[2] }); } success = true; } catch (Exception ex) { success = false; message = ex.Message; log.Log(ex); } return(Json(new { success = success, message = message })); }