/// <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); } }
/* 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))); }