/// <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); } } } }
/// <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); }
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); }
/// <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); } }
/// <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); }
public int GetNumberOfComentariosByProductoId(long productoId) { return(ComentarioDao.GetNumberByProductoId(productoId)); }
public List <Comentario> FindComentariosByProductoId(long productoId, int startIndex, int count) { return(ComentarioDao.FindByProductoId(productoId, startIndex, count)); }
/// <exception cref="InstanceNotFoundException">If comentarioId doesn't match an existing Comentario</exception> public void DeleteComentario(long comentarioId) { ComentarioDao.Remove(comentarioId); }