Пример #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);
                    }
                }
            }
        }
Пример #2
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);
            }
        }
Пример #3
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);
        }