public ResponseViewModel ChangePassword(ChangePasswordAccountViewModel model)
        {
            ResponseViewModel reponse = new ResponseViewModel();

            try
            {
                var userNameExist = eventPlusContext.Login.Where(w => w.UserName == model.Username).FirstOrDefault();
                if (userNameExist == null)
                {
                    reponse.Type     = "error";
                    reponse.Response = "El usuario ingresado no existe.";
                }
                else
                {
                    var oldPassword = eventPlusContext.Login.Where(w => w.Password == model.OldPassword).FirstOrDefault();
                    if (oldPassword == null)
                    {
                        reponse.Type     = "error";
                        reponse.Response = "La clave actual no coincide";
                    }
                    else
                    {
                        if (!model.NewPassword.Equals(model.RepeatNewPassword))
                        {
                            reponse.Type     = "error";
                            reponse.Response = "La clave nueva y la confirmación de la clave nueva ingresadas, no coinciden.";
                        }
                        else
                        {
                            var changePassword = eventPlusContext.Login.Where(w => w.Password == model.OldPassword && w.UserName == model.Username).FirstOrDefault();
                            changePassword.Password = model.NewPassword;

                            eventPlusContext.Login.Add(changePassword);
                            eventPlusContext.Entry(changePassword).State = Microsoft.EntityFrameworkCore.EntityState.Modified;
                            eventPlusContext.SaveChanges();

                            reponse.Type     = "success";
                            reponse.Response = "Cambio de clave exitoso.";
                        }
                    }
                }

                return(reponse);
            }
            catch (Exception ex)
            {
                reponse.Type     = "error";
                reponse.Response = "Error en el procedimiento. ---> " + ex.Message;
                return(reponse);
            }
        }
Beispiel #2
0
        public IActionResult ChangePassword([FromBody] ChangePasswordAccountViewModel model)
        {
            var user = _autenticacion.ChangePassword(model);

            return(Ok(user));
        }