public IActionResult SubmitAssignment([FromBody] SubmitAssignmentModel model) { var assignment = _mapper.Map <Assignment>(model); _courseMaterialService.SubmitAssignment(assignment); return(Ok()); }
public void SubmitFileUploadAssignment() //[email protected] { //Q: can a student submit a file upload assignment? //prep var _context = new MackTechGroupProject.Models.ApplicationDbContext(); var sUserId = "7033fb11-e3e3-465a-831c-55a0dd215343"; //TestStudent TextSubmission var aAssignmentId = 164; //MATH 1040 - Assignment 2 - Upload file of scanned homework var currentAssignment = _context.Assignments.Where(x => x.AssignmentId == aAssignmentId).FirstOrDefault(); var currentStudent = _context.Users.Where(x => x.Id == sUserId).FirstOrDefault(); string fileName = "Test_Document.docx"; //string path = HostingEnvironment.MapPath("~/Content/"); var filePath = Path.Combine(Directory.GetParent(System.IO.Directory.GetCurrentDirectory()).Parent.Parent.FullName, "MackTechGroupProject", "Content", fileName); //https://stackoverflow.com/questions/7466687/how-to-create-an-instance-of-httppostedfilebaseor-its-inherited-type FileStream fileStream = new FileStream(filePath, FileMode.Open); MemoryFile fileSubmission = new MemoryFile(fileStream, "application/vnd.openxmlformats-officedocument.wordprocessingml.document", fileName); //create a submissionGrade object SubmissionGrades submissionGrade = new SubmissionGrades() { User = currentStudent, Assignment = currentAssignment, SubmissionDate = DateTime.Now, TextSubmission = null, FileSubmission = "UnitTestFileSubmission", Grade = null }; SubmitAssignmentModel model = new SubmitAssignmentModel { File = fileSubmission, currentAssignment = currentAssignment, assignmentID = (int)aAssignmentId }; bool isUnitTest = true; //perform operations Boolean result = AssignmentService.submitAssignmentService(sUserId, aAssignmentId, model, _context, isUnitTest); //verify and interpret results Assert.IsTrue(result); var y = _context.SubmissionGrades.Where(x => x.User.Id == sUserId && x.Assignment.AssignmentId == aAssignmentId).FirstOrDefault(); Assert.IsTrue(y.FileSubmission.Contains(fileName)); fileStream.Close(); }
public ActionResult AssignmentSubmission(SubmitAssignmentModel model) { var userID = User.Identity.GetUserId(); var context = HttpContext.GetOwinContext().Get <ApplicationDbContext>(); var selectedAssignmentId = Convert.ToInt64(Request.Form["asID"]); bool isUnitTest = false; Boolean result = AssignmentService.submitAssignmentService(userID, selectedAssignmentId, model, context, isUnitTest); return(RedirectToAction("Index", "Home")); }
public void submitTextAssignment() //[email protected] { //Q: can a student submit a text assignment? //prep var _context = new MackTechGroupProject.Models.ApplicationDbContext(); var sUserId = "7033fb11-e3e3-465a-831c-55a0dd215343"; //TestStudent TextSubmission var aAssignmentId = 148; //MATH 1040 - Assignment 1 - text submission assignment var currentAssignment = _context.Assignments.Where(x => x.AssignmentId == aAssignmentId).FirstOrDefault(); var currentStudent = _context.Users.Where(x => x.Id == sUserId).FirstOrDefault(); string text = "This is a unit Test."; //create a submissionGrade object SubmissionGrades submissionGrade = new SubmissionGrades() { User = currentStudent, Assignment = currentAssignment, SubmissionDate = DateTime.Now, TextSubmission = text, FileSubmission = null, Grade = null }; SubmitAssignmentModel model = new SubmitAssignmentModel { SubmissionText = text, currentAssignment = currentAssignment, assignmentID = (int)aAssignmentId }; bool isUnitTest = true; //perform operations Boolean result = AssignmentService.submitAssignmentService(sUserId, aAssignmentId, model, _context, isUnitTest); //perform operations //Boolean result = AssignmentService.submitTextAssignmentService(aAssignmentId, submissionGrade, _context); //verify and interpret results Assert.IsTrue(result); var y = _context.SubmissionGrades.Where(x => x.User.Id == sUserId && x.Assignment.AssignmentId == 148).FirstOrDefault(); Assert.IsTrue(y.TextSubmission.Equals(text)); }
//New method passes a null assignment id to submission public ActionResult AssignmentSubmission(int assignmentId) { var selectedAssignmentId = assignmentId; var context = HttpContext.GetOwinContext().Get <ApplicationDbContext>(); var currentAssignment = context.Assignments.Where(x => x.AssignmentId == selectedAssignmentId).FirstOrDefault(); var submitAssignmentModel = new SubmitAssignmentModel() { assignmentID = selectedAssignmentId, currentAssignment = currentAssignment, SubmissionText = "" }; return(View(submitAssignmentModel)); }
public IActionResult UpdateAssignment(int id, [FromBody] SubmitAssignmentModel model) { // map model to entity and set id var assignment = _mapper.Map <Assignment>(model); assignment.Id = id; try { // update assignment submission _courseMaterialService.UpdateAssignment(assignment); return(Ok()); } catch (AppException ex) { // return error message if there was an exception return(BadRequest(new { message = ex.Message })); } }
public void submitSecondTextAssignment() { // Q: does a second text submission for same assignment remove the first and add the second in its place? //using [email protected] who already has one text submission submitted var _context = new MackTechGroupProject.Models.ApplicationDbContext(); var sUserId = "fd6deecf-8a00-4458-a1a5-0810c3213b67"; //TestStudent TextSubmission long aAssignmentId = 148; //MATH 1040 - Assignment 1 - text submission assignment var currentAssignment = _context.Assignments.Where(x => x.AssignmentId == aAssignmentId).FirstOrDefault(); var currentStudent = _context.Users.Where(x => x.Id == sUserId).FirstOrDefault(); string text = "This is a second text submission for same assignment."; SubmitAssignmentModel model = new SubmitAssignmentModel { SubmissionText = text, currentAssignment = currentAssignment, assignmentID = (int)aAssignmentId }; bool isUnitTest = true; //perform operations Boolean result = AssignmentService.submitAssignmentService(sUserId, aAssignmentId, model, _context, isUnitTest); //verify and interpret results Assert.IsTrue(result); var yList = _context.SubmissionGrades.Where(x => x.User.Id == sUserId).Where(x => x.Assignment.AssignmentId == (int)aAssignmentId).ToList(); var ySingle = _context.SubmissionGrades.Where(x => x.User.Id == sUserId).Where(x => x.Assignment.AssignmentId == (int)aAssignmentId).FirstOrDefault(); Assert.IsTrue(yList.Count() == 1); Assert.IsTrue(ySingle.TextSubmission.Equals(text)); }
public static Boolean submitAssignmentService(String userID, long selectedAssignmentId, SubmitAssignmentModel model, ApplicationDbContext context, bool isUnitTest) { string path = ""; var currentStudent = context.Users.Where(x => x.Id == userID).FirstOrDefault(); var File = model.File; var currentAssignment = context.Assignments.Where(x => x.AssignmentId == selectedAssignmentId).FirstOrDefault(); bool hasSubmission = AssignmentService.HasCurrentSubmission(selectedAssignmentId, userID, context); if (hasSubmission) { var submissionToBeRemoved = context.SubmissionGrades.Where(x => x.Assignment.AssignmentId == selectedAssignmentId && x.User.Id == userID).FirstOrDefault(); //if FILE, use above to query file path and delete file from content folder if (File != null) { String filename = submissionToBeRemoved.FileSubmission; if (isUnitTest == false) { path = HostingEnvironment.MapPath("~/Content/fileAssignments/"); } if (isUnitTest == true) { path = Path.Combine(Directory.GetParent(System.IO.Directory.GetCurrentDirectory()).Parent.Parent.FullName, "MackTechGroupProject", "fileAssignments"); } String fileSubmissionPath = path + filename; System.IO.File.Delete(fileSubmissionPath); } //remove row from table context.SubmissionGrades.Remove(submissionToBeRemoved); context.SaveChanges(); } if (File != null) { if (isUnitTest == false) { path = HostingEnvironment.MapPath("~/Content/fileAssignments/"); } if (isUnitTest == true) { path = Path.Combine(Directory.GetParent(System.IO.Directory.GetCurrentDirectory()).Parent.Parent.FullName, "MackTechGroupProject", "fileAssignments"); } if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } Guid g = Guid.NewGuid(); String filename = System.IO.Path.GetFileName(File.FileName); String fileSubmissionPath = path + filename + "$" + g; File.SaveAs(fileSubmissionPath); SubmissionGrades submissionGrade = new SubmissionGrades() { User = currentStudent, Assignment = currentAssignment, SubmissionDate = DateTime.Now, TextSubmission = null, FileSubmission = filename + "$" + g, Grade = null }; context.SubmissionGrades.Add(submissionGrade); context.SaveChanges(); return(true); } //method for unit testing else if (model.SubmissionText != null) { SubmissionGrades submissionGrade = new SubmissionGrades() { User = currentStudent, Assignment = currentAssignment, SubmissionDate = DateTime.Now, TextSubmission = model.SubmissionText, FileSubmission = null, Grade = null }; context.SubmissionGrades.Add(submissionGrade); context.SaveChanges(); return(true); } else { return(false); } }