Exemple #1
0
        /// <exception cref="InstanceNotFoundException">If comentarioId doesn't match an existing Comentario</exception>
        public void ModifyComentarioAndEtiqueta(long comentarioId, string texto, List <Etiqueta> etiquetasFinales)
        {
            Comentario comentario = ComentarioDao.Find(comentarioId);

            comentario.texto = texto;
            ComentarioDao.Update(comentario);
            if (etiquetasFinales != null)
            {
                foreach (Etiqueta e in etiquetasFinales)
                {
                    if (!comentario.Etiquetas.Contains(e))
                    {
                        Etiquetar(comentarioId, e.etiquetaId);
                    }
                }
                EntityCollection <Etiqueta> etiquetasComentario = new EntityCollection <Etiqueta>();     // Al eliminar etiquetas de los comentarios la lista referenciada de etiquetas fallaba.
                foreach (Etiqueta e in etiquetasComentario.Union(comentario.Etiquetas).ToList())
                {
                    if (!etiquetasFinales.Contains(e))
                    {
                        Desetiquetar(comentarioId, e.etiquetaId);
                    }
                }
            }
        }
Exemple #2
0
        /// <exception cref="InstanceNotFoundException">If productoId doesn't exist</exception>
        public ComentarioEtiquetaBlock AddComentarioEtiqueta(long usrId, long productoId, string textoComentario, List <string> tags)
        {
            if (productoId == -1)
            {
                throw new InstanceNotFoundException(productoId, "producto");
            }
            Comentario comentario = Comentario.CreateComentario(-1, textoComentario, DateTime.Now, usrId, productoId);

            comentario.UserProfile = UserProfileDao.Find(usrId);
            ComentarioDao.Create(comentario);
            List <Etiqueta> etiquetas = new List <Etiqueta>();

            if (tags != null)
            {
                int num = tags.Count();

                for (int i = 0; i < num; i++)
                {
                    etiquetas.Add(AddEtiqueta(tags[i]));
                    Etiquetar(comentario.comentarioId, etiquetas[i].etiquetaId);
                }
            }
            else
            {
                etiquetas = null;
            }
            ComentarioEtiquetaBlock comEtiBlock = new ComentarioEtiquetaBlock(comentario, etiquetas);

            return(comEtiBlock);
        }
Exemple #3
0
        private void Desetiquetar(Comentario comentario, Etiqueta etiqueta)
        {
            if (etiqueta.ocurrencias >= 0)
            {
                etiqueta.ocurrencias = etiqueta.ocurrencias - 1;
            }

            comentario.Etiquetas.Remove(etiqueta);
            etiqueta.Comentarios.Remove(comentario);
            EtiquetaDao.Update(etiqueta);
            ComentarioDao.Update(comentario);
        }
Exemple #4
0
        /// <exception cref="InstanceNotFoundException">If comentarioId doesn't match an existing Comentario or if etiquetaId doesn't match an existing Etiqueta</exception>
        private void Etiquetar(long comentarioId, long etiquetaId)
        {
            Comentario comentario = ComentarioDao.Find(comentarioId);
            Etiqueta   etiqueta   = EtiquetaDao.Find(etiquetaId);

            if (!comentario.Etiquetas.Contains(etiqueta))
            {
                etiqueta.ocurrencias = etiqueta.ocurrencias + 1;
                comentario.Etiquetas.Add(etiqueta);
                etiqueta.Comentarios.Add(comentario);
                EtiquetaDao.Update(etiqueta);
                ComentarioDao.Update(comentario);
            }
        }
Exemple #5
0
        /// <exception cref="InstanceNotFoundException">If comentarioId doesn't match an existing Comentario or if etiquetaId doesn't match an existing Etiqueta</exception>
        private void Desetiquetar(long comentarioId, long etiquetaId)
        {
            Comentario comentario = ComentarioDao.Find(comentarioId);
            Etiqueta   etiqueta   = EtiquetaDao.Find(etiquetaId);


            if (comentario.Etiquetas.Contains(etiqueta))
            {
                comentario.Etiquetas.Remove(etiqueta);
            }
            if (etiqueta.ocurrencias >= 0)
            {
                etiqueta.ocurrencias = etiqueta.ocurrencias - 1;
            }
            etiqueta.Comentarios.Remove(comentario);
            EtiquetaDao.Update(etiqueta);
            ComentarioDao.Update(comentario);
        }
Exemple #6
0
 public int GetNumberOfComentariosByProductoId(long productoId)
 {
     return(ComentarioDao.GetNumberByProductoId(productoId));
 }
Exemple #7
0
 public List <Comentario> FindComentariosByProductoId(long productoId, int startIndex, int count)
 {
     return(ComentarioDao.FindByProductoId(productoId, startIndex, count));
 }
Exemple #8
0
 /// <exception cref="InstanceNotFoundException">If comentarioId doesn't match an existing Comentario</exception>
 public void DeleteComentario(long comentarioId)
 {
     ComentarioDao.Remove(comentarioId);
 }