Example #1
0
            public async Task <Unit> Handle(Ejecuta request, CancellationToken cancellationToken)
            {
                //eliminar instructor antes de eliminar el curso
                var instrDB = _context.CursoInstructor.Where(x => x.CursoId == request.Id);

                foreach (var Int in instrDB)
                {
                    _context.CursoInstructor.Remove(Int);
                }

                var comtDB = _context.Comentario.Where(x => x.CursoId == request.Id);

                foreach (var cmt in comtDB)
                {
                    _context.Comentario.Remove(cmt);
                }
                var precioDB = _context.Precio.Where(x => x.CursoId == request.Id).FirstOrDefault();

                if (precioDB != null)
                {
                    _context.Precio.Remove(precioDB);
                }


                var eliminar = await _context.Curso.FindAsync(request.Id);

                if (eliminar == null)
                {
                    //throw new Exception("No se Puede Eliminar el Curso");
                    // excepcion creada en la carpeta middelware
                    throw new ManejadorExcepcion(HttpStatusCode.NotFound, new { curso = "No se encontro el curso" });
                }

                _context.Remove(eliminar);
                var valor = await _context.SaveChangesAsync();

                if (valor > 0)
                {
                    return(Unit.Value);
                }
                throw new Exception("No se Pudieron Guardar los Cambios");
            }