Beispiel #1
0
        public IActionResult SubmitCodeSnippet(int id, int?assignmentId, int?categoryId)
        {
            //we need to grab the code form the text area
            string code = Request.Form["Code"];

            //create instance of codecontroller to reuse code for compiling and running code
            CodeController codeController = new CodeController();
            string         results        = codeController.GetResults(code).Trim(); //we want to trim it from escape characters ex: \n \r, only works if they are @ end or beginning, which works perfectly with what we want

            //grab the specific assignment
            var assignment = _context.CodeSnippets.Where(c => c.CodeSnippetId == assignmentId).First();

            //check if the results is equal to the answer in the specific assignment
            bool isCorrect = false;

            if (assignment.Answer == results)
            {
                isCorrect = true;
            }



            //get userEmail
            string userEmail = User.Identity.Name;

            //create new instance of submission
            CodeSnippetSubmission newSubmission = new CodeSnippetSubmission
            {
                AssignmentId = (int)assignmentId,
                UserEmail    = userEmail,
                UserCode     = code,
                IsCorrect    = isCorrect
            };

            _context.Add(newSubmission);
            _context.SaveChanges();

            //create new submission to be used for report
            Submission newSub = new Submission
            {
                AssignmentId = (int)assignmentId,
                CategoryId   = 2,
                CourseId     = id,
                UserEmail    = User.Identity.Name
            };

            _context.Add(newSub);
            _context.SaveChanges();


            TempData["Success"] = "Assignment Successfully Submitted!";



            return(RedirectToRoute(new
            {
                controller = "Course",
                action = "Show",
                id = id
            }));
        }