Example #1
0
        /// <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);
        }
Example #2
0
        /// <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);
        }
Example #3
0
        /// <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);
        }
Example #4
0
        /// <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)
                });
            }
        }
Example #5
0
        /// <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);
        }
Example #6
0
        /// <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)
                });
            }
        }
Example #7
0
        /// <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)
                });
            }
        }
Example #8
0
        /// <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)
                });
            }
        }
Example #9
0
        /// <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)
                });
            }
        }