/// <summary>
        /// Metodo que sirve para Obtener la lista de tipo CuentaEmail
        /// </summary>
        /// <param name="pCuentaEmail">Filtro de tipo CuentaEmail</param>
        /// <returns></returns>
        public RespuestaListaCuentaEmail ObtenerListaCuentaEmail(CuentaEmail pCuentaEmail)
        {
            var respuesta = new RespuestaListaCuentaEmail();

            try
            {
                RespuestaSesion respS = sesion.ObtenerSesion(new Sesion()
                {
                    Token = pCuentaEmail.UsrtokensAuthenticate
                });
                if (respS.Respuesta.CodMensaje == Respuesta.CodExitoso)
                {
                    pCuentaEmail.IdEntidad = respS.Sesion.IdEntidad;

                    respuesta = dal.ObtenerCuentaEmail(pCuentaEmail);
                    return(respuesta);
                }
                else
                {
                    return new RespuestaListaCuentaEmail {
                               Respuesta = respS.Respuesta, ListaCuentaEmail = new List <CuentaEmail>()
                    }
                };
            }
            catch (Exception ex)
            {
                ControlExcepciones.ControlExcepciones.ManejoExcepciones(ex, pCuentaEmail);
                return(new RespuestaListaCuentaEmail {
                    Respuesta = new Respuesta(TipoRespuesta.Excepcion, ex.Message, Respuesta.CodNoValido)
                });
            }
        }
        /// <summary>
        /// Consulta en la base de datos  la tabla CuentaEmail
        /// </summary>
        /// <param name="pCuentaEmail"></param>
        /// <returns></returns>
        public RespuestaListaCuentaEmail ObtenerCuentaEmailPaginado(CuentaEmail pCuentaEmail, Paginacion pPaginacion)
        {
            RespuestaListaCuentaEmail respuesta = new RespuestaListaCuentaEmail();

            respuesta.ListaCuentaEmail = new List <CuentaEmail>();

            //STRORE PROCEDURE DEFINITION
            DbCommand dbCommand = database1.GetStoredProcCommand(defaultSchema + StoredProcedure.ObtenerCuentaEmailPaginado);

            //IN PARAMETERS

            database1.AddInParameter(dbCommand, parameterName(CuentaEmail.idProperty), DbType.Int32, pCuentaEmail.Id);
            database1.AddInParameter(dbCommand, parameterName(BaseEntidad.idEntidadProperty), DbType.Int64, pCuentaEmail.IdEntidad);
            database1.AddInParameter(dbCommand, parameterName(CuentaEmail.correoElectronicoProperty), DbType.AnsiString, pCuentaEmail.CorreoElectronico);
            database1.AddInParameter(dbCommand, parameterName(CuentaEmail.aliasProperty), DbType.AnsiString, pCuentaEmail.Alias);
            database1.AddInParameter(dbCommand, parameterName(CuentaEmail.servidorProperty), DbType.AnsiString, pCuentaEmail.Servidor);
            database1.AddInParameter(dbCommand, parameterName(CuentaEmail.puertoProperty), DbType.Int32, pCuentaEmail.Puerto);
            database1.AddInParameter(dbCommand, parameterName(CuentaEmail.usuarioProperty), DbType.AnsiString, pCuentaEmail.Usuario);
            database1.AddInParameter(dbCommand, parameterName(CuentaEmail.contrasenaProperty), DbType.AnsiString, pCuentaEmail.Contrasena);
            database1.AddInParameter(dbCommand, parameterName(CuentaEmail.sslProperty), DbType.Boolean, pCuentaEmail.Ssl);
            database1.AddInParameter(dbCommand, parameterName(CuentaEmail.credencialesDefectoProperty), DbType.Boolean, pCuentaEmail.CredencialesDefecto);
            database1.AddInParameter(dbCommand, parameterName(CuentaEmail.cuentaDefectoProperty), DbType.Boolean, pCuentaEmail.CuentaDefecto);
            database1.AddInParameter(dbCommand, parameterName(Paginacion.numPaginaProperty), DbType.Int32, pPaginacion.NumPagina);


            //OUT PARAMETERS
            database1.AddOutParameter(dbCommand, parameterName(Paginacion.tamanoPaginaProperty), DbType.Int32, 32);
            database1.AddOutParameter(dbCommand, parameterName(Paginacion.totalRegistrosProperty), DbType.Int32, 32);
            database1.AddOutParameter(dbCommand, parameterName(BaseEntidad.codErrorProperty), DbType.String, 2);
            database1.AddOutParameter(dbCommand, parameterName(BaseEntidad.mensajeProperty), DbType.String, 200);



            //EXECUTE PROCEDURE - CONVERT ROWS
            using (IDataReader Reader = database1.ExecuteReader(dbCommand))
            {
                while (Reader.Read())
                {
                    respuesta.ListaCuentaEmail.Add(new CuentaEmail(Reader));
                }
            }

            //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)));
            respuesta.TotalRegistros       = DBHelper.ReadNullSafeInt(database1.GetParameterValue(dbCommand, parameterName(Paginacion.totalRegistrosProperty)));
            respuesta.TamanoPagina         = DBHelper.ReadNullSafeInt(database1.GetParameterValue(dbCommand, parameterName(Paginacion.tamanoPaginaProperty)));
            respuesta.NumPagina            = pPaginacion.NumPagina;

            //Registro de Error en bitacora

            /*if (respuesta.Respuesta.CodMensaje != Respuesta.CodExitoso)
             * {
             *                  RegistrarError(respuesta, MethodBase.GetCurrentMethod().ReflectedType.Name, MethodBase.GetCurrentMethod().Name);
             * }*/

            return(respuesta);
        }