示例#1
0
 public string ActualizarPunto(PuntoGrupo punto)
 {
     HttpCookie cookie = HttpContext.Current.Request.Cookies.Get("Usuario");
     if (cookie != null && AutentificacionBD.VerificarToken(cookie.Values.Get("Token")))
     {
         string cliente = new Codificador().Desencriptar(cookie.Values.Get("Cliente"));
         cliente = cliente.Replace("\0", string.Empty);
         if (PuntoGrupoBD.ActualizaPunto(punto,cliente))
         {
             return "ok";
         }
         else
         {
             return "errorBD";
         }
     }
     else
     {
         return "error404";
     }
 }
示例#2
0
 public string CrearPunto(PuntoGrupo punto)
 {
     HttpCookie Cookie = HttpContext.Current.Request.Cookies.Get("Usuario");
     if (Cookie != null && AutentificacionBD.VerificarToken(Cookie.Values.Get("Token")))
     {
         string cliente = new Codificador().Desencriptar(Cookie.Values.Get("Cliente"));
         cliente = cliente.Replace("\0", string.Empty);
         int id = PuntoGrupoBD.CrearPunto(punto,cliente);
         if ( id > -1)
         {
             return id.ToString();
         }
         else
         {
             return "errorBD";
         }
     }
     else
     {
         return "error404";
     }
 }
示例#3
0
    /// <summary>
    /// Metodo para Actualizar un punto
    /// </summary>
    /// <param name="punto">Informacion para actualizar el punto</param>
    /// <param name="usuario">Usuario al cual pertenece el punto</param>
    /// <returns></returns>
    public static bool ActualizaPunto(PuntoGrupo punto, string usuario)
    {
        if (punto.Grupos.Count >0)
        {
            string query = "UPDATE Punto SET " +
                          "Nombre = @nombre, " +
                          "x = @x," +
                          "y = @y," +
                          "Direccion = @direccion," +
                          "Horario = @horario," +
                          "Email = @email," +
                          "Pagina = @pagina," +
                          "Telefono = @telefono, " +
                          "Nota = @nota, " +
                          "calle = @calle, " +
                          "colonia = @colonia, " +
                          "ciudad = @ciudad " +
                          "WHERE PuntoID = @puntoID AND UsuarioID = @usuarioID " +
                          "DELETE FROM grupo_punto WHERE PuntoID = @puntoID AND UsuarioID = @usuarioID; ";

            foreach (Grupo grupo in punto.Grupos)
            {
                query += "INSERT INTO Grupo_Punto (GrupoID,PuntoID,UsuarioID) VALUES (" + grupo.GrupoID + "," + punto.PuntoID + ",'" + usuario + "');";
            }
            using (SqlConnection sqlConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["connectionStringBD"].ConnectionString))
            {
                sqlConnection.Open();
                using (SqlTransaction sqlTransaction = sqlConnection.BeginTransaction())
                {
                    try
                    {
                        using (SqlCommand sqlCommand = new SqlCommand(query, sqlConnection))
                        {
                            sqlCommand.Transaction = sqlTransaction;
                            sqlCommand.Parameters.AddWithValue("@puntoID", punto.PuntoID);
                            sqlCommand.Parameters.AddWithValue("@nombre", punto.Nombre);
                            sqlCommand.Parameters.AddWithValue("@x", punto.x);
                            sqlCommand.Parameters.AddWithValue("@y", punto.y);
                            sqlCommand.Parameters.AddWithValue("@direccion", punto.Direccion);
                            sqlCommand.Parameters.AddWithValue("@horario", punto.Horario);
                            sqlCommand.Parameters.AddWithValue("@email", punto.Email);
                            sqlCommand.Parameters.AddWithValue("@pagina", punto.Pagina);
                            sqlCommand.Parameters.AddWithValue("@telefono", punto.Telefono);
                            sqlCommand.Parameters.AddWithValue("@nota", punto.Nota);
                            sqlCommand.Parameters.AddWithValue("@usuarioID", usuario);
                            sqlCommand.Parameters.AddWithValue("@calle", punto.Calle ==  null ? "N/A": punto.Calle);
                            sqlCommand.Parameters.AddWithValue("@colonia", punto.Colonia == null ? "N/A" : punto.Colonia);
                            sqlCommand.Parameters.AddWithValue("@ciudad", punto.Ciudad == null ? "N/A" :punto.Ciudad);
                            sqlCommand.ExecuteNonQuery();
                            sqlTransaction.Commit();
                            return true;
                        }
                    }
                    catch (Exception)
                    {
                        sqlTransaction.Rollback();
                        throw;
                    }
                }
            }
        }
        return false;
    }
示例#4
0
    /// <summary>
    /// Metodo para Obtener los puntos pertenecientes a un grupo (Antes llamado Categoria)
    /// </summary>
    /// <param name="grupo">ID del grupo sobre el cual se realizara la busqueda</param>
    /// <param name="usuario">ID del usuario al cual corresponde el grupo</param>
    /// <returns></returns>
    public static List<PuntoGrupo> ObtenerPuntosPorGrupo(int grupo, string usuario)
    {
        List<PuntoGrupo> resultado = new List<PuntoGrupo>();
        string query = "SELECT punto.puntoID, g.grupoID, punto.grupo_puntoID, punto.Nombre,punto.x,punto.y,punto.direccion,punto.horario,punto.email,punto.pagina,punto.telefono,punto.UsuarioID, punto.calle,punto.colonia,punto.ciudad "+
                        "FROM ( " +
                            "SELECT p.PuntoID , gp.PuntoID AS gpPuntoID, gp.GrupoID,gp.grupo_puntoID, p.UsuarioID,p.Nombre,p.x,p.y,p.Direccion,p.Horario,p.Email,p.Pagina,p.Telefono,p.calle,p.colonia,p.ciudad FROM Punto p " +
                            "LEFT JOIN Grupo_Punto gp " +
                            "ON p.PuntoID = gp.PuntoID WHERE p.usuarioID = @usuario " +
                        ") punto " +
                        "LEFT JOIN grupo g ON g.grupoID = punto.grupoID ";
        if (grupo == -1)
        {
            query += "WHERE punto.grupoID is null ORDER BY punto.Nombre ASC";
        }
        else
        {
            query += "WHERE punto.grupoID = @grupo ORDER BY punto.Nombre ASC";
        }
        using (SqlConnection sqlConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["connectionStringBD"].ConnectionString))
        {
            sqlConnection.Open();
            using (SqlCommand sqlCommand = new SqlCommand(query, sqlConnection))
            {

                sqlCommand.Parameters.AddWithValue("@grupo", grupo);
                sqlCommand.Parameters.AddWithValue("@usuario", usuario);
                using (SqlDataReader reader = sqlCommand.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        PuntoGrupo punto = new PuntoGrupo();
                        punto.PuntoID = (int)reader["PuntoID"];
                        punto.Nombre = (string)reader["Nombre"];
                        punto.x = (double)reader["x"];
                        punto.y = (double)reader["y"];
                        punto.Direccion = reader["Direccion"] == DBNull.Value ? string.Empty : (string)reader["Direccion"];
                        punto.Horario = reader["Horario"] == DBNull.Value ? string.Empty : (string)reader["Horario"];
                        punto.Email = reader["Email"] == DBNull.Value ? string.Empty : (string)reader["Email"];
                        punto.Pagina = reader["Pagina"] == DBNull.Value ? string.Empty : (string)reader["Pagina"];
                        punto.Telefono = reader["Telefono"] == DBNull.Value ? string.Empty : (string)reader["Telefono"];
                        punto.Calle = reader["Calle"] == DBNull.Value ? string.Empty : (string)reader["Calle"];
                        punto.Colonia = reader["Colonia"] == DBNull.Value ? string.Empty: (string)reader["colonia"];
                        punto.Ciudad = reader["Ciudad"] == DBNull.Value ? string.Empty : (string)reader["ciudad"];
                        resultado.Add(punto);
                    }
                }
            }
        }
        return resultado;
    }
示例#5
0
    /// <summary>
    /// Se obtienen todos los puntos con sus categorias correspondientes.
    /// A diferencia de obtener "ObtenerPuntosPorGrupo", este trae todos los puntos pertenecientes al usuario y la relacion de cada punto con grupos
    /// </summary>
    /// <param name="usuario">Usuario al cual pertenecen los puntos</param>
    /// <returns>Lista de puntos</returns>
    public static List<PuntoGrupo> ObtenerPuntoConGrupos(string usuario)
    {
        List<PuntoGrupo> Resultado = new List<PuntoGrupo>();
        string query = "SELECT punto.puntoID, g.grupoID,g.nombre,g.color, punto.grupo_puntoID, punto.Nombre,punto.x,punto.y,punto.direccion,punto.nota,punto.horario,punto.email,punto.pagina,punto.telefono, punto.calle, punto.colonia, punto.ciudad, punto.UsuarioID FROM ( " +
                            "SELECT p.PuntoID , gp.PuntoID AS gpPuntoID, gp.grupoID,gp.grupo_puntoID, p.UsuarioID,p.Nombre,p.x,p.y,p.Direccion,p.nota,p.Horario,p.Email,p.Pagina,p.Telefono, p.calle, p.colonia, p.ciudad FROM Punto p " +
                            "LEFT JOIN grupo_Punto gp " +
                            "ON p.PuntoID = gp.PuntoID WHERE p.usuarioID = @usuario " +
                       ") punto " +
                       "LEFT JOIN grupo g ON g.grupoID = punto.grupoID " +
                       "ORDER BY punto.Nombre ASC ";
        using (SqlConnection sqlConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["connectionStringBD"].ConnectionString))
        {
            sqlConnection.Open();
            using (SqlCommand sqlCommand = new SqlCommand(query, sqlConnection))
            {
                sqlCommand.Parameters.AddWithValue("@usuario", usuario);
                using (SqlDataReader reader = sqlCommand.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        //primer lectura
                        if (Resultado.Count == 0)
                        {
                            PuntoGrupo punto = new PuntoGrupo();
                            punto.PuntoID = (int)reader["puntoID"];
                            punto.Nombre = reader["Nombre"] == DBNull.Value ? string.Empty : (string)reader["Nombre"];
                            punto.x = reader["x"] == DBNull.Value ? double.NaN : (double)reader["x"];
                            punto.y = reader["y"] == DBNull.Value ? double.NaN : (double)reader["y"];
                            punto.Direccion = reader["direccion"] == DBNull.Value ? string.Empty : (string)reader["direccion"];
                            punto.Nota= reader["Nota"] == DBNull.Value ? string.Empty : (string)reader["Nota"];
                            punto.Horario = reader["horario"] == DBNull.Value ? string.Empty : (string)reader["horario"];
                            punto.Email = reader["email"] == DBNull.Value ? string.Empty : (string)reader["email"];
                            punto.Pagina = reader["pagina"] == DBNull.Value ? string.Empty : (string)reader["pagina"];
                            punto.Telefono = reader["telefono"] == DBNull.Value ? string.Empty : (string)reader["telefono"];
                            punto.Calle = reader["Calle"] == DBNull.Value ? string.Empty : (string)reader["Calle"];
                            punto.Colonia = reader["Colonia"] == DBNull.Value ? string.Empty : (string)reader["Colonia"];
                            punto.Ciudad = reader["Ciudad"] == DBNull.Value ? string.Empty : (string)reader["Ciudad"];

                            punto.Grupos = new List<Grupo>();
                            Grupo grupo = new Grupo();
                            grupo.GrupoID = reader["grupoID"] == DBNull.Value ? -1 : (int)reader["grupoID"];//Id
                            grupo.Nombre = reader["nombre"] == DBNull.Value ? string.Empty : (string)reader["nombre"];//nombre
                            grupo.Color = reader["color"] == DBNull.Value ? 0 : (int)reader["color"];
                            punto.Grupos.Add(grupo);
                            Resultado.Add(punto);
                        }
                        //n lecturas
                        else
                        {
                            PuntoGrupo punto = new PuntoGrupo();
                            punto.PuntoID = (int)reader["puntoID"];
                            if (Resultado.Any(p => p.PuntoID == punto.PuntoID) && reader["grupoID"] != DBNull.Value)
                            {
                                Grupo grupo = new Grupo();
                                grupo.GrupoID = reader["grupoID"] == DBNull.Value ? -1 : (int)reader["grupoID"];//Id
                                grupo.Nombre = reader["nombre"] == DBNull.Value ? string.Empty : (string)reader["nombre"];//nombre
                                grupo.Color = reader["color"] == DBNull.Value ? 0 : (int)reader["color"];
                                Resultado.Where(p => p.PuntoID == punto.PuntoID).First().Grupos.Add(grupo);
                            }
                            else
                            {
                                punto.Nombre = reader["Nombre"] == DBNull.Value ? string.Empty : (string)reader["Nombre"];
                                punto.x = reader["x"] == DBNull.Value ? double.NaN : (double)reader["x"];
                                punto.y = reader["y"] == DBNull.Value ? double.NaN : (double)reader["y"];
                                punto.Direccion = reader["direccion"] == DBNull.Value ? string.Empty : (string)reader["direccion"];
                                punto.Nota = reader["Nota"] == DBNull.Value ? string.Empty : (string)reader["Nota"];
                                punto.Horario = reader["horario"] == DBNull.Value ? string.Empty : (string)reader["horario"];
                                punto.Email = reader["email"] == DBNull.Value ? string.Empty : (string)reader["email"];
                                punto.Pagina = reader["pagina"] == DBNull.Value ? string.Empty : (string)reader["pagina"];
                                punto.Telefono = reader["telefono"] == DBNull.Value ? string.Empty : (string)reader["telefono"];
                                punto.Calle = reader["Calle"] == DBNull.Value ? string.Empty : (string)reader["Calle"];
                                punto.Colonia = reader["Colonia"] == DBNull.Value ? string.Empty : (string)reader["Colonia"];
                                punto.Ciudad = reader["Ciudad"] == DBNull.Value ? string.Empty : (string)reader["Ciudad"];

                                punto.Grupos = new List<Grupo>();
                                Grupo grupo = new Grupo();
                                grupo.GrupoID = reader["grupoID"] == DBNull.Value ? -1 : (int)reader["grupoID"];//Id
                                grupo.Nombre = reader["nombre"] == DBNull.Value ? string.Empty : (string)reader["nombre"];//nombre
                                grupo.Color = reader["color"] == DBNull.Value ? 0 : (int)reader["color"];
                                punto.Grupos.Add(grupo);
                                Resultado.Add(punto);
                            }
                        }
                    }
                }
            }
        }
        return Resultado;
    }
示例#6
0
    /// <summary>
    /// Metodo para Insertar un punto en la base de datos. Se debera crear el punto en la tabla "Punto" y de ahi se deben insertar las relaciones
    /// con grupos (antes llamadas Categorias) en la tabla "grupo_punto"
    /// </summary>
    /// <param name="punto">Informacion detallada del punto</param>
    /// <param name="usuario">ID del usuario al cual pertenecera el punto</param>
    /// <returns></returns>
    public static int CrearPunto(PuntoGrupo punto, string usuario)
    {
        if (punto.Grupos.Count>0)
        {
            string queryInsertPunto = "INSERT INTO Punto" +
                          "(Nombre, x, y, Direccion, Horario, Email, Pagina, Telefono,usuarioID,Nota,calle,colonia,ciudad) " +
                          "VALUES " +
                          "(@nombre,@x,@y,@direccion,@horario,@email,@pagina,@telefono,@usuario,@nota,@calle,@colonia,@ciudad);" +
                          "SELECT CAST(scope_identity() AS int);";
            string queryInsertGrupos = "";
            foreach (Grupo grupo in punto.Grupos)
            {
                queryInsertGrupos += "INSERT INTO grupo_Punto " +
                                         "(GrupoID, PuntoID, UsuarioID) " +
                                         "VALUES " +
                                         "(" + grupo.GrupoID + ",@punto,@usuario);";
            }
            using (SqlConnection sqlConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["connectionStringBD"].ConnectionString))
            {
                sqlConnection.Open();
                using (SqlTransaction sqlTransaction = sqlConnection.BeginTransaction())
                {
                    try
                    {
                        int id = -1;
                        using (SqlCommand sqlCommand = new SqlCommand(queryInsertPunto, sqlConnection))
                        {
                            sqlCommand.Transaction = sqlTransaction;
                            sqlCommand.Parameters.AddWithValue("@nombre", punto.Nombre);
                            sqlCommand.Parameters.AddWithValue("@x", punto.x);
                            sqlCommand.Parameters.AddWithValue("@y", punto.y);
                            sqlCommand.Parameters.AddWithValue("@direccion", punto.Direccion);
                            sqlCommand.Parameters.AddWithValue("@horario", punto.Horario);
                            sqlCommand.Parameters.AddWithValue("@email", punto.Email);
                            sqlCommand.Parameters.AddWithValue("@pagina", punto.Pagina);
                            sqlCommand.Parameters.AddWithValue("@telefono", punto.Telefono);
                            sqlCommand.Parameters.AddWithValue("@usuario", usuario);
                            sqlCommand.Parameters.AddWithValue("@nota", punto.Nota);
                            sqlCommand.Parameters.AddWithValue("@calle", punto.Calle);
                            sqlCommand.Parameters.AddWithValue("@colonia",punto.Colonia);
                            sqlCommand.Parameters.AddWithValue("@ciudad",punto.Ciudad);
                            id = (int)sqlCommand.ExecuteScalar();
                        }
                        if (id != -1)
                        {
                            using (SqlCommand sqlCommand = new SqlCommand(queryInsertGrupos, sqlConnection))
                            {
                                sqlCommand.Transaction = sqlTransaction;
                                sqlCommand.Parameters.AddWithValue("@punto", id);
                                sqlCommand.Parameters.AddWithValue("@usuario", usuario);
                                sqlCommand.ExecuteNonQuery();
                                sqlTransaction.Commit();
                                return id;
                            }
                        }

                    }
                    catch (Exception)
                    {
                        sqlTransaction.Rollback();
                        throw;
                    }
                }
            }
        }
        return -1;
    }