public async Task <IActionResult> CreateStudent(AddOrUpdateStudentDto addStudent)
        {
            if (addStudent == null)
            {
                return(NotFound());
            }

            //var classEntity = await _context.Class.FirstOrDefaultAsync(p => p.Id == addStudent.ClassId);
            //if (classEntity == null)
            //{
            //    return NotFound();
            //}

            var studentEntity = _mapper.Map <Students>(addStudent);

            studentEntity.Id     = Guid.NewGuid();
            studentEntity.Gender = Enum.Parse <Gender>(addStudent.Gender);

            studentEntity.ClassId = addStudent.ClassId;
            //studentEntity.Class = classEntity;

            studentEntity.ArchiveId = Guid.NewGuid();
            studentEntity.Archive   = new Archives()
            {
                Id         = studentEntity.ArchiveId,
                StudentId  = studentEntity.Id,
                No         = DateTime.Now.ToString("yyyMMddHHmmsss"),
                CreateTime = DateTime.Now,
            };

            if (addStudent.StudentCourseIds.Any())
            {
                var studentCourseIds = addStudent.StudentCourseIds;
                var courses          = await _context.Courses.Where(p => studentCourseIds.Contains(p.Id)).ToListAsync();

                var studentCourseDtos = courses.Select(p => new StudentCourseDto()
                {
                    StudentId = studentEntity.Id,
                    CourseId  = p.Id
                });
                var studentCourses = _mapper.Map <IEnumerable <StudentCourses> >(studentCourseDtos);
                studentEntity.StudentCourses = studentCourses.ToList();
            }

            _context.Students.Add(studentEntity);
            await _context.SaveChangesAsync();

            return(Ok());
        }
        public async Task <IActionResult> UpdateStudent(Guid studentId, AddOrUpdateStudentDto updateStudent)
        {
            if (updateStudent == null)
            {
                return(NotFound());
            }

            //var classEntity = await _context.Class.FirstOrDefaultAsync(p => p.Id == updateStudent.ClassId);
            //if (classEntity == null)
            //{
            //    return NotFound();
            //}

            var studentEntity = await _context.Students.FirstOrDefaultAsync(p => p.Id == studentId);

            _mapper.Map(updateStudent, studentEntity);
            studentEntity.Gender = Enum.Parse <Gender>(updateStudent.Gender);

            studentEntity.ClassId = updateStudent.ClassId;
            //studentEntity.Class = classEntity;

            if (updateStudent.StudentCourseIds.Any())
            {
                var studentCourseIds = updateStudent.StudentCourseIds;
                var courses          = await _context.Courses.Where(p => studentCourseIds.Contains(p.Id)).ToListAsync();

                var studentCourseDtos = courses.Select(p => new StudentCourseDto()
                {
                    StudentId = studentEntity.Id,
                    CourseId  = p.Id
                });
                var studentCourses = _mapper.Map <IEnumerable <StudentCourses> >(studentCourseDtos);
                studentEntity.StudentCourses.Clear();
                studentEntity.StudentCourses = studentCourses.ToList();
            }

            _context.Students.Update(studentEntity);
            await _context.SaveChangesAsync();

            return(Ok());
        }