public async Task <Unit> Handle(Ejecuta request, CancellationToken cancellationToken) { Guid _cursoId = Guid.NewGuid(); var curso = new Curso { CursoId = _cursoId, Titulo = request.Titulo, Descripcion = request.Descripcion, FechaPublicacion = request.FechaPublicacion }; _context.Curso.Add(curso); if (request.ListaInstructor != null) { foreach (var id in request.ListaInstructor) { var cursoInstructor = new CursoInstructor { CursoId = _cursoId, InstructorId = id }; _context.CursoInstructor.Add(cursoInstructor); } } var valor = await _context.SaveChangesAsync(); //Devuelve el número de operaciones que se realian sobre la base de datos if (valor > 0) { return(Unit.Value); } throw new Exception("No se pudo insertar el curso"); }
public async Task <IActionResult> Edit(int id, [Bind("CursoId,InstructorId")] CursoInstructor cursoInstructor) { if (id != cursoInstructor.CursoId) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(cursoInstructor); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!CursoInstructorExists(cursoInstructor.CursoId)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } ViewData["CursoId"] = new SelectList(_context.Curso, "Id", "Descripcion", cursoInstructor.CursoId); ViewData["InstructorId"] = new SelectList(_context.Instructor, "Id", "Cargo", cursoInstructor.InstructorId); return(View(cursoInstructor)); }
public async Task <Unit> Handle(Ejecuta request, CancellationToken cancellationToken) { Guid _cursoId = Guid.NewGuid(); var curso = new Curso { CursoId = _cursoId, Titulo = request.Titulo, Descripcion = request.Descripcion, FechaPublicacion = request.FechaPublicacion }; if (request.ListaInstructor != null) { foreach (var item in request.ListaInstructor) { var cursoInstructor = new CursoInstructor { CursoId = curso.CursoId, InstructorId = item }; context.CursoInstructor.Add(cursoInstructor); } } context.Curso.Add(curso); var valor = await context.SaveChangesAsync(); if (valor > 0) { return(Unit.Value); } throw new Exception("No se pudo insertar el curso."); }
public async Task <Unit> Handle(Ejecuta request, CancellationToken cancellationToken) { Guid _cursoId = Guid.NewGuid(); var curso = new Cursos { CursosId = _cursoId, Titulo = request.Titulo, Descripcion = request.Descripcion, FechaPublicacion = request.FechaPublicacion }; _context.Cursos.Add(curso); ////Validacion para tablas intermedias if (request.ListaInstructor != null) { foreach (var id in request.ListaInstructor) { var cursoInstructor = new CursoInstructor { CursosId = _cursoId, InstructorId = id }; _context.CursoInstructor.Add(cursoInstructor); } } var valor = await _context.SaveChangesAsync(); if (valor > 0) { return(Unit.Value); } throw new Exception("No se pudo insertar el curso"); }
public async Task <Unit> Handle(Ejecuta request, CancellationToken cancellationToken) { var curso = _context.Curso.Find(request.CursoId); if (curso == null) { //throw new Exception("No se pudo encontrar el curso"); throw new ManejadorExcepcion(HttpStatusCode.NotFound, new{ curso = "No se encontró el curso" }); } curso.titulo = request.titulo ?? curso.titulo; curso.descripcion = request.descripcion ?? curso.descripcion; curso.FechaPublicacion = request.fechaPublicacion ?? curso.FechaPublicacion; //Para actualizar el precio del curso var precioEntidad = _context.Precio.Where(x => x.PrecioId == curso.PrecioId).FirstOrDefault(); if (precioEntidad != null) { precioEntidad.precioActual = request.precioActual ?? precioEntidad.precioActual; precioEntidad.promocion = request.precioPromocion ?? precioEntidad.promocion; } if (request.ListaInstructor != null) { if (request.ListaInstructor.Count > 0) { var instructoresBD = _context.CursoInstructor.Where(x => x.CursoId == request.CursoId).ToList(); //Para eliminar los instructores de este curso foreach (var id in instructoresBD) { _context.CursoInstructor.Remove(id); } //Para agregar los instructores que esta ingresando el usuario foreach (var id in request.ListaInstructor) { var nuevoInstructor = new CursoInstructor { CursoId = request.CursoId, InstructorId = id }; _context.CursoInstructor.Add(nuevoInstructor); } } } var resultado = await _context.SaveChangesAsync(); if (resultado > 0) { return(Unit.Value); } throw new Exception("No se guardaron los cambios en el curso"); }
public async Task <Unit> Handle(Ejecuta request, CancellationToken cancellationToken) { //Se agrega esta logica para ver si recibimos un guid del frontend, validar para no crear una nuevo Guid _cursoId = Guid.NewGuid(); if (request.CursoId != null) { _cursoId = request.CursoId ?? Guid.NewGuid(); } //Inserta datos a la tabla Curso var curso = new Curso { CursoId = _cursoId, Titulo = request.Titulo, Descripcion = request.Descripcion, FechaPublicacion = request.FechaPublicacion, FechaCreacion = DateTime.UtcNow //Que significa utc? Coodinated Universal Time (UTC) es una nomenclatura de tiempo stander }; _context.Add(curso); //Inserta datos a la tabla CursoInstructor if (request.ListaInstructor != null) { foreach (var id in request.ListaInstructor) { var cursoIsntructor = new CursoInstructor { CursoId = _cursoId, InstructorId = id }; _context.CursoInstructor.Add(cursoIsntructor); } } //Insertar datos a la tabla Precio var precioEntidad = new Precio() { CursoId = _cursoId, PrecioActual = request.Precio, PrecioPromocion = request.PrecioPromocion, PrecioId = Guid.NewGuid() }; _context.Precio.Add(precioEntidad); var valor = await _context.SaveChangesAsync();//Devuelte el numero de operaciones que se esta realizando sobre la data en la db //Derrenpete estas insertando solo un curso y ningun instrcutor entonces el valor es 1 //pero si se inserta un curso y ademas 3 instructor seria 4 if (valor > 0) { return(Unit.Value); //Es mandarle un flak una alerta ; } throw new Exception("No se Pudo Insertar el Curso"); }
public async Task <Unit> Handle(Ejecuta request, CancellationToken cancellationToken) { Guid _cursoId = Guid.NewGuid(); // crear el nuevo curso var curso = new Curso { CursoId = _cursoId, Titulo = request.Titulo, Descripcion = request.Descripcion, FechaPublicacion = request.FechaPublicacion, FechaCreacion = DateTime.UtcNow }; // agregar el curso a la DB this._context.Add(curso); // agregar los CursoInstructor relacionados a cada modelo Curso if (request.ListaInstructor != null) { foreach (var id in request.ListaInstructor) { var cursoInstructor = new CursoInstructor { CursoId = _cursoId, InstructorId = id }; this._context.CursoInstructor.Add(cursoInstructor); } } // generar un nuevo precio para el curso recien creado var precioEntidad = new Precio { CursoId = _cursoId, PrecioActual = request.Precio, Promocion = request.Promocion, PrecioId = Guid.NewGuid() }; // agregar el precio a la DB this._context.Precio.Add(precioEntidad); // operation devuelve a lista de operaciones realizadas por la DB, un numero por cada operacion var operation = await this._context.SaveChangesAsync(); // se verifica si la operacion de guardado fue exitosa if (operation > 0) { return(Unit.Value); } throw new Exception("No se pudo insertar el nuevo Curso"); }
/// <summary> /// /// </summary> /// <param name="request"></param> /// <param name="cancellationToken"></param> /// <returns></returns> public async Task <Unit> Handle(Ejecuta request, CancellationToken cancellationToken) { Guid _cursoId = Guid.NewGuid(); var curso = new Curso() { CursoId = _cursoId, Titulo = request.Titulo, Descripcion = request.Descripcion, FechaPublicacion = request.FechaPublicacion, FechaCreacion = DateTime.UtcNow }; _cursosContext.Curso.Add(curso); //Instructores if (request.ListaInstructor != null) { CursoInstructor cursoInstructor = null; foreach (var id in request.ListaInstructor) { cursoInstructor = new CursoInstructor { CursoId = _cursoId, InstructorId = id }; _cursosContext.CursoInstructor.Add(cursoInstructor); } } //Precio var precioEntidad = new Precio { CursoId = _cursoId, PrecioActual = request.Precio, Promocion = request.Promocion, PrecioId = Guid.NewGuid() }; _cursosContext.Precio.Add(precioEntidad); var valor = await _cursosContext.SaveChangesAsync(); if (valor > 0) { return(Unit.Value); } throw new Exception("No se puede insertar el curso"); }
public async Task <Unit> Handle(Ejecuta request, CancellationToken cancellationToken) { Guid cursoId = Guid.NewGuid(); if (request.CursoId != null) { cursoId = request.CursoId ?? Guid.NewGuid(); } var curso = new Curso { CursoId = cursoId, Titulo = request.Titulo, Descripcion = request.Descripcion, FechaPublicacion = request.FechaPublicacion, FechaCreacion = DateTime.UtcNow }; context.Curso.Add(curso); if (request.ListaInstructor != null) { foreach (var id in request.ListaInstructor) { var cursoInstructor = new CursoInstructor { CursoId = curso.CursoId, InstructorId = id }; context.CursoInstructor.Add(cursoInstructor); } } /* Agregar logica para insertar un precio del curso*/ Precio precio = new Precio { CursoId = curso.CursoId, PrecioActual = request.Precio, Promocion = request.PrecioPromocion, PrecioId = Guid.NewGuid() }; context.Precio.Add(precio); var valor = await context.SaveChangesAsync(); if (valor > 0) { return(Unit.Value); } throw new Exception("No se pudo insertar el curso"); }
public async Task <Unit> Handle(Ejecuta request, CancellationToken cancellationToken) { Guid _cursoId = Guid.NewGuid(); if (request.CursoId != null) { _cursoId = request.CursoId ?? Guid.NewGuid(); } var curso = new Curso { CursoId = _cursoId, Titulo = request.Titulo, Descripcion = request.Descripcion, FechaPublicacion = request.FechaPublicacion, FechaCreacion = DateTime.UtcNow }; _context.Curso.Add(curso); // Validamos si hay instructores, en caso de haber, inserta if (request.ListInstructor != null) { foreach (var id in request.ListInstructor) { var cursoInstructor = new CursoInstructor { CursoId = _cursoId, InstructorId = id }; _context.CursoInstructor.Add(cursoInstructor); } } // Agregamos Precio 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 pudo insertar el valor"); }
public async Task <Unit> Handle(Ejecuta request, CancellationToken cancellationToken) { Guid cursoId = request.CursoId ?? Guid.NewGuid(); var curso = new Curso { CursoId = cursoId, Titulo = request.Titulo, Descripcion = request.Descripcion, FechaPublicacion = request.FechaPublicacion, FechaCreacion = DateTime.UtcNow }; _context.Curso.Add(curso); if (request.ListaInstructor != null) { foreach (var id in request.ListaInstructor) { var cursoInstructor = new CursoInstructor { CursoId = cursoId, InstructorId = id }; this._context.CursoInstructor.Add(cursoInstructor); } } var precioEntidad = new Precio { CursoId = cursoId, PrecioActual = request.Precio, Promocion = request.Promocion, PrecioId = Guid.NewGuid() }; this._context.Precio.Add(precioEntidad); // Devuelve la cantidad de transacciones que se realizaron. // Si se devuelve 0, ocurrio algun error. var valor = await _context.SaveChangesAsync(); if (valor > 0) { return(Unit.Value); } throw new Exception("No se pudo insertar el curso."); }
public async Task <IActionResult> Create([Bind("CursoId,InstructorId")] CursoInstructor cursoInstructor) { if (ModelState.IsValid) { _context.Add(cursoInstructor); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } ViewData["CursoId"] = new SelectList(_context.Curso, "Id", "Descripcion", cursoInstructor.CursoId); ViewData["InstructorId"] = new SelectList(_context.Instructor, "Id", "Cargo", cursoInstructor.InstructorId); return(View(cursoInstructor)); }
public async Task <Unit> Handle(Ejecuta request, CancellationToken cancellationToken) { // se agrega guid para obtener la clave que se insertará posterior a CursoInstructor Guid _cursoId = Guid.NewGuid(); var curso = new Curso { CursoId = _cursoId, Titulo = request.Titulo, Descripcion = request.Descripcion, FechaPublicacion = request.FechaPublicacion, FechaCreacion = DateTime.UtcNow }; context.Curso.Add(curso); // Llamar a ListaInstructor e insertar los instructores relacionados con el curso if (request.ListaInstructor != null) { foreach (var id in request.ListaInstructor) { var cursoInstructor = new CursoInstructor { CursoId = _cursoId, InstructorId = id }; context.CursoInstructor.Add(cursoInstructor); } } // inserción de precio var precioEntidad = new Precio { CursoId = _cursoId, PrecioActual = request.Precio, Promocion = request.Promocion, PrecioId = Guid.NewGuid() }; context.Precio.Add(precioEntidad); // valor = 0, error. valor = 1, se realizó una transacción, valor = 2, dos transacciones var valor = await context.SaveChangesAsync(); if (valor > 0) { return(Unit.Value); } throw new Exception("No se pudo insertar el curso"); }
public async Task <Unit> Handle(Ejecuta request, CancellationToken cancellationToken) { Guid _cursoId = Guid.NewGuid(); if (request.CursoId != null) { _cursoId = request.CursoId ?? Guid.NewGuid(); } var curso = new Curso { CursoId = _cursoId, Titulo = request.Titulo, Descripcion = request.Descripcion, FechaPublicacion = request.FechaPublicacion, FechaCreacion = DateTime.UtcNow }; _context.Curso.Add(curso); //lamar a la lista instructores if (request.ListaInstructor != null) { foreach (var id in request.ListaInstructor) { var cursoInstructor = new CursoInstructor { CursoId = _cursoId, InstructorId = id }; _context.CursoInstructor.Add(cursoInstructor); } } //agregar logica del precio del curso var precioEntidad = new Precio { CursoId = _cursoId, PrecioActual = request.Precio, Promocion = request.Promocion, PrecioId = Guid.NewGuid() }; _context.Precio.Add(precioEntidad); var valor = await _context.SaveChangesAsync();//Devolver un estado de la transaccion 0 = no se hizo transacciones if (valor > 0) { return(Unit.Value); } throw new Exception("No se pudo insertar el curso"); }
public async Task <Unit> Handle(Ejecuta request, CancellationToken cancellationToken) { var curso = await _context.Curso.FindAsync(request.CursoId); if (curso == null) { //throw new Exception("No se puede eliminar el curso"); throw new ManejadorException(HttpStatusCode.NotFound, new { mensaje = "No se encontró el curso" }); } curso.Titulo = request.Titulo ?? request.Titulo; curso.Descripcion = request.Descripcion ?? request.Descripcion; curso.FechaPublicacion = request.FechaPublicacion ?? request.FechaPublicacion; if (request.ListaInstructor != null) { } { if (request.ListaInstructor.Count > 0) { /*Eliminar instructores actuales en la base de datos*/ var instructoresDB = _context.CursoInstructor.Where(x => x.CursoId == request.CursoId).ToList(); foreach (var instructorEliminar in instructoresDB) { _context.CursoInstructor.Remove(instructorEliminar); } //Fin procedimiento /*Procedimiento para agregar instructores provinientes del cliente*/ foreach (var ids in request.ListaInstructor) { var nuevoInstructor = new CursoInstructor { CursoId = request.CursoId, InstructorId = ids }; _context.CursoInstructor.Add(nuevoInstructor); } //Fin del procedimiento } } var resultado = await _context.SaveChangesAsync(); if (resultado > 0) { return(Unit.Value); } throw new Exception("No se guardaron los cambios en el curso"); }
public async Task <Unit> Handle(Ejecutar request, CancellationToken cancellationToken) { Guid _cursoId = new Guid(); var newCurso = new Curso() { CursoId = _cursoId, Titulo = request.Titulo, Descripcion = request.Descripcion, FechaPublicacion = request.FechaPublicacion, FechaDeCreacion = DateTime.UtcNow }; Context.curso.Add(newCurso); if (request.ListaInstructor != null) { foreach (var id in request.ListaInstructor) { var cursoInstructor = new CursoInstructor { CursoId = newCurso.CursoId, InstructorId = id }; Context.cursoInstructor.Add(cursoInstructor); } } /*Logica para agregar el precio*/ var precioEntidad = new Precio { CursoId = newCurso.CursoId, PrecioActual = request.Precio, Promocion = request.Promocion, PrecioId = Guid.NewGuid(), }; Context.precio.Add(precioEntidad); var result = await Context.SaveChangesAsync(); if (result > 0) { return(Unit.Value); } throw new Exception("No se pudo insertar el curso"); }
//CancellationToken -> cuando el cliente cancela la transacción con el server. public async Task <Unit> Handle(Ejecuta request, CancellationToken cancellationToken) { Guid _cursoId = Guid.NewGuid(); var curso = new Curso { CursoId = _cursoId, Titulo = request.Titulo, Descripcion = request.Descripcion, FechaPublicacion = request.FechaPublicacion }; _context.Cursos.Add(curso); //Instructores del curso if (request.ListaInstructor != null) { foreach (var id in request.ListaInstructor) { var cursoInstructor = new CursoInstructor { CursoId = _cursoId, InstructorId = id }; _context.CursoInstructor.Add(cursoInstructor); } } //Precio del curso var precioEntidad = new Precio { CursoId = _cursoId, PrecioActual = request.Precio, Promocion = request.Promocion, PrecioId = Guid.NewGuid() }; _context.Precios.Add(precioEntidad); //Devuelve un estado de la transacción 0- error al insertar, 1 o mayor a 1 -> transacción OK, numero de filas afectadas var valor = await _context.SaveChangesAsync(); if (valor > 0) { return(Unit.Value); } throw new Exception("No se pudo insertar el curso"); }
public async Task <Unit> Handle(Ejecuta request, CancellationToken cancellationToken) { Guid cursoId = Guid.NewGuid(); var curso = new Curso { CursoId = cursoId, Titulo = request.Titulo, Descripcion = request.Descripcion, FechaPublicacion = request.FechaPublicacion, FechaCreacion = DateTime.UtcNow }; context.Curso.Add(curso); if (request.ListaInstructor != null) { foreach (var id in request.ListaInstructor) { var cursoInstructor = new CursoInstructor { CursoId = cursoId, InstructorId = id }; this.context.CursoInstructor.Add(cursoInstructor); } } var precio = new Precio { CursoId = cursoId, PrecioId = Guid.NewGuid(), PrecioActual = request.Precio.PrecioActual, Promocion = request.Precio.Promocion }; this.context.Precio.Add(precio); var valor = await context.SaveChangesAsync(); if (valor > 0) { return(Unit.Value); } throw new ManejadorExepcion(HttpStatusCode.InternalServerError, new { mensaje = "No se pudo Agregar el Curso" }); }
public async Task <Unit> Handle(Ejecuta request, CancellationToken cancellationToken) { Guid _cursoId = Guid.NewGuid(); var curso = new Curso { CursoId = _cursoId, Titulo = request.Titulo, Descripcion = request.Descripcion, FechaPublicacion = request.FechaPublicacion, FechaCreacion = DateTime.UtcNow }; _context.Curso.Add(curso); // Graba los instructores del curso if (request.ListaInstructor != null) { foreach (var id in request.ListaInstructor) { var cursoInstructor = new CursoInstructor { CursoId = _cursoId, InstructorId = id }; _context.CursoInstructor.Add(cursoInstructor); } } // Insertar precio del curso nuevo var precioEntidad = new Precio { CursoId = _cursoId, PrecioActual = request.Precio, Promocion = request.Promocion, PrecioId = Guid.NewGuid() }; _context.Precio.Add(precioEntidad); var valor = await _context.SaveChangesAsync(); // valor = 0 es que no hubo transacción if (valor > 0) { return(Unit.Value); // y se termina la transacción } // Si se produce error, o sea, valor = 0 throw new Exception("No se pudo insertar el curso."); }
public async Task <Unit> Handle(Ejecuta request, CancellationToken cancellationToken) { Guid _cursoId = Guid.NewGuid(); var curso = new Curso { CursoId = _cursoId, Titulo = request.Titulo, Descripcion = request.Descripcion, FechaPublicacion = request.FechaPublicacion, FechaCreacion = DateTime.UtcNow }; _contextSeed.Curso.Add(curso); if (request.ListaInstructor != null) { foreach (var id in request.ListaInstructor) { var cursoInstructor = new CursoInstructor { CursoId = _cursoId, InstructorId = id }; _contextSeed.CursoInstructor.Add(cursoInstructor); } } //agregar logica para insertar un precio del curso. var precioEntidad = new Precio { CursoId = _cursoId, PrecioActual = request.Precio, PrecioPromocion = request.Promocion, PrecioId = Guid.NewGuid() }; _contextSeed.Precio.Add(precioEntidad); //guardando en la BD (savechangesasync) var valor = await _contextSeed.SaveChangesAsync(); if (valor > 0) { return(Unit.Value); } throw new Exception("No se puedo insertar el 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) { var curso = await context.Curso.FindAsync(request.CursoId); if (curso == null) { throw new ManejadorException(HttpStatusCode.NotFound, new { mensaje = "No se encontró el curso." }); } curso.Titulo = request.Titulo ?? curso.Titulo; curso.Descripcion = request.Descripcion ?? curso.Descripcion; curso.FechaPublicacion = request.FechaPublicacion ?? curso.FechaPublicacion; if (request.ListaInstructor != null && request.ListaInstructor.Any()) { var instructoresBD = context.CursoInstructor.Where(w => w.CursoId == request.CursoId).ToList(); foreach (var _instructor in instructoresBD) { context.CursoInstructor.Remove(_instructor); } foreach (var _instructorId in request.ListaInstructor) { var nuevoInstructor = new CursoInstructor { CursoId = request.CursoId, InstructorId = _instructorId }; context.CursoInstructor.Add(nuevoInstructor); } } var valor = await context.SaveChangesAsync(); if (valor > 0) { return(Unit.Value); } throw new Exception("No se pudo insertar el curso."); }
public async Task <Unit> Handle(Ejecuta request, CancellationToken cancellationToken) { var curso = await _context.Curso.FindAsync(request.CursoId); if (curso == null) { throw new ManejadorExcepcion(HttpStatusCode.NotFound, new { mensaje = "No se encontró el curso" }); } curso.Titulo = request.Titulo ?? curso.Titulo; curso.Descripcion = request.Descripcion ?? curso.Descripcion; curso.FechaCreacion = DateTime.UtcNow; curso.FechaPublicacion = request.FechaPublicacion ?? curso.FechaPublicacion; //Actualizar precio de curso var precioEntidad = _context.Precio.Where(x => x.CursoId.Equals(curso.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 = curso.CursoId }; await _context.Precio.AddAsync(precioEntidad); } if (request.ListaInstructor != null) { if (request.ListaInstructor.Count > 0) { //Eliminar instructores existentes del curso var instructoresDb = _context.CursoInstructor.Where(x => x.CursoId.Equals(request.CursoId)).ToList(); foreach (var itemInstructor in instructoresDb) { _context.CursoInstructor.Remove(itemInstructor); } // agregar instructores desde el cliente foreach (var id in request.ListaInstructor) { var nuevoInstructor = new CursoInstructor { CursoId = request.CursoId, InstructorId = id }; _context.CursoInstructor.Add(nuevoInstructor); } } } var resultado = await _context.SaveChangesAsync(); if (resultado > 0) { return(Unit.Value); } else { throw new ManejadorExcepcion(HttpStatusCode.NotModified, new { mensaje = "No se guardaron los cambios en el curso" }); } }
public async Task <Unit> Handle(Ejecuta request, CancellationToken cancellationToken) { var curso = await _context.Cursos.FindAsync(request.CursoId); if (curso == null) { throw new ExceptionHandler(HttpStatusCode.NotFound, new { mensaje = "No se encontró el curso" }); } curso.Titulo = request.Titulo ?? curso.Titulo; curso.Descripcion = request.Descripcion ?? curso.Descripcion; curso.FechaPublicacion = request.FechaPublicacion ?? curso.FechaPublicacion; //Actualizar precio curso var precioEntidad = _context.Precios.Where(x => x.CursoId == curso.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 = curso.CursoId }; await _context.Precios.AddAsync(precioEntidad); } if (request.ListaInstructores != null) { if (request.ListaInstructores.Count > 0) { //Eliminar los instructores actuales del curso. var instructoresBD = _context.CursoInstructor.Where(x => x.CursoId == request.CursoId).ToList(); foreach (var instructor in instructoresBD) { _context.CursoInstructor.Remove(instructor); } //Agregar instructores que vienen del cliente foreach (var id in request.ListaInstructores) { var nuevoInstructor = new CursoInstructor { CursoId = request.CursoId, InstructorId = id }; _context.CursoInstructor.Add(nuevoInstructor); } } } var resultado = await _context.SaveChangesAsync(); if (resultado > 0) { return(Unit.Value); } throw new Exception("No se guardaron los cambios en el curso."); }
public async Task <Unit> Handle(Ejecuta request, CancellationToken cancellationToken) { var curso = await _context.Curso.FindAsync(request.CursoId); if (curso == null) { throw new ManejadorException(HttpStatusCode.NotFound, new { curso = "No se encontro el curso" }); } curso.Titulo = request.Titulo ?? curso.Titulo; curso.Descripcion = request.Descripcion ?? curso.Descripcion; curso.FechaPublicacion = request.FechaPublicacion ?? curso.FechaPublicacion; /* Actualizar el precio del curso */ var precioEntidad = _context.Precio.Where(x => x.CursoId == curso.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.Promocion ?? 0, Promocion = request.Promocion ?? 0, CursoId = curso.CursoId }; await _context.Precio.AddAsync(precioEntidad); } if (request.ListaInstructor != null) { if (request.ListaInstructor.Count > 0) { /*Eliminar los instructores actuales del curso en la base de datos*/ var InstructoresBD = _context.CursoInstructor.Where(x => x.CursoId == request.CursoId).ToList(); foreach (var instructorEliminar in InstructoresBD) { _context.CursoInstructor.Remove(instructorEliminar); } /*Fin del procedimiento para eliminar Instructores*/ /*Procedimiento para 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); } } } var resultado = await _context.SaveChangesAsync(); if (resultado > 0) { return(Unit.Value); } throw new Exception("No se guardaron los cambios en el curso paps"); }
public async Task <Unit> Handle(Ejecuta request, CancellationToken cancellationToken) { var curso = await context.Curso.FindAsync(request.CursoId); if (curso == null) { throw new ManejadorExepcion(HttpStatusCode.NotFound, new { mensaje = "No se encontro el curso" }); } curso.Titulo = request.Titulo ?? curso.Titulo; curso.Descripcion = request.Descripcion ?? curso.Descripcion; curso.FechaPublicacion = request.FechaPublicacion ?? curso.FechaPublicacion; var precio = this.context.Precio.Where(x => x.CursoId == curso.CursoId).FirstOrDefault(); if (precio != null) { precio.PrecioActual = request.Precio ?? precio.PrecioActual; precio.Promocion = request.PrecioPromocion ?? precio.Promocion; } else { precio = new Precio { PrecioId = Guid.NewGuid(), PrecioActual = request.Precio ?? 0, Promocion = request.PrecioPromocion ?? 0, CursoId = curso.CursoId }; this.context.Precio.Add(precio); } if (request.ListaInstructor != null) { if (request.ListaInstructor.Count > 0) { // Eliminar de la base de datos var instructoresDB = this.context.CursoInstructor.Where(x => x.CursoId == request.CursoId).ToList(); foreach (var instructorEliminar in instructoresDB) { this.context.CursoInstructor.Remove(instructorEliminar); } // Agregar los que vienen del cliente foreach (var id in request.ListaInstructor) { var cursoInstructor = new CursoInstructor { CursoId = request.CursoId, InstructorId = id }; this.context.CursoInstructor.Add(cursoInstructor); } } } //context.Curso.Update(curso); var valor = await context.SaveChangesAsync(); if (valor > 0) { return(Unit.Value); } throw new ManejadorExepcion(HttpStatusCode.InternalServerError, new { mensaje = "No se pudo Editar el Curso" }); }
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"); }
public async Task <Unit> Handle(Ejecuta request, CancellationToken cancellationToken) { var curso = await _context.Curso.FindAsync(request.CursoId); if (curso == null) { throw new ManejadorExcepcion(HttpStatusCode.NotFound, new { curso = "No se encontro el curso" }); } curso.Titulo = request.Titulo ?? curso.Titulo; curso.Descripcion = request.Descripcion ?? curso.Descripcion; curso.FechaPublicacion = request.FechaPublicacion ?? curso.FechaPublicacion; // Actulizar Precio del Curso var precioEntidad = _context.Precio.Where(x => x.CursoId == curso.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 = curso.CursoId }; await _context.Precio.AddAsync(precioEntidad); } if (request.ListaInstructor != null) { if (request.ListaInstructor.Count > 0) { var instrucoresBD = _context.CursoInstructor.Where(x => x.CursoId == request.CursoId); // Eliminados todos los Instructores que estan en la base foreach (var instructor in instrucoresBD) { _context.CursoInstructor.Remove(instructor); } // Insertamos todos los instructores nuevos traidos desde el front foreach (var ids in request.ListaInstructor) { var nuevoInstructor = new CursoInstructor { CursoId = request.CursoId, InstructorId = ids }; _context.CursoInstructor.Add(nuevoInstructor); } } } var result = await _context.SaveChangesAsync(); if (result > 0) { return(Unit.Value); } throw new Exception("No se guardaron los cambios en el curso"); }
public async Task <Unit> Handle(Ejecuta request, CancellationToken cancellationToken) { var curso = await Context.curso.FindAsync(request.CursoId); if (curso == null) { //throw new Exception("No se puede eliminar el curso"); throw new ManejadorExcepcion(HttpStatusCode.NotFound, new { curso = "El curso no existe" }); } curso.Titulo = request.Titulo ?? curso.Titulo; curso.Descripcion = request.Descripcion ?? curso.Descripcion; curso.FechaPublicacion = request.FechaPublicacion ?? curso.FechaPublicacion; curso.FechaDeCreacion = DateTime.UtcNow; /*Actualizar el precio del curso*/ var cursoPrecio = Context.precio.Where(curso => curso.CursoId == request.CursoId).FirstOrDefault(); if (cursoPrecio != null) { cursoPrecio.PrecioActual = request.Precio ?? cursoPrecio.PrecioActual; cursoPrecio.Promocion = request.Promocion ?? cursoPrecio.Promocion; } else { var precioEntidad = new Precio { PrecioId = Guid.NewGuid(), PrecioActual = request.Precio ?? 0, Promocion = request.Promocion ?? 0, CursoId = request.CursoId }; await Context.precio.AddAsync(precioEntidad); } if (request.ListaInstructor != null && request.ListaInstructor.Count > 0) { var instructoresBD = Context.cursoInstructor.Where(x => x.CursoId == request.CursoId).ToList(); /*Elimina los instructores actuales del curso en la base de datos*/ foreach (var instructoresEliminar in instructoresBD) { Context.cursoInstructor.Remove(instructoresEliminar); } /*Procedimiento para agregar a los nuevos instructores del cliente*/ foreach (var instructorId in request.ListaInstructor) { var nuevoInstructor = new CursoInstructor { CursoId = request.CursoId, InstructorId = instructorId }; Context.cursoInstructor.Add(nuevoInstructor); } } var result = await Context.SaveChangesAsync(); if (result > 0) { return(Unit.Value); } throw new Exception("No se guardaron los cambios en el curso."); }
public async Task <Unit> Handle(Ejecuta request, CancellationToken cancellationToken) { var curso = await _context.Curso.FindAsync(request.CursoId); if (curso == null) { throw new ManejadorException(HttpStatusCode.NotFound, new { mensaje = "No se encontro el curso" }); } curso.Titulo = request.Titulo ?? curso.Titulo; // El operador ?? => lo que hace es validar si esta varibale(request.Titulo es indifinida o null pone el valor que se le asigne a la rderecha curso.Descripcion = request.Descripcion ?? curso.Descripcion; curso.FechaPublicacion = request.FechaPublicacion ?? curso.FechaPublicacion; curso.FechaCreacion = DateTime.UtcNow; /*Actualizar el precio del curso*/ var precioEntidad = _context.Precio.Where(x => x.CursoId == curso.CursoId).FirstOrDefault(); if (precioEntidad != null) { precioEntidad.PrecioPromocion = request.PrecioPromocion ?? precioEntidad.PrecioPromocion; precioEntidad.PrecioActual = request.Precio ?? precioEntidad.PrecioPromocion; } else //En caso no tenga precio se ingresara el precio { precioEntidad = new Precio { PrecioId = Guid.NewGuid(), PrecioActual = request.Precio ?? 0, PrecioPromocion = request.PrecioPromocion ?? 0, CursoId = curso.CursoId }; await _context.Precio.AddAsync(precioEntidad); } if (request.ListaInstructor != null) { if (request.ListaInstructor.Count > 0) { /*Eliminar los instructores actuales del curso en la base de datos*/ //Esto devuleve un arreglo de codigos guid de instructor que estan en la db var instructoresDB = _context.CursoInstructor.Where(x => x.CursoId == request.CursoId).ToList(); foreach (var instructoEliminar in instructoresDB) { _context.CursoInstructor.Remove(instructoEliminar); } /*Procedimento para agregar instructores que viene del cliente*/ foreach (var id in request.ListaInstructor) { var nuevoInstructor = new CursoInstructor { CursoId = request.CursoId, InstructorId = id }; _context.CursoInstructor.Add(nuevoInstructor); } } } var valor = await _context.SaveChangesAsync(); if (valor > 0) { return(Unit.Value); } throw new Exception("No se pudieron guardar los cambios al curso"); }