public async Task <CreateCourseViewModel> Handle(CreateCourseCommand request, CancellationToken cancellationToken)
        {
            var        userId = HttpContextAccessor.HttpContext?.User.FindFirstValue(ClaimTypes.NameIdentifier);
            Instructor user   = _context.Instructors.FirstOrDefault(u => u.Id == userId);

            if (user == null)
            {
                throw new CustomException(new Error
                {
                    ErrorType = ErrorType.Unauthorized,
                    Message   = Localizer["Unauthorized"]
                });
            }
            Domain.Models.Course courseObj = new Domain.Models.Course
            {
                CourseTitle  = request.CourseTitle,
                Instructor   = user,
                InstructorId = userId,
                EndDate      = request.EndDate
            };
            await _context.Courses.AddAsync(courseObj, cancellationToken);

            await _context.SaveChangesAsync(cancellationToken);

            return(new CreateCourseViewModel
            {
                Course = _mapper.Map <ViewCourseDto>(courseObj)
            });
        }
Ejemplo n.º 2
0
        public async Task <Unit> Handle(UpdateCourseCommand request, CancellationToken cancellationToken)
        {
            var        userId = HttpContextAccessor.HttpContext?.User.FindFirstValue(ClaimTypes.NameIdentifier);
            Instructor user   = _context.Instructors.FirstOrDefault(u => u.Id == userId);

            if (user == null)
            {
                throw new CustomException(new Error
                {
                    ErrorType = ErrorType.Unauthorized,
                    Message   = Localizer["Unauthorized"]
                });
            }
            Domain.Models.Course courseObj = new Domain.Models.Course
            {
                CourseId     = request.CourseId,
                CourseTitle  = request.CourseTitle,
                Instructor   = user,
                InstructorId = userId
            };
            _context.Courses.Update(courseObj);
            await _context.SaveChangesAsync(cancellationToken);

            return(Unit.Value);
        }
        public async Task <AddCourseEventViewModel> Handle(AddCourseEventCommand request, CancellationToken cancellationToken)
        {
            var        userId = HttpContextAccessor.HttpContext?.User.FindFirstValue(ClaimTypes.NameIdentifier);
            Instructor user   = _context.Instructors.FirstOrDefault(u => u.Id == userId);

            if (user == null)
            {
                throw new CustomException(new Error
                {
                    ErrorType = ErrorType.Unauthorized,
                    Message   = Localizer["Unauthorized"]
                });
            }
            Domain.Models.Course courseObj = _context.Courses.Include(c => c.CourseEvents).
                                             FirstOrDefault(c => c.CourseId == request.CourseId);
            if (courseObj == null)
            {
                throw new CustomException(new Error
                {
                    ErrorType = ErrorType.CourseNotFound,
                    Message   = Localizer["CourseNotFound"]
                });
            }
            Domain.Models.CourseEvent courseEvent = new Domain.Models.CourseEvent
            {
                EventName        = request.EventName,
                EventDescription = request.EventDescription,
                EventType        = request.EventType,
                Course           = courseObj,
                CourseId         = request.CourseId,
                EventTime        = request.EventTime
            };
            await _context.CourseEvents.AddAsync(courseEvent, cancellationToken);

            await _context.SaveChangesAsync(cancellationToken);

            return(new AddCourseEventViewModel
            {
                CourseEvent = _mapper.Map <ViewCourseCourseEventDto>(courseEvent)
            });
        }