public async Task <IActionResult> PutCourses(long id, Courses courses) { if (id != courses.Id) { return(BadRequest()); } _context.Entry(courses).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!CoursesExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public async Task <Unit> Handle(DeleteCourse request, CancellationToken cancellationToken) { var comments = _context.Comment.Where(c => c.CourseId == request.CourseId); foreach (var comment in comments) { _context.Comment.Remove(comment); } var price = _context.Price.Where(prc => prc.CourseId == request.CourseId).FirstOrDefault(); if (price != null) { _context.Price.Remove(price); } var course = await _context.Course.FindAsync(request.CourseId); if (course == null) { throw new ExceptionHandler(HttpStatusCode.NotFound, new { mensaje = "No se encontró el curso" }); } _context.Course.Remove(course); var result = await _context.SaveChangesAsync(); if (result > 0) { return(Unit.Value); } throw new Exception("Error al eliminar el curso"); }
public async Task <bool> Save() { try { await _context.SaveChangesAsync(); return(true); } catch (Exception) { return(false); } }
public async Task <Unit> Handle(Execute request, CancellationToken cancellationToken) { var comment = await _context.Comment.FindAsync(request.CommentId); if (comment == null) { throw new ExceptionHandler( HttpStatusCode.NotFound, new { message = "No se encontró el curso" } ); } _context.Remove(comment); return(await _context.SaveChangesAsync() > 0 ? Unit.Value : throw new Exception("No se pudo eliminar el curso")); }
public async Task <Unit> Handle(Execute request, CancellationToken cancellationToken) { var comment = new Comment { CommentId = Guid.NewGuid(), Student = request.Student, Content = request.Content, Review = request.Review, CourseId = request.CourseId, CreationDate = DateTime.UtcNow }; _context.Comment.Add(comment); return(await _context.SaveChangesAsync() > 0 ? Unit.Value : throw new Exception("No se pudo almacenar el comentario")); }
public async Task <Unit> Handle(New request, CancellationToken cancellationToken) { /*Insertar Curso*/ Course course = new Course() { Title = request.Title, Description = request.Description, PublicationDate = request.PublicationDate ?? DateTime.UtcNow, CreationDate = DateTime.UtcNow }; var createdCourse = _context.Course.Add(course); /*Insertar Profesores*/ foreach (var teacherId in request.Teachers) { _context.CourseTeacher.Add(new CourseTeacher { TeacherId = teacherId, CourseId = createdCourse.Entity.CourseId }); } /*Insertar Precio*/ var newPrice = new Price { PriceId = Guid.NewGuid(), ActualPrice = request.ActualPrice, Offer = request.OfferPrice, CourseId = createdCourse.Entity.CourseId }; _context.Price.Add(newPrice); /*Guardando Cambios*/ var Result = await _context.SaveChangesAsync(); if (Result > 0) { return(Unit.Value); } throw new Exception("Error al insertar el curso"); }
public async Task <Unit> Handle(Edit request, CancellationToken cancellationToken) { var course = await _context.Course.FindAsync(request.CourseId); if (course == null) { throw new ExceptionHandler(HttpStatusCode.NotFound, new { mensaje = "No se encontró el curso" }); } course.Title = request.Title ?? course.Title; course.Description = request.Description ?? course.Description; course.PublicationDate = request.PublicationDate ?? course.PublicationDate; course.CreationDate = DateTime.UtcNow; /*Actualizar precio del curso*/ var coursePrice = _context.Price. Where(p => p.CourseId == course.CourseId). FirstOrDefault(); if (coursePrice != null) { coursePrice.ActualPrice = request.ActualPrice; coursePrice.Offer = request.OfferPrice; } else { await _context.Price.AddAsync(new Price { PriceId = Guid.NewGuid(), CourseId = course.CourseId, ActualPrice = request.ActualPrice, Offer = request.OfferPrice }); } /*Actualizar profesores del curso*/ int result = 0; if (request.Teachers != null) { var teachersList = _context.CourseTeacher. Where(c => c.CourseId == request.CourseId). ToList(); foreach (var newTeacher in request.Teachers) { var repeatTeacher = teachersList. Where(t => t.TeacherId == newTeacher); if (repeatTeacher.Count() <= 0) { _context.CourseTeacher.Add(new CourseTeacher { CourseId = request.CourseId, TeacherId = newTeacher }); } else { result++; } } } result += await _context.SaveChangesAsync(); if (result > 0) { return(Unit.Value); } throw new Exception("No se guardaron los cambios en el curso"); }