public ActionResult Edit(string type, int id = -1) { ViewBag.ShouldBindListEditor = true; ViewBag.IsPrepopulated = false; if (id != -1) { var meta = repo.GetPuckMeta().Where(x => x.Name == DBNames.Tasks && x.Id == id).FirstOrDefault(); if (meta != null) { //Type t = Type.GetType(meta.Key); Type t = apiHelper.TaskTypes().FirstOrDefault(x => x.FullName.Equals(meta.Key)); var editModel = JsonConvert.DeserializeObject(meta.Value, t); ViewBag.Level0Type = editModel.GetType(); return(View(editModel)); } } //Type modelType = Type.GetType(type); Type modelType = apiHelper.TaskTypes().FirstOrDefault(x => x.FullName.Equals(type)); var model = Activator.CreateInstance(modelType); ((BaseTask)model).Id = -1; ViewBag.Level0Type = model.GetType(); return(View(model)); }
public async Task <ActionResult> ResetPassword(ResetPassword model) { if (ModelState.IsValid) { var meta = repo.GetPuckMeta().Where(x => x.Name == DBNames.PasswordResetToken && x.Key == model.ResetToken).FirstOrDefault(); if (meta == null) { ModelState.AddModelError("", "Password reset request not found."); return(View(model)); } var user = await userManager.FindByEmailAsync(meta.Value); if (user == null) { ModelState.AddModelError("", "User not found."); return(View(model)); } var token = await userManager.GeneratePasswordResetTokenAsync(user); var result = await userManager.ResetPasswordAsync(user, token, model.Password); if (!result.Succeeded) { string message = string.Join(" ", result.Errors.Select(x => x.Description)); ModelState.AddModelError("", message); return(View(model)); } repo.DeleteMeta(meta); repo.SaveChanges(); ViewBag.SuccessMessage = "Password successfully changed."; return(View(model)); } return(View(model)); }
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 })); }
public JsonResult DeleteParameters(string key) { bool success = false; string message = ""; try { repo.GetPuckMeta().Where(x => x.Name == DBNames.EditorSettings && x.Key == key).ToList().ForEach(x => repo.DeleteMeta(x)); repo.SaveChanges(); success = true; } catch (Exception ex) { success = false; message = ex.Message; log.Log(ex); } return(Json(new { success = success, message = message })); }