示例#1
0
        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));
        }
示例#2
0
        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 }));
        }
示例#4
0
        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 }));
        }