public async Task <ActionResult <StudentViewModel> > PostStudentDetails(StudentViewModel StudentData)
        {
            StudentDetails stu = new StudentDetails();

            stu.FirstName = StudentData.firstName;
            stu.LastName  = StudentData.lastName;
            stu.ClassId   = StudentData.classId;
            _context.StudentDetails.Add(stu);
            await _context.SaveChangesAsync();

            StudentDetails student = _context.StudentDetails.SingleOrDefault(x => x.FirstName == StudentData.firstName);//Need to make FirstName as unique key. yet to code for making it unique.

            foreach (var stuData in StudentData.subjectMarksDetail)
            {
                StuSubjectMarks subMarks = new StuSubjectMarks();
                subMarks.SubjectId = stuData.subId;
                subMarks.StudentId = student.StudentId;
                subMarks.Marks     = stuData.marks;
                _context.StuSubjectMarks.Add(subMarks);
            }



            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetStudentDetail", new { id = StudentData.stuId }, StudentData));
        }
        public async Task <IActionResult> PutStudentDetails(int id, StudentViewModel studentData)
        {
            if (id != studentData.stuId)
            {
                return(BadRequest());
            }


            foreach (var data in studentData.subjectMarksDetail)
            {
                bool ifExist = await _context.StuSubjectMarks.AnyAsync(x => x.SubjectId == data.subId);

                if (!ifExist)
                {
                    StuSubjectMarks subMarkData = new StuSubjectMarks();
                    subMarkData.StudentId = id;
                    subMarkData.SubjectId = data.subId;
                    subMarkData.Marks     = data.marks;
                    _context.StuSubjectMarks.Add(subMarkData);
                }
                else
                {
                    StuSubjectMarks subMarks = await _context.StuSubjectMarks.FirstOrDefaultAsync(x => x.SubjectId == data.subId);

                    subMarks.SubjectId = data.subId;
                    subMarks.Marks     = data.marks;
                }



                await _context.SaveChangesAsync();
            }

            var studentDetail = await _context.StudentDetails.FindAsync(id);

            studentDetail.FirstName = studentData.firstName;
            studentDetail.LastName  = studentData.lastName;
            studentDetail.ClassId   = studentData.classId;
            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!StudentDetailExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }