public void CreateCourse(Course course)
        {
            var courseExists = (from c in _dataContext.Course.Where(c => c.Subject == course.Subject) select c).ToList();

            //is new course
            if (courseExists.Count == 0)
            {
                AddCourse(course);
                AddCourseGrade(new CourseGrade { CourseId = course.Id, Grade = course.Grade });
                return;
            }
            var existingCourseId = courseExists[0].Id;

            try
            {
                var courseGradeExists =
                    (from cg in
                         _dataContext.CourseGrade.Where(cg => cg.CourseId == existingCourseId && cg.Grade == course.Grade)
                     select cg).ToList();

                //is new grade for existing course
                if (courseGradeExists.Count == 0)
                {
                    var courseGrade = new CourseGrade { CourseId = existingCourseId, Grade = course.Grade };
                    AddCourseGrade(courseGrade);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        private int FindCourseId(string course, string grade)
        {
            int courseGradeId = 0;

            int courseId = int.Parse(course);

            var courseGrade = (from cg in _dataContext.CourseGrade where (cg.CourseId == courseId && cg.Grade == grade) select cg).ToList();

            if (courseGrade.Count > 0)
            {
                courseGradeId = courseGrade[0].Id;
            }
            else
            {
                var cg = new CourseGrade() { CourseId = int.Parse(course), Grade = grade };
                _dataContext.CourseGrade.Add(cg);
                _dataContext.SaveChanges();
                courseGradeId = cg.Id;
            }

            return courseGradeId;
        }
 private void AddCourseGrade(CourseGrade courseGrade)
 {
     _dataContext.CourseGrade.Add(courseGrade);
     _dataContext.SaveChanges();
 }