/// <summary>
        /// Create a new problem via TeacherNewProblemViewModel
        /// </summary>
        public int CreateNewProblem(TeacherNewProblemViewModel problem)
        {
            var courseId = _courseService.GetCourseIdByCourseName(problem.CourseName);

            // Filetype check
            if (_db.Filetypes.SingleOrDefault(x => x.Type == problem.Filetype) == null)
            {
                var fileType = new Filetype {
                    Type = problem.Filetype
                };

                _db.Filetypes.Add(fileType);
            }

            // Language check
            if (_db.ProgrammingLanguages.SingleOrDefault(x => x.Language == problem.Language) == null)
            {
                var language = new ProgrammingLanguage {
                    Language = problem.Filetype
                };

                _db.ProgrammingLanguages.Add(language);
            }

            // Add the new problem
            var newProblem = new Problem {
                CourseId    = courseId,
                Name        = problem.Name,
                Description = problem.Description,
                Filetype    = problem.Filetype,
                Language    = problem.Language
            };

            _db.Problems.Add(newProblem);

            try {
                _db.SaveChanges();
                return(newProblem.Id);
            }
            catch (Exception e) {
                return(0);
            }
        }
Exemple #2
0
        /* Creating a new problem requires 3 methods due to AJAX and model binding being weird when uploading a file, with data and a list of data */

        public ActionResult NewProblem(TeacherNewProblemViewModel problem)
        {
            return(Json(_teacherService.CreateNewProblem(problem)));
        }