public async Task <IActionResult> Create([Bind("CodCategoria,Descripcion,Imagen,Fecha")] Categoria categoria) { if (ModelState.IsValid) { _context.Add(categoria); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View(categoria)); }
public async Task <IActionResult> Create([Bind("CodCurso,Descripcion,CodCategoria,Destacado,Fecha")] Curso curso, IFormFile image) { if (ModelState.IsValid) { if (image != null) { using (var memoryStream = new MemoryStream()) { image.OpenReadStream().CopyTo(memoryStream); curso.ImageMimeType = image.ContentType; curso.Imagen = new byte[memoryStream.Length]; curso.Imagen = memoryStream.ToArray(); } } _context.Add(curso); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } ViewData["CodCategoria"] = new SelectList(_context.Categorias, "CodCategoria", "Descripcion", curso.CodCategoria); return(View(curso)); }
public async Task <Unit> Handle(Ejecuta request, CancellationToken cancellationToken) { Guid _cursoId = Guid.NewGuid(); var crear = new Curso { CursoId = _cursoId, Titulo = request.Titulo, Descripcion = request.Descripcion, FechaPublicacion = request.FechaPublicacion }; _context.Curso.Add(crear); if (request.ListaInstructor != null) { foreach (var id in request.ListaInstructor) { var cursoInstructor = new CursoInstructor { CursoId = _cursoId, InstructorId = id }; _context.CursoInstructor.Add(cursoInstructor); } } //logica para insertar un prcio al curso creado var precioentidad = new Precio { CursoId = _cursoId, PrecioActual = request.Precio, Promocion = request.Promocion, PrecioId = Guid.NewGuid() }; _context.Precio.Add(precioentidad); var valor = await _context.SaveChangesAsync(); if (valor > 0) { return(Unit.Value); } throw new Exception("No se Inserto el Curso"); }
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"); }
public async Task <Unit> Handle(Ejecuta request, CancellationToken cancellationToken) { var editar = await _context.Curso.FindAsync(request.CursoId); if (editar == null) { //throw new Exception("El Curso no Existe"); throw new ManejadorExcepcion(HttpStatusCode.NotFound, new { curso = "No se encontro el curso" }); } editar.Titulo = request.Titulo ?? editar.Titulo; editar.Descripcion = request.Descripcion ?? editar.Titulo; editar.FechaPublicacion = request.FechaPublicacion ?? editar.FechaPublicacion; //actualizar el precio del curso var precioentidad = _context.Precio.Where(x => x.CursoId == editar.CursoId).FirstOrDefault(); if (precioentidad != null) { precioentidad.Promocion = request.Promocion ?? precioentidad.Promocion; precioentidad.PrecioActual = request.Precio ?? precioentidad.PrecioActual; } else { precioentidad = new Precio { PrecioId = Guid.NewGuid(), PrecioActual = request.Precio ?? 0, Promocion = request.Promocion ?? 0, CursoId = editar.CursoId }; await _context.Precio.AddAsync(precioentidad); } ///fin if (request.ListaInstructor != null) { if (request.ListaInstructor.Count > 0) { //Eliminar los instructores actuales de la base de var instructorDB = _context.CursoInstructor.Where(x => x.CursoId == request.CursoId); foreach (var instructoreliminar in instructorDB) { _context.CursoInstructor.Remove(instructoreliminar); } //fin del procedimeiento para eliminar inst //Agregar instructores que provienen del cliente foreach (var id in request.ListaInstructor) { var nuevoinstructor = new CursoInstructor { CursoId = request.CursoId, InstructorId = id, }; _context.CursoInstructor.Add(nuevoinstructor); //fin } } } var valor = await _context.SaveChangesAsync(); if (valor > 0) { return(Unit.Value); } throw new Exception("No se Edito el Curso"); }