/// <summary> /// Cambia la contraseña del usuario /// </summary> /// <param name="pUsuario"></param> /// <returns></returns> public RespuestaUsuario CambiarContrasena(Usuario pUsuario) { int filasAfectadas; RespuestaUsuario respuesta = new RespuestaUsuario(); //STRORE PROCEDURE DEFINITION DbCommand dbCommand = database1.GetStoredProcCommand(defaultSchema + StoredProcedure.CambiarContrasena); //IN PARAMETERS database1.AddInParameter(dbCommand, parameterName(Usuario.codigoUsuarioProperty), DbType.String, pUsuario.CodigoUsuario); database1.AddInParameter(dbCommand, parameterName(Usuario.claveProperty), DbType.AnsiString, pUsuario.Clave); //OUT PARAMETERS database1.AddOutParameter(dbCommand, parameterName(BaseEntidad.codErrorProperty), DbType.String, Constantes.BaseDatos.codErrorTamano); database1.AddOutParameter(dbCommand, parameterName(BaseEntidad.mensajeProperty), DbType.String, Constantes.BaseDatos.mensajeTamano); filasAfectadas = database1.ExecuteNonQuery(dbCommand); //ERROR CODE AND MESSAGE COLLECTOR respuesta.Respuesta = new Respuesta(); respuesta.Respuesta.CodMensaje = DBHelper.ReadNullSafeString(database1.GetParameterValue(dbCommand, parameterName(BaseEntidad.codErrorProperty))); respuesta.Respuesta.Mensaje = DBHelper.ReadNullSafeString(database1.GetParameterValue(dbCommand, parameterName(BaseEntidad.mensajeProperty))); if (respuesta.Respuesta.CodMensaje == Respuesta.CodExitoso) { respuesta.Respuesta = new Respuesta(Mensajes.bmEditUsuario, respuesta.Respuesta.CodMensaje); } return(respuesta); }
/// <summary> /// Valida el inicio de sesion de un usuario en el sistema /// </summary> /// <param name="pUsuario"></param> /// <returns></returns> public RespuestaUsuario ValidarUsuarioLogin(Usuario pUsuario) { RespuestaUsuario respuesta = new RespuestaUsuario(); //STRORE PROCEDURE DEFINITION DbCommand dbCommand = database1.GetStoredProcCommand(defaultSchema + StoredProcedure.ValidarUsuarioLogin); //IN PARAMETERS database1.AddInParameter(dbCommand, parameterName(Usuario.codigoUsuarioProperty), DbType.String, pUsuario.CodigoUsuario); database1.AddInParameter(dbCommand, parameterName(Usuario.claveProperty), DbType.AnsiString, pUsuario.Clave); //OUT PARAMETERS database1.AddOutParameter(dbCommand, parameterName(BaseEntidad.codErrorProperty), DbType.String, Constantes.BaseDatos.codErrorTamano); database1.AddOutParameter(dbCommand, parameterName(BaseEntidad.mensajeProperty), DbType.String, Constantes.BaseDatos.mensajeTamano); //EXECUTE PROCEDURE var filasAfectadas = database1.ExecuteNonQuery(dbCommand); //ERROR CODE AND MESSAGE COLLECTOR respuesta.Respuesta = new Respuesta(); respuesta.Respuesta.CodMensaje = DBHelper.ReadNullSafeString(database1.GetParameterValue(dbCommand, parameterName(BaseEntidad.codErrorProperty))); respuesta.Respuesta.Mensaje = DBHelper.ReadNullSafeString(database1.GetParameterValue(dbCommand, parameterName(BaseEntidad.mensajeProperty))); //Registro de Error en bitacora /*if (respuesta.Respuesta.CodMensaje != Respuesta.CodExitoso) * { * RegistrarError(respuesta, MethodBase.GetCurrentMethod().ReflectedType.Name, MethodBase.GetCurrentMethod().Name); * }*/ return(respuesta); }
/// <summary> /// Valida el login de un usuario en el sistema. /// </summary> /// <param name="pUsuario"></param> /// <returns></returns> public RespuestaUsuario ValidarUsuarioLogin(Usuario pUsuario) { var respuesta = new RespuestaUsuario(); try { respuesta = dal.ValidarUsuarioLogin(pUsuario); BitacoraLogicaNegocios.RegistrarBitacora(MENSAJES_SISTEMA.RespuestaValidacion, TraceData.Utilities.Enums.TypeTrace.Info, respuesta, MethodBase.GetCurrentMethod().Name); //Se valida error if (respuesta.Respuesta.CodMensaje != Respuesta.CodExitoso) { //se procede a obtener el mensaje del error var oResp = new Respuesta(respuesta.Respuesta.CodMensaje); respuesta.Respuesta = oResp; return(respuesta); } //si todo estuvo correcto se crea una sesion al usuario var pSesion = new Sesion() { IdEntidad = pUsuario.IdEntidad, CodigoUsuario = pUsuario.CodigoUsuario, IP = pUsuario.IP }; var RespSesion = sesion.InsertarSesion(pSesion); BitacoraLogicaNegocios.RegistrarBitacora(MENSAJES_SISTEMA.RespuestaInsertar, TraceData.Utilities.Enums.TypeTrace.Info, RespSesion, MethodBase.GetCurrentMethod().Name); if (RespSesion.Respuesta.CodMensaje != Respuesta.CodExitoso) { respuesta.Respuesta = RespSesion.Respuesta; return(respuesta); } //se da la respuesta con el token de sesion var oSesion = RespSesion.Sesion; respuesta.Usuario = new Usuario() { UsrtokensAuthenticate = oSesion.Token }; } catch (Exception ex) { ControlExcepciones.ControlExcepciones.ManejoExcepciones(ex, pUsuario); BitacoraLogicaNegocios.RegistrarBitacora(MENSAJES_SISTEMA.ErrorExcepcion, TraceData.Utilities.Enums.TypeTrace.Exception, ex, MethodBase.GetCurrentMethod().Name); return(new RespuestaUsuario { Respuesta = new Respuesta(TipoRespuesta.Excepcion, ex.Message, Respuesta.CodNoValido) }); } return(respuesta); }
/// <summary> /// Metodo que sirve para Modificar un objeto de tipo Usuario /// </summary> /// <param name="pUsuario"></param> /// <returns></returns> public RespuestaUsuario ModificarUsuario(Usuario pUsuario) { var respuesta = new RespuestaUsuario(); try { string CodigoAlerta = "UsuarioEdit"; List <string> mensajes = new List <string>(); RespuestaSesion respS = sesion.ObtenerSesion(new Sesion() { Token = pUsuario.UsrtokensAuthenticate }); if (respS.Respuesta.CodMensaje == Respuesta.CodExitoso) { //VALIDACION: Entidad no puede venir vacio pUsuario.UsrModificacion = respS.Sesion.CodigoUsuario; if (ValidacionesModificacion(pUsuario, ref mensajes)) { //obtenemos los roles del usuario pUsuario.XMLData = Util.SerializarObjeto(pUsuario.Roles); respuesta = dal.ModificarUsuario(pUsuario); BitacoraLogicaNegocios.RegistrarBitacora(MENSAJES_SISTEMA.RespuestaModificar, TraceData.Utilities.Enums.TypeTrace.Info, respuesta, MethodBase.GetCurrentMethod().Name); Notificacion(pUsuario, CodigoAlerta); } else { //NO COMPLETA LA VALIDACION, SE ENVIAN DE REGRESO LOS MENSAJES respuesta = new RespuestaUsuario { Respuesta = new Respuesta(Respuesta.CodNoValido), Usuario = respuesta.Usuario }; } return(respuesta); } else { return new RespuestaUsuario { Respuesta = respS.Respuesta, Usuario = new Usuario() } }; } catch (Exception ex) { ControlExcepciones.ControlExcepciones.ManejoExcepciones(ex, pUsuario); BitacoraLogicaNegocios.RegistrarBitacora(MENSAJES_SISTEMA.ErrorExcepcion, TraceData.Utilities.Enums.TypeTrace.Exception, ex, MethodBase.GetCurrentMethod().Name); return(new RespuestaUsuario { Respuesta = new Respuesta(TipoRespuesta.Excepcion, ex.Message, Respuesta.CodNoValido) }); } }
/// <summary> /// Inserta informacion en la tabla Usuario /// </summary> /// <param name="pUsuario"></param> /// <returns></returns> public RespuestaUsuario InsertarUsuario(Usuario pUsuario) { int filasAfectadas; RespuestaUsuario respuesta = new RespuestaUsuario(); //STRORE PROCEDURE DEFINITION DbCommand dbCommand = database1.GetStoredProcCommand(defaultSchema + StoredProcedure.InsertarUsuario); //IN PARAMETERS database1.AddInParameter(dbCommand, parameterName(Usuario.codigoUsuarioProperty), DbType.String, pUsuario.CodigoUsuario); database1.AddInParameter(dbCommand, parameterName(BaseEntidad.idEntidadProperty), DbType.Int64, pUsuario.IdEntidad); database1.AddInParameter(dbCommand, parameterName(Usuario.nombreProperty), DbType.String, pUsuario.Nombre); database1.AddInParameter(dbCommand, parameterName(Usuario.claveProperty), DbType.AnsiString, pUsuario.Clave); database1.AddInParameter(dbCommand, parameterName(Usuario.idTipoIdentificacionProperty), DbType.Int64, pUsuario.IdTipoIdentificacion); database1.AddInParameter(dbCommand, parameterName(Usuario.idPaisProperty), DbType.Int64, pUsuario.IdPais); database1.AddInParameter(dbCommand, parameterName(Usuario.correoElectronicoProperty), DbType.String, pUsuario.CorreoElectronico); database1.AddInParameter(dbCommand, parameterName(Usuario.identificacionProperty), DbType.String, pUsuario.Identificacion); database1.AddInParameter(dbCommand, parameterName(Usuario.estadoProperty), DbType.String, pUsuario.Estado); database1.AddInParameter(dbCommand, parameterName(Usuario.fechaExpiracionClaveProperty), DbType.DateTime, pUsuario.FechaExpiracionClave); database1.AddInParameter(dbCommand, parameterName(BaseEntidad.xmlDataProperty), DbType.Xml, pUsuario.XMLData); database1.AddInParameter(dbCommand, parameterName(BaseEntidad.usrCreacionProperty), DbType.String, pUsuario.UsrCreacion); database1.AddInParameter(dbCommand, parameterName(BaseEntidad.nombreControladorProperty), DbType.String, pUsuario.NombreControlador); //OUT PARAMETERS database1.AddOutParameter(dbCommand, parameterName(BaseEntidad.codErrorProperty), DbType.String, Constantes.BaseDatos.codErrorTamano); database1.AddOutParameter(dbCommand, parameterName(BaseEntidad.mensajeProperty), DbType.String, Constantes.BaseDatos.mensajeTamano); //EXECUTE PROCEDURE filasAfectadas = database1.ExecuteNonQuery(dbCommand); //ERROR CODE AND MESSAGE COLLECTOR respuesta.Respuesta = new Respuesta(); respuesta.Respuesta.CodMensaje = DBHelper.ReadNullSafeString(database1.GetParameterValue(dbCommand, parameterName(BaseEntidad.codErrorProperty))); respuesta.Respuesta.Mensaje = DBHelper.ReadNullSafeString(database1.GetParameterValue(dbCommand, parameterName(BaseEntidad.mensajeProperty))); if (respuesta.Respuesta.CodMensaje == Respuesta.CodExitoso) { respuesta.Usuario = pUsuario; respuesta.Respuesta = new Respuesta(Mensajes.bmCreateUsuario, respuesta.Respuesta.CodMensaje); } return(respuesta); }
/// <summary> /// Metodo que sirve para Obtener la lista de tipo Usuario /// </summary> /// <param name="pUsuario">Filtro de tipo Usuario</param> /// <returns></returns> public RespuestaUsuario ObtenerUsuario(Usuario pUsuario) { var respuesta = new RespuestaUsuario(); try { RespuestaSesion respS = sesion.ObtenerSesion(new Sesion() { Token = pUsuario.UsrtokensAuthenticate }); if (respS.Respuesta.CodMensaje == Respuesta.CodExitoso) { pUsuario.IdEntidad = respS.Sesion.IdEntidad; respuesta.Usuario = dal.ObtenerUsuario(pUsuario).ListaUsuario?[0]; return(respuesta.Usuario != null ? new RespuestaUsuario { Respuesta = new Respuesta(string.Empty, Respuesta.CodExitoso), Usuario = respuesta.Usuario } : new RespuestaUsuario { Respuesta = new Respuesta(Respuestas.GI03, Respuesta.CodExitoso), Usuario = new Usuario() }); } else { return new RespuestaUsuario { Respuesta = respS.Respuesta, Usuario = new Usuario() } }; } catch (Exception ex) { ControlExcepciones.ControlExcepciones.ManejoExcepciones(ex, pUsuario); BitacoraLogicaNegocios.RegistrarBitacora(MENSAJES_SISTEMA.ErrorExcepcion, TraceData.Utilities.Enums.TypeTrace.Exception, ex, MethodBase.GetCurrentMethod().Name); return(new RespuestaUsuario { Respuesta = new Respuesta(TipoRespuesta.Excepcion, ex.Message, Respuesta.CodNoValido) }); } }
/// <summary> /// Método que cambia la contraseña del usuario /// </summary> /// <param name="pUsuario"></param> /// <returns></returns> public RespuestaUsuario CambiarContrasena(Usuario pUsuario) { var respuesta = new RespuestaUsuario(); try { string CodigoAlerta = "UsuarioCambioPass"; //validamos la contraseña a cambiar var oRespContrasena = ValidarContrasenna(pUsuario); if (oRespContrasena.Respuesta.CodMensaje == Respuesta.CodExitoso) { respuesta = dal.CambiarContrasena(pUsuario); BitacoraLogicaNegocios.RegistrarBitacora(MENSAJES_SISTEMA.RespuestaCambioContrasena, TraceData.Utilities.Enums.TypeTrace.Info, respuesta, MethodBase.GetCurrentMethod().Name); Notificacion(pUsuario, CodigoAlerta); return(respuesta); } else { return(oRespContrasena); } } catch (Exception ex) { ControlExcepciones.ControlExcepciones.ManejoExcepciones(ex, pUsuario); BitacoraLogicaNegocios.RegistrarBitacora(MENSAJES_SISTEMA.ErrorExcepcion, TraceData.Utilities.Enums.TypeTrace.Exception, ex, MethodBase.GetCurrentMethod().Name); return(new RespuestaUsuario { Respuesta = new Respuesta(TipoRespuesta.Excepcion, ex.Message, Respuesta.CodNoValido) }); } }
/// <summary> /// Método que valida la contraseña del usuario. /// </summary> /// <param name="oUsuario"></param> /// <returns></returns> public RespuestaUsuario ValidarContrasenna(Usuario oUsuario) { var oRespuesta = new RespuestaUsuario { Respuesta = new Respuesta() { CodMensaje = Respuesta.CodError } }; try { var catalogoLn = new CatalogoLogicaNegocio(); //desencriptamos la contraseña enviada string clave = oEncriptador.DesEncriptar(oUsuario.Clave); /************* Obtener Longitud *******************/ var longitudPassword = Convert.ToInt32(catalogoLn.ObtenerCatalogo(new Catalogo() { CodigoParametro = Constantes.Catalogo.LongitudPassword }).Catalogo.Identificador); /************* Obtener Numeros *******************/ var cantidadNumeros = Convert.ToInt32(catalogoLn.ObtenerCatalogo(new Catalogo() { CodigoParametro = Constantes.Catalogo.CntMinNumPassword }).Catalogo.Identificador); /************* Obtener Mayusculas *******************/ var cantidadMayusculas = Convert.ToInt32(catalogoLn.ObtenerCatalogo(new Catalogo() { CodigoParametro = Constantes.Catalogo.CntMinMayusculasPassword }).Catalogo.Identificador); /************* Obtener Simbolos *******************/ var cantidadSimbolos = Convert.ToInt32(catalogoLn.ObtenerCatalogo(new Catalogo() { CodigoParametro = Constantes.Catalogo.CntMinSimbolosPassword }).Catalogo.Identificador); int contNum = 0; int contMayus = 0; int contSymbol = 0; foreach (char c in clave) { if (char.IsNumber(c)) { contNum++; } else if (char.IsUpper(c)) { contMayus++; } else if (char.IsSymbol(c) | char.IsPunctuation(c)) { contSymbol++; } } var oMensajes = new List <string>(); //Valida la cantidad mínima de caracteres if (oUsuario.Clave.Length < longitudPassword) { oMensajes.Add(string.Format(MensajesValidaciones.PassMinCaracteres, longitudPassword)); } //Valida la cantidad mínima de números if (contNum < cantidadNumeros) { oMensajes.Add(string.Format(MensajesValidaciones.PassMinNumeros, cantidadNumeros)); } //Valida la cantidad mínima de mayúsculas if (contMayus < cantidadMayusculas) { oMensajes.Add(string.Format(MensajesValidaciones.PassMinMayusculas, cantidadMayusculas)); } //Valida la cantidad mínima de símbolos if (contSymbol < cantidadSimbolos) { oMensajes.Add(string.Format(MensajesValidaciones.PassMinSimbolos, cantidadSimbolos)); } if (oMensajes.Count != 0) { //Contraseña incorrecta oRespuesta.Respuesta.Mensaje = oMensajes.FirstOrDefault(); oRespuesta.Respuesta.Mensajes = oMensajes; return(oRespuesta); } //contraseña correcta return(new RespuestaUsuario() { Respuesta = new Respuesta() { CodMensaje = Respuesta.CodExitoso } }); } catch (Exception oException) { ControlExcepciones.ControlExcepciones.ManejoExcepciones(oException, oUsuario); BitacoraLogicaNegocios.RegistrarBitacora(MENSAJES_SISTEMA.ErrorExcepcion, TraceData.Utilities.Enums.TypeTrace.Exception, oException, MethodBase.GetCurrentMethod().Name); return(new RespuestaUsuario { Respuesta = new Respuesta(TipoRespuesta.Excepcion, oException.Message, Respuesta.CodNoValido) }); } }
/// <summary> /// Metodo para insertar un valor de tipo Usuario /// </summary> /// <param name="pUsuario"></param> /// <returns></returns> public RespuestaUsuario InsertarUsuario(Usuario pUsuario) { var respuesta = new RespuestaUsuario(); try { string CodigoAlerta = "UsuarioCreate"; List <string> mensajes = new List <string>(); RespuestaSesion respS = sesion.ObtenerSesion(new Sesion() { Token = pUsuario.UsrtokensAuthenticate }); if (respS.Respuesta.CodMensaje == Respuesta.CodExitoso) { pUsuario.UsrCreacion = respS.Sesion.CodigoUsuario; //**** Contraseña temporal para el nuevo usuario***** //TODO: encriptar contraseña string clave = new LnGenPassword().GetNewPassword(); //encriptamos la clave pUsuario.Clave = oEncriptador.Encriptar(clave); //EJECUTAR: se guarda la entidad if (ValidacionesCreacion(pUsuario, ref mensajes)) { //se define los datos necesarios para el usuario pUsuario.IdEntidad = respS.Sesion.IdEntidad; //obtenemos los roles del usuario pUsuario.XMLData = Util.SerializarObjeto(pUsuario.Roles); respuesta = dal.InsertarUsuario(pUsuario); BitacoraLogicaNegocios.RegistrarBitacora(MENSAJES_SISTEMA.RespuestaInsertar, TraceData.Utilities.Enums.TypeTrace.Info, respuesta, MethodBase.GetCurrentMethod().Name); Notificacion(pUsuario, CodigoAlerta); //Se valida error if (respuesta.Respuesta.CodMensaje != Respuesta.CodExitoso) { //se procede a obtener el mensaje del error var oResp = new Respuesta(respuesta.Respuesta.CodMensaje); if (string.IsNullOrEmpty(oResp.Mensaje)) { oResp.Mensaje = Mensajes.msjErrorGenerico; } respuesta.Respuesta = oResp; return(respuesta); } //****Se envia a crear la primera autorización*** Task.Factory.StartNew(() => InsertarAutorizacion(respuesta.Usuario)); //*********************************************** } else { //NO COMPLETA LA VALIDACION, SE ENVIAN DE REGRESO LOS MENSAJES respuesta = new RespuestaUsuario { Respuesta = new Respuesta(Respuesta.CodNoValido), Usuario = respuesta.Usuario }; } return(respuesta); } else { return new RespuestaUsuario { Respuesta = respS.Respuesta, Usuario = new Usuario() } }; } catch (Exception ex) { ControlExcepciones.ControlExcepciones.ManejoExcepciones(ex, pUsuario); BitacoraLogicaNegocios.RegistrarBitacora(MENSAJES_SISTEMA.ErrorExcepcion, TraceData.Utilities.Enums.TypeTrace.Exception, ex, MethodBase.GetCurrentMethod().Name); return(new RespuestaUsuario { Respuesta = new Respuesta(TipoRespuesta.Excepcion, ex.Message, Respuesta.CodNoValido) }); } }