예제 #1
0
        public void Guardar(PublicacionDto publicacionDto)
        {
            if (publicacionDto.Estado == EstadoObjeto.Nuevo)
            {
                PublicacionEntity publicacion = PublicacionEntity.Crear(publicacionDto.IdTipoPublicacion, publicacionDto.Titulo
                                                                        , publicacionDto.Subtitulo, publicacionDto.Resumen, publicacionDto.Resena, publicacionDto.Recurso
                                                                        , publicacionDto.Detalles.Select(p => DetallePublicacionEntity.Crear(p.IdTipoDetallePublicacion, p.Titulo
                                                                                                                                             , p.Resumen, p.Recurso, publicacionDto.Usuario)).ToList()
                                                                        , publicacionDto.Usuario);

                publicacion.ValidarObligatorios();

                _publicacionRepository.Crear(publicacion);
            }
            else if (publicacionDto.Estado == EstadoObjeto.Modificado)
            {
            }
            else if (publicacionDto.Estado == EstadoObjeto.Borrado)
            {
                _publicacionRepository.Eliminar(publicacionDto.Id);
            }
            else
            {
                throw new Exception("El método no es el correcto");
            }
        }
예제 #2
0
    protected void rptPublicaciones_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
        if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
        {
            PublicacionEntity publicacion = (PublicacionEntity)e.Item.DataItem;

            HiddenField lblPublicacionId = (HiddenField)e.Item.FindControl("lblPublicacionId");
            Image       imgUsuarioPost   = (Image)e.Item.FindControl("imgPubUsuarioPost");
            Label       lblNombreUsuario = (Label)e.Item.FindControl("lblPubNombreUsuario");
            Label       lblPubMensaje    = (Label)e.Item.FindControl("lblPubMensaje");
            Image       imgPubImagen     = (Image)e.Item.FindControl("imgPubImagen");
            Label       lblPubFecha      = (Label)e.Item.FindControl("lblPubFecha");
            Label       imgPubRanking    = (Label)e.Item.FindControl("imgPubRanking");

            Repeater rptComentarios = (Repeater)e.Item.FindControl("rptComentarios");

            lblPublicacionId.Value = publicacion.id.ToString();
            lblNombreUsuario.Text  = publicacion.nombreUsuario;
            lblPubMensaje.Text     = publicacion.descripcion;
            if (publicacion.imagen != null)
            {
                imgPubImagen.ImageUrl = "data:image/png;base64," + Convert.ToBase64String(publicacion.imagen, 0, publicacion.imagen.Length);;
            }
            lblPubFecha.Text = publicacion.actualizacion.ToString();

            imgPubRanking.Text = publicacion.calificacion.ToString();


            rptComentarios.DataSource = publicacion.listaComentarios;
            rptComentarios.DataBind();
        }
    }
예제 #3
0
        public PublicacionEntity Buscar(object idEntidad)
        {
            return(Consultar(() =>
            {
                PublicacionEntity publicacion = _sistemasContext.Publicaciones.Find(idEntidad);

                return publicacion;
            }));
        }
예제 #4
0
 public void Eliminar(object idEntidad)
 {
     Eliminar(() =>
     {
         PublicacionEntity publicacion = Buscar(idEntidad);
         publicacion.Borrado();
         _sistemasContext.Publicaciones.Remove(publicacion);
         _sistemasContext.GuardarCambios();
     });
 }
예제 #5
0
        public PublicacionEntity ObtenerXId(long idPublicacion)
        {
            return(Consultar(() =>
            {
                IQueryable <PublicacionEntity> consulta = GenerarConsultaConDetalles();

                PublicacionEntity publicacion = consulta
                                                .Where(p => p.IdPublicacion == idPublicacion && p.IndicadorEstado == EstadoEntidad.Activo).Take(100).FirstOrDefault();

                return publicacion;
            }));
        }
예제 #6
0
        //public UsuarioEntity Autenticar(string email, string password)
        //{
        //    try
        //    {
        //        UsuarioEntity usuario = daUsuario.BuscarUsuario(email, password);

        //        if (usuario == null)
        //            throw new AutenticacionExcepcionBO();

        //        return usuario;
        //    }
        //    catch (ExcepcionDA ex)
        //    {
        //        throw new ExcepcionBO("No se pudo realizar la registración del usuario.", ex);
        //    }
        //}

        public void Registrar(PublicacionEntity publicacion)
        {
            try
            {
                publicacion.ValidarDatos();

                daPublicacion.Insertar(publicacion);
            }
            catch (ExcepcionDA ex)
            {
                throw new ExcepcionBO("No se pudo realizar la registración de la publicación.", ex);
            }
        }
예제 #7
0
    protected void btnPublicar_Click(object sender, EventArgs e)
    {
        if (!string.IsNullOrEmpty(txtPublicar.Text))
        {
            PublicacionEntity publicacion = new PublicacionEntity();
            publicacion.usuarioID     = SessionHelper.UsuarioAutenticado.id;
            publicacion.descripcion   = txtPublicar.Text;
            publicacion.actualizacion = DateTime.Now;

            new PublicacionBO().Registrar(publicacion);

            Response.Redirect(Request.RawUrl);
        }
    }
예제 #8
0
        public PublicacionDto MapearPublicacion(PublicacionEntity publicacion)
        {
            PublicacionDto publicacionDto = new PublicacionDto
            {
                Estado  = EstadoObjeto.SinCambios,
                Fecha   = publicacion.FechaModifico ?? publicacion.FechaRegistro,
                Usuario = publicacion.UsuarioModifico ?? publicacion.UsuarioRegistro,

                Id                = publicacion.IdPublicacion,
                Emision           = publicacion.FechaPublicacion,
                IdTipoPublicacion = publicacion.IdTipoPublicacion,
                Recurso           = publicacion.DescripcionRecurso,
                Resena            = publicacion.DescripcionResena,
                Resumen           = publicacion.DescripcionResumen,
                Subtitulo         = publicacion.DescripcionSubtitulo,
                Titulo            = publicacion.DescripcionTitulo,
                Url               = publicacion.DescripcionUrl,
                TipoPublicacion   = new TipoPublicacionDto
                {
                    Id          = publicacion.TipoPublicacionX.IdTipoPublicacion,
                    Descripcion = publicacion.TipoPublicacionX.DescripcionTipoPublicacion
                },
                Detalles = publicacion.DetallePublicacionS.Select(g => new DetallePublicacionDto
                {
                    Estado  = EstadoObjeto.SinCambios,
                    Fecha   = g.FechaModifico ?? g.FechaRegistro,
                    Usuario = g.UsuarioModifico ?? g.UsuarioRegistro,

                    Id                       = g.IdDetallePublicacion,
                    Titulo                   = g.DescripcionTitulo,
                    Resumen                  = g.DescripcionResumen,
                    Recurso                  = g.DescripcionRecurso,
                    IdPublicacion            = g.IdPublicacion,
                    IdTipoDetallePublicacion = g.IdTipoDetallePublicacion,
                    TipoDetallePublicacion   = new TipoDetallePublicacionDto
                    {
                        Id          = g.TipoDetallePublicacionX.IdTipoDetallePublicacion,
                        Descripcion = g.TipoDetallePublicacionX.DescripcionTipoDetallePublicacion
                    }
                }).ToList()
            };

            return(publicacionDto);
        }
예제 #9
0
        public bool Insertar(PublicacionEntity publicacion)
        {
            try
            {
                using (SqlConnection conexion = ConexionDA.ObtenerConexion())
                {
                    using (SqlCommand comando = new SqlCommand("PublicacionInsert", conexion))
                    {
                        comando.CommandType = CommandType.StoredProcedure;
                        SqlCommandBuilder.DeriveParameters(comando);

                        comando.Parameters["@UsuarioID"].Value = publicacion.usuarioID;
                        if (publicacion.grupoID > 0)
                        {
                            comando.Parameters["@GrupoID"].Value = publicacion.grupoID;
                        }
                        else
                        {
                            comando.Parameters["@GrupoID"].Value = DBNull.Value;
                        }
                        comando.Parameters["@Descripcion"].Value = publicacion.descripcion.Trim();
                        comando.Parameters["@PublicacionActualizacion"].Value = publicacion.actualizacion;

                        //if (publicacion.imagen != null)
                        comando.Parameters["@PublicacionImagen"].Value = publicacion.imagen;
                        //else
                        //    comando.Parameters["@PublicacionImagen"].Value = DBNull.Value;

                        comando.ExecuteNonQuery();
                        publicacion.id = Convert.ToInt32(comando.Parameters["@RETURN_VALUE"].Value);
                    }

                    conexion.Close();
                    return(true);
                }
            }
            catch (Exception ex)
            {
                throw new ExcepcionDA("Se produjo un error al insertar la publicacion.", ex);
            }
        }
예제 #10
0
        public void Crear(PublicacionEntity entidad)
        {
            Guardar(() =>
            {
                PublicacionEntity nuevaPublicacion = _sistemasContext.Publicaciones.Add(entidad);
                _sistemasContext.GuardarCambios();

                string tituloFormateado = nuevaPublicacion.DescripcionTitulo.Replace(' ', '-').ToLower(CultureInfo.CurrentCulture);
                string[] caracteres     = { "\"", "“", "”", "!", "¡", "#", "¿", "?" };
                foreach (var caracter in caracteres)
                {
                    tituloFormateado = tituloFormateado.Replace(caracter, "");
                }

                string url = string.Format("{0}-{1}", tituloFormateado, nuevaPublicacion.IdPublicacion);
                nuevaPublicacion.DescripcionUrl = url;
                nuevaPublicacion.EstadoObjeto   = EstadoObjeto.Modificado;

                _sistemasContext.GuardarCambios();
            });
        }
예제 #11
0
        public PublicacionDto BuscarXId(long idPublicacion)
        {
            PublicacionEntity publicacion = _publicacionRepository.ObtenerXId(idPublicacion);

            return(MapearPublicacion(publicacion));
        }
예제 #12
0
        public static List <PublicacionEntity> BuscarPublicaciones(object filtro)
        {
            try
            {
                string query = @"
SELECT distinct 

gu.GrupoID,
pub.*, com.*,
pub.PublicacionID, pub.Descripcion, pub.UsuarioID, 
com.ComentarioID, com.ComentarioTexto ,       
uc.UsuarioNombre + ' ' + uc.UsuarioApellido usuariocomentario, 
up.UsuarioNombre + ' ' + up.UsuarioApellido usuariopublicacion
--yo.usuarioid   
FROM Publicacion pub     
left join Comentario com on com.PublicacionID = pub.PublicacionID 
left join usuario up on pub.UsuarioID = up.UsuarioID    
left join usuario uc on com.usuarioid = uc.usuarioid
left join amigo am on pub.UsuarioID = am.UsuarioID or pub.UsuarioID = am.UsuarioIDAmigo
left join usuario yo on yo.UsuarioID = am.UsuarioID or yo.UsuarioID = am.UsuarioIDAmigo and pub.UsuarioID <> yo.UsuarioID
left join GrupoUsuario gu on (pub.GrupoID = gu.grupoiD and gu.GrupoID = @grupo_id) 
 
WHERE (yo.UsuarioID = @usuario_id or @usuario_id is null) and (gu.grupoiD = @grupo_id or @grupo_id is null)
ORDER BY pub.PublicacionActualizacion DESC , Com.ComentarioFechaActualizacion ASC  ;  

";


                List <PublicacionEntity> listaPublicaciones = new List <PublicacionEntity>();
                using (SqlConnection conexion = ConexionDA.ObtenerConexion())
                {
                    using (SqlCommand comando = new SqlCommand(query, conexion))
                    {
                        if (filtro.GetType().Name == "GrupoEntity")
                        {
                            comando.Parameters.AddWithValue("@Usuario_ID", DBNull.Value);
                            comando.Parameters.AddWithValue("@Grupo_ID", ((GrupoEntity)filtro).id.ToString());
                        }
                        if (filtro.GetType().Name == "UsuarioEntity")
                        {
                            comando.Parameters.AddWithValue("@Usuario_ID", ((UsuarioEntity)filtro).id.ToString());
                            comando.Parameters.AddWithValue("@Grupo_ID", DBNull.Value);
                        }
                        using (SqlDataReader cursor = comando.ExecuteReader())
                        {
                            int codant = 0;
                            PublicacionEntity publicacion = new PublicacionEntity();
                            publicacion.listaComentarios = new List <ComentarioEntity>();
                            int sumaCalificacion = 0;
                            int cantidad         = 0;
                            while (cursor != null && cursor.Read())
                            {
                                int pubID = (int)cursor["PublicacionID"];
                                if (codant != pubID)
                                {
                                    if (codant != 0)
                                    {
                                        if (cantidad != 0)
                                        {
                                            publicacion.calificacion = sumaCalificacion / cantidad;
                                        }
                                        listaPublicaciones.Add(publicacion);
                                        sumaCalificacion = 0;
                                        cantidad         = 0;
                                        publicacion      = new PublicacionEntity();
                                    }
                                    publicacion.id = pubID;
                                    if (cursor["GrupoID"] != DBNull.Value)
                                    {
                                        publicacion.grupoID = (int)cursor["GrupoID"];
                                    }
                                    publicacion.usuarioID     = (int)cursor["UsuarioID"];
                                    publicacion.descripcion   = (string)cursor["Descripcion"];
                                    publicacion.actualizacion = (DateTime)cursor["PublicacionActualizacion"];
                                    publicacion.calificacion  = (int)cursor["PublicacionCalificacion"];
                                    publicacion.nombreUsuario = (string)cursor["usuariopublicacion"];
                                    if (cursor["PublicacionImagen"] != DBNull.Value)
                                    {
                                        publicacion.imagen = (byte[])cursor["PublicacionImagen"];
                                    }

                                    codant = pubID;
                                }

                                if (cursor["ComentarioID"] != DBNull.Value)
                                {
                                    ComentarioEntity comentario = new ComentarioEntity();
                                    comentario.id                 = (int)cursor["ComentarioID"];
                                    comentario.usuarioID          = (int)cursor["UsuarioID"];
                                    comentario.texto              = cursor["ComentarioTexto"].ToString();
                                    comentario.calificacion       = (int)cursor["ComentarioCalificacion"];
                                    comentario.fechaActualizacion = (DateTime)cursor["ComentarioFechaActualizacion"];
                                    comentario.nombreUsuario      = (string)cursor["usuariocomentario"];
                                    sumaCalificacion             += comentario.calificacion;
                                    cantidad++;
                                    publicacion.listaComentarios.Add(comentario);
                                }
                            }
                            if (cantidad != 0)
                            {
                                publicacion.calificacion = sumaCalificacion / cantidad;
                            }
                            listaPublicaciones.Add(publicacion);
                            sumaCalificacion = 0;
                            cantidad         = 0;
                            cursor.Close();
                        }
                    }

                    conexion.Close();
                }

                return(listaPublicaciones);
            }
            catch (Exception ex)
            {
                throw new ExcepcionDA("Se produjo un error al buscar la lista de publicaciones.", ex);
            }
        }
예제 #13
0
        private PublicacionEntity CrearPublicacion(SqlDataReader cursor)
        {
            PublicacionEntity publicacion = null;

            return(publicacion);
        }