public async Task <Unit> Handle(Ejecuta request, CancellationToken cancellationToken) { /* para eliminar un curso primero hay que eliminar sus instructores de CursoInstructor */ var instructoresBD = _context.CursoInstructor.Where(x => x.CursoId == request.Id); foreach (var instructor in instructoresBD) { _context.CursoInstructor.Remove(instructor); } // Obtener comentarios y eliminar los comentarios del curso var comentariosDB = _context.Comentario.Where(x => x.CursoId == request.Id); foreach (var cmt in comentariosDB) { _context.Comentario.Remove(cmt); } // Eliminar precios del curso var precioDB = _context.Precio.Where(x => x.CursoId == request.Id).FirstOrDefault(); if (precioDB != null) { _context.Precio.Remove(precioDB); } var curso = await _context.Curso.FindAsync(request.Id); if (curso == null) { // throw new Exception("No se puede eliminar el curso."); throw new ManejadorExcepcion(HttpStatusCode.NotFound, new { mensaje = "No se encontrĂ³ el curso" }); } _context.Remove(curso); var resultado = await _context.SaveChangesAsync(); if (resultado > 0) { return(Unit.Value); } throw new Exception("No se pudieron guardar los cambios."); }
public async Task <Unit> Handle(Ejecuta request, CancellationToken cancellationToken) { var comentario = await _context.Comentario.FindAsync(request.Id); if (comentario == null) { throw new ManejadorExcepcion(HttpStatusCode.NotFound, new { mensaje = "No se ha encontrado el comentario" }); } _context.Remove(comentario); var resultado = await _context.SaveChangesAsync(); if (resultado > 0) { return(Unit.Value); } throw new Exception("No se ha podido eliminar el comentario"); }
public async Task <Unit> Handle(Ejecuta request, CancellationToken cancellationToken) { var comentarios = this.context.Comentario.Where(x => x.CursoId == request.Id); foreach (var comentario in comentarios) { this.context.Comentario.Remove(comentario); } var precio = this.context.Precio.Where(x => x.CursoId == request.Id).FirstOrDefault(); if (precio != null) { this.context.Remove(precio); } var instructoresDB = this.context.CursoInstructor.Where(x => x.CursoId == request.Id).ToList(); foreach (var instructorEliminar in instructoresDB) { this.context.CursoInstructor.Remove(instructorEliminar); } var curso = await context.Curso.FindAsync(request.Id); if (curso == null) { //throw new Exception("El Curso no existe"); throw new ManejadorExepcion(HttpStatusCode.NotFound, new { mensaje = "No se encontro el curso" }); } context.Remove(curso); var valor = await context.SaveChangesAsync(); if (valor > 0) { return(Unit.Value); } throw new ManejadorExepcion(HttpStatusCode.InternalServerError, new { mensaje = "No se pudo eliminar el curso" }); }