Ejemplo n.º 1
0
        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());
        }
Ejemplo n.º 2
0
            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");
            }
Ejemplo n.º 3
0
        public async Task <bool> Save()
        {
            try
            {
                await _context.SaveChangesAsync();

                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
        }
Ejemplo n.º 4
0
            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"));
            }
Ejemplo n.º 5
0
            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"));
            }
Ejemplo n.º 6
0
            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");
            }
Ejemplo n.º 7
0
            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");
            }