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