Beispiel #1
0
        public RespuestaBD CambioClave(UsuarioCambioClave usuarioCambioClave)
        {
            using (InoBD db = new InoBD())
            {
                usuarioCambioClave.ClaveAntigua = Security.HashSHA1(usuarioCambioClave.ClaveAntigua);
                Empleado empleado     = db.Empleados.Where(x => x.Usuario == usuarioCambioClave.Usuario && x.Contrasena == usuarioCambioClave.ClaveAntigua).FirstOrDefault();
                int      UsuarioAdmin = Convert.ToInt32(ConfigurationManager.AppSettings["UsuarioAdmin"]);
                if (empleado != null && usuarioCambioClave.IdUsuarioModificacion == UsuarioAdmin)
                {
                    empleado = db.Empleados.Where(x => x.Usuario == usuarioCambioClave.Usuario).FirstOrDefault();
                }
                if (empleado != null)
                {
                    if (usuarioCambioClave.ClaveNueva == usuarioCambioClave.ClaveNuevaRepetida)
                    {
                        empleado.Contrasena            = Security.HashSHA1(usuarioCambioClave.ClaveNueva);
                        empleado.IdUsuarioModificacion = usuarioCambioClave.IdUsuarioModificacion;
                        empleado.FechaModificacion     = DateTime.Now;
                        db.SaveChanges();
                        //Mensaje de respuesta
                        respuesta.Id      = empleado.IdEmpleado;
                        respuesta.Mensaje = "La contraseña se cambió correctamente.";

                        // Auditoria
                        AuditoriaGeneral auditoria = new AuditoriaGeneral
                        {
                            Accion          = "CambioDeClave",
                            NombreTabla     = "Empleado",
                            ValoresAntiguos = null,
                            ValoresNuevos   = JsonConvert.SerializeObject(usuarioCambioClave),
                            IdUsuario       = usuarioCambioClave.IdUsuarioModificacion
                        };

                        this._gestorDeAuditoria.AgregarAuditoria(auditoria);
                    }
                    else
                    {
                        //Mensaje de respuesta
                        respuesta.Id      = 0;
                        respuesta.Mensaje = "Las contraseñas nuevas son diferentes, intente nuevamente.";
                    }
                }
                else
                {
                    //Mensaje de respuesta
                    respuesta.Id      = 0;
                    respuesta.Mensaje = "La contraseña ingresada no es correcta, intente nuevamente.";
                }

                return(respuesta);
            }
        }
 public RespuestaBD CambioClave(UsuarioCambioClave usuarioCambioClave)
 {
     return(_gestorDeUsuarios.CambioClave(usuarioCambioClave));
 }