public ActionResult ChangeLocalPassword(ManagementModel model)
        {
            bool hasLocalAccount = OAuthWebSecurity.HasLocalAccount(WebSecurity.GetUserId(User.Identity.Name));
            ViewBag.HasLocalPassword = hasLocalAccount;
            ViewBag.ReturnUrl = Url.Action("Manage");
            if (hasLocalAccount)
            {
                if (ModelState.IsValid)
                {
                    // ChangePassword will throw an exception rather than return false in certain failure scenarios.
                    bool changePasswordSucceeded;
                    try
                    {
                        changePasswordSucceeded = WebSecurity.ChangePassword(User.Identity.Name, model.passWordModel.OldPassword, model.passWordModel.NewPassword);
                    }
                    catch (Exception)
                    {
                        changePasswordSucceeded = false;
                    }

                    if (changePasswordSucceeded)
                    {
                        return RedirectToAction("Manage", new { Message = ManageMessageId.ChangePasswordSuccess });
                    }
                    else
                    {
                        ModelState.AddModelError("", "La contraseña actual o la nueva no es válida.");
                    }
                }
            }

            // If we got this far, something failed, redisplay form
            return RedirectToAction("Manage"); ;
        }
 public ActionResult ChangePersonalInfo(ManagementModel model)
 {
     if (ModelState.IsValid)
     {
         AnunciosDbContext db = new AnunciosDbContext();
         UserProfile perfil = db.usuarios.FirstOrDefault(d => d.UserName.Equals(User.Identity.Name));
         perfil.Nombre = model.infoPersonal.Nombre;
         perfil.Apellidos = model.infoPersonal.Apellidos;
         perfil.Email = model.infoPersonal.Email;
         perfil.ciudadId = model.infoPersonal.CiudadId;
         db.SaveChanges();
         return RedirectToAction("Manage", new { Message = ManageMessageId.ChangePersonalInfoSuccess });
     }
     else
     {
         return RedirectToAction("Manage");
     }
 }
 //
 // GET: /Account/Manage
 public ActionResult Manage(ManageMessageId? message)
 {
     ViewBag.StatusMessage =
         message == ManageMessageId.ChangePasswordSuccess ? "Tu contraseña ha sido cambiada."
         : message == ManageMessageId.ChangePersonalInfoSuccess ? "Se ha actualizado tu información personal."
         : message == ManageMessageId.ChangePasswordFail ? "Se ha producido un error al cambiar la contraseña."
         : "";
     ViewBag.HasLocalPassword = OAuthWebSecurity.HasLocalAccount(WebSecurity.GetUserId(User.Identity.Name));
     ViewBag.ReturnUrl = Url.Action("Manage");
     //Cargamos la información personal del usuario
     ManagementModel modelo = new ManagementModel();
     PersonalInfoModel infoExistente = new PersonalInfoModel();
     AnunciosDbContext db = new AnunciosDbContext();
     UserProfile perfil = db.usuarios.FirstOrDefault(d => d.UserName.Equals(User.Identity.Name));
     infoExistente.Nombre = perfil.Nombre;
     infoExistente.Apellidos = perfil.Apellidos;
     infoExistente.Email = perfil.Email;
     infoExistente.CiudadId = perfil.ciudadId;
     infoExistente.ciudadesDisponibles = CargadorSelectItems.cargarCiudadesExistentes();
     infoExistente.ciudadesDisponibles.First(d => d.Value.Equals(infoExistente.CiudadId.ToString())).Selected = true;
     modelo.infoPersonal = infoExistente;
     return View(modelo);
 }