Example #1
0
        /// <summary>
        /// Este método obtiene todos los usuarios filtrados por nombre de usuario.
        /// Recibe por parámetro el filtro de nombre de usuario y devuelve una lista de usuarios flitrados.
        /// </summary>
        /// <param name="filtro">String para filtrar por nombre de usuario. Por ejemplo: Juan</param>
        /// <returns>Lista de objetos Usuario. El objeto Usuario posee los siguientes atributos: (idUsuario, nombreUsuario, emailUsuario, passwordUsuario)</returns>
        public static Usuario[] ObtenerUsuarios(string filtro)
        {
            List <Usuario> listaUsuarios = new List <Usuario>();

            try
            {
                SqlConnection cn = new SqlConnection(CadenaConexion.cadenaConexion);
                cn.Open();
                SqlCommand cmd = new SqlCommand();
                cmd.Connection = cn;
                string consulta = "Select u.idUsuario, u.nombreUsuario, u.emailUsuario, u.passwordUsuario,u.fechaAlta,max(e.fechaEncuesta) as ultimaEncuesta, count(*) as encuestasCreadas From Usuario u " +
                                  " left join Encuestas e ON u.idUsuario = e.idUsuario ";


                if (!string.IsNullOrEmpty(filtro))
                {
                    consulta += " WHERE (u.nombreUsuario like @filtro OR u.emailUsuario like @filtro)";
                    cmd.Parameters.AddWithValue("@filtro", "%" + filtro + "%");
                }
                consulta += " GROUP BY u.idUsuario, u.nombreUsuario, u.emailUsuario, u.passwordUsuario,u.fechaAlta ";

                cmd.CommandText = consulta;
                SqlDataReader dr = cmd.ExecuteReader();

                while (dr.Read())
                {
                    Usuario usuario = new Usuario();
                    usuario.idUsuario       = int.Parse(dr["idUsuario"].ToString());
                    usuario.nombreUsuario   = dr["nombreUsuario"].ToString();
                    usuario.emailUsuario    = dr["emailUsuario"].ToString();
                    usuario.passwordUsuario = dr["passwordUsuario"].ToString();
                    usuario.fechaAlta       = DAOMetodosUtiles.ParsearFecha(dr["fechaAlta"].ToString());

                    if (dr["ultimaEncuesta"] == DBNull.Value)
                    {
                        usuario.ultimaEncuesta   = DateTime.MinValue;
                        usuario.encuestasCreadas = 0;
                    }
                    else
                    {
                        usuario.ultimaEncuesta   = DAOMetodosUtiles.ParsearFecha(dr["ultimaEncuesta"].ToString());
                        usuario.encuestasCreadas = int.Parse(dr["encuestasCreadas"].ToString());
                    }

                    listaUsuarios.Add(usuario);
                }
                cn.Close();
                dr.Close();
            }

            catch (Exception ex)
            {
                string mensaje = string.Empty;
                mensaje = ex.ToString();
                Console.WriteLine(mensaje);
            }

            return(listaUsuarios.ToArray <Usuario>());
        }
Example #2
0
        /// <summary>
        /// Este método obtiene un usuario almacenado en la base de datos.
        /// Recibe por parámetro el id del usuario a consultar y devuelve el usuario que se corresponde con ese id.
        /// </summary>
        /// <param name="idUsuario">ID (int) del usuario a consultar. Por ejemplo: 27</param>
        /// <returns>Objeto que posee los siguientes atributos: (idUsuario, nombreUsuario, emailUsuario, passwordUsuario)</returns>
        public static Usuario ObtenerUsuario(int idUsuario)
        {
            Usuario usuario = new Usuario();

            try
            {
                SqlConnection cn = new SqlConnection(CadenaConexion.cadenaConexion);
                cn.Open();
                SqlCommand cmd = new SqlCommand();
                cmd.Connection  = cn;
                cmd.CommandText = "Select u.idUsuario, u.nombreUsuario, u.emailUsuario, u.passwordUsuario,u.fechaAlta," +
                                  "max(e.fechaEncuesta) as ultimaEncuesta, count(*) as encuestasCreadas " +
                                  "From Usuario u left join Encuestas e on u.idUsuario = e.idUsuario " +
                                  "where u.idUsuario = @idUsuario " +
                                  "GROUP BY u.idUsuario, u.nombreUsuario, u.emailUsuario, u.passwordUsuario,u.fechaAlta";
                cmd.Parameters.AddWithValue("@idUsuario", idUsuario);
                SqlDataReader dr = cmd.ExecuteReader();

                if (dr.Read())
                {
                    usuario.idUsuario       = int.Parse(dr["idUsuario"].ToString());
                    usuario.nombreUsuario   = dr["nombreUsuario"].ToString();
                    usuario.emailUsuario    = dr["emailUsuario"].ToString();
                    usuario.passwordUsuario = dr["passwordUsuario"].ToString();
                    usuario.fechaAlta       = DAOMetodosUtiles.ParsearFecha(dr["fechaAlta"].ToString());

                    if (dr["ultimaEncuesta"] == DBNull.Value)
                    {
                        usuario.ultimaEncuesta   = DateTime.MinValue;
                        usuario.encuestasCreadas = 0;
                    }
                    else
                    {
                        usuario.ultimaEncuesta   = DAOMetodosUtiles.ParsearFecha(dr["ultimaEncuesta"].ToString());
                        usuario.encuestasCreadas = int.Parse(dr["encuestasCreadas"].ToString());
                    }
                }
                cn.Close();
                dr.Close();
            }

            catch (Exception ex)
            {
                string mensaje = string.Empty;
                mensaje = ex.ToString();
                Console.WriteLine(mensaje);
            }

            return(usuario);
        }
        /// <summary>
        /// Este método obtiene los datos de los resultados de una pregunta de una encuesta.
        /// Recibe por parámetro el id de la encuesta y el id de la pregunta a consultar y devuelve un objeto Resultados Graficos.
        /// </summary>
        /// <param name="idEncuesta">ID (int) de la encuesta a consultar. Por ejemplo: 59</param>
        /// <param name="idPregunta">ID (int) de la pregunta a consultar. Por ejemplo: 1</param>
        /// <returns>Objeto ResultadosGraficos que posee los siguientes atributos: (labels (lista de strings, series (lista de doubles))</returns>
        public static ResultadosGraficos ObtenerDatos(int idEncuesta, int idPregunta)
        {
            ResultadosGraficos rs = new ResultadosGraficos();

            try
            {
                SqlConnection cn = new SqlConnection(CadenaConexion.cadenaConexion);
                cn.Open();
                SqlCommand cmd = new SqlCommand();
                cmd.Connection  = cn;
                cmd.CommandText = "SELECT R.idPregunta, R.descripcionRespuesta as descripcion, COUNT(*) as cantidad, MAX(r.fechaRespuesta) as ultimaRespuesta FROM Respuestas R, Preguntas P WHERE P.idPregunta = R.idPregunta AND P.idEncuesta=R.idEncuesta AND P.idPregunta = @idPregunta and p.IdEncuesta=@idEncuesta GROUP BY R.idPregunta, R.descripcionRespuesta";

                cmd.Parameters.AddWithValue("@idPregunta", idPregunta);
                cmd.Parameters.AddWithValue("@idEncuesta", idEncuesta);

                SqlDataReader dr = cmd.ExecuteReader();

                int cantidadTotal = ObtenerCantidadTotalDeRespuestas(idEncuesta, idPregunta);

                DateTime maximaFecha = DateTime.MinValue;

                while (dr.Read())
                {
                    rs.labels.Add(dr["descripcion"].ToString());
                    rs.series.Add(Math.Round((double.Parse(dr["cantidad"].ToString()) / cantidadTotal * 100), 2));
                    rs.cantidadTotalRespuestas = cantidadTotal;
                    DateTime d = DAOMetodosUtiles.ParsearFecha(dr["ultimaRespuesta"].ToString());
                    if (d.CompareTo(maximaFecha) > 0)
                    {
                        maximaFecha = d;
                    }
                }
                rs.ultimaActualizacion = maximaFecha;


                cn.Close();
                dr.Close();
            }

            catch (Exception ex)
            {
                string mensaje = string.Empty;
                mensaje = ex.ToString();
                Console.WriteLine(mensaje);
            }

            return(rs);
        }
        /// <summary>
        /// Este método obtiene todas las respuestas almacenadas en la base de datos.
        /// No recibe ningún parámetro y devuelve una lista de todas las respuestas.
        /// </summary>
        /// <returns>Lista de respuestas. Cada objeto respuesta posee los siguientes atributos: idRespuesta, idPregunta, idEncuesta, idEncuestado, codigoPregunta, descripcionRespuesta</returns>
        public static Respuestas[] ObtenerRespuestas()
        {
            List <Respuestas> listaRespuestas = new List <Respuestas>();

            try
            {
                SqlConnection cn = new SqlConnection(CadenaConexion.cadenaConexion);
                cn.Open();
                SqlCommand cmd = new SqlCommand();
                cmd.Connection  = cn;
                cmd.CommandText = "Select * from Respuestas";
                SqlDataReader dr = cmd.ExecuteReader();

                while (dr.Read())
                {
                    Respuestas respuestas = new Respuestas();
                    respuestas.idRespuesta          = int.Parse(dr["idRespuesta"].ToString());
                    respuestas.idPregunta           = int.Parse(dr["idPregunta"].ToString());
                    respuestas.idEncuesta           = int.Parse(dr["idEncuesta"].ToString());
                    respuestas.idEncuestado         = int.Parse(dr["idEncuestado"].ToString());
                    respuestas.descripcionRespuesta = dr["descripcionRespuesta"].ToString();
                    respuestas.fechaRespuesta       = DAOMetodosUtiles.ParsearFecha((dr["fechaRespuesta"].ToString()));

                    listaRespuestas.Add(respuestas);
                }
                cn.Close();
                dr.Close();
            }
            catch (Exception ex)
            {
                string mensaje = string.Empty;
                mensaje = ex.ToString();
                Console.WriteLine(mensaje);
            }

            return(listaRespuestas.ToArray <Respuestas>());
        }