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 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)); }
//deprecated public static Boolean submitTextAssignmentService(long selectedAssignmentId, SubmissionGrades submissionGrade, ApplicationDbContext context) { bool hasAssignment = context.Assignments.Any(x => x.AssignmentId == selectedAssignmentId); if (hasAssignment) { context.SubmissionGrades.Add(submissionGrade); //save changes to database context.SaveChanges(); return(true); } else { return(false); } }
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); } }