public byte[] GetDecryptedAssignment(Guid submissionId) { SubmissionViewModel submission = _assignmentsService.GetSubmission(submissionId); FileStream fs = new FileStream(submission.FilePath, FileMode.Open, FileAccess.Read); MemberViewModel teacher = _membersService.GetMember(submission.Member.TeacherEmail); byte[] key = CryptographicHelper.AsymmetricDecrypt( Convert.FromBase64String(submission.SymmetricKey), teacher.PrivateKey); byte[] iv = CryptographicHelper.AsymmetricDecrypt( Convert.FromBase64String(submission.SymmetricIV), teacher.PrivateKey); MemoryStream ms = new MemoryStream(); fs.CopyTo(ms); byte[] encryptedAssignment = ms.ToArray(); byte[] decryptedAssignment = CryptographicHelper.SymmetricDecrypt( encryptedAssignment, key, iv); return(decryptedAssignment); }
public async Task <IActionResult> OnGetAsync(string id) { if (string.IsNullOrEmpty(id)) { return(NotFound()); } var sub = await _context.Submissions.Include(m => m.Location).FirstOrDefaultAsync(m => m.StringId.ToString() == id); Submission = new SubmissionViewModel { Id = sub.Id, Talent = sub.Talent, Email = sub.Email, FileName = sub.FileName, FirstName = sub.FirstName, LastName = sub.LastName, LocationName = sub.Location.Name, ManagerName = sub.ManagerName, PhoneNumber = sub.PhoneNumber, DateCreated = sub.DateCreated }; if (Submission == null) { return(NotFound()); } return(Page()); }
/// <summary> /// Returns all submissions from all users for a specific milestone. /// </summary> public SubmissionViewModel GetSubmissionByIdMilestoneID(int MileID) { var submission = _db.Submission.SingleOrDefault(x => x.MilestoneID == MileID); if (submission == null) { return(null); } var ViewModel = new SubmissionViewModel { UserName = submission.UserName, AssignmentID = submission.AssignmentID, MilestoneID = submission.MilestoneID, Output = submission.Output, Error = submission.Error, FilePath = submission.FilePath, Grade = submission.Grade, Status = submission.Status, DrMemory = submission.DrMemory, ToSubmit = submission.ToSubmit, Comment = submission.Comment }; return(ViewModel); }
public void SaveCodeToDb(SubmissionViewModel viewModel) { SubmissionViewModel Model = CompileCode(viewModel); if (Model != null) { var model = new Submission { AssignmentID = Model.AssignmentID, Date = DateTime.Now, ProjectID = Model.ProjectID, StudentID = Model.StudentID, SubmittedCode = Model.SubmittedCode, SubmissionOutput = Model.SubmissionOutput, ExpectedSubmissionOutput = Model.ExpectedSubmissionOutput, }; if (viewModel.ExpectedSubmissionOutput == viewModel.SubmissionOutput) { model.Result = "Accepted!"; } else { model.Result = "Wrong answer!"; } _db.Submissions.Add(model); _db.SaveChanges(); } else { throw new ArgumentNullException(); } }
// GET: Submissions/Details/5 public async Task <IActionResult> Details(int?id) { if (id == null) { return(NotFound()); } var submission = await _context.Submissions .Include(s => s.AE) .Include(s => s.Manuscript) .SingleOrDefaultAsync(m => m.Id == id); SubmissionViewModel SubmissionVM = new SubmissionViewModel() { Submission = await _context.Submissions.Include(s => s.AE).Include(s => s.Manuscript).SingleOrDefaultAsync(m => m.Id == id), Submissions = _context.Submissions.Include(a => a.AE).Include(a => a.AE.ApplicationUser).Where(a => a.ManuscriptId == submission.ManuscriptId), SubmissionReviewers = _context.SubmissionReviewers.Include(a => a.ReviewerUser).Include(a => a.CieAeUser).Where(a => a.SubmissionId == submission.Id), }; if (submission == null) { return(NotFound()); } return(View(SubmissionVM)); }
public IActionResult Index([FromForm] SubmissionViewModel viewModel) { if (!ModelState.IsValid) { viewModel.Errors = "Some errors were detected in your submission. Please correct any field errors and re-submit."; return(View(viewModel)); } var employees = ReadEmployeesFromViewModel(viewModel); if (employees != null) { var employeesList = employees.ToList(); try { GeneratePayslips(employeesList, viewModel); } catch (Exception e) { _logger.LogError(e, "Error generating Payslips from uploaded Employee file"); viewModel.Errors = $"Error generating Payslips from uploaded Employee file: {e.Message}"; return(View(viewModel)); } viewModel.Employees = employeesList.Select(e => new EmployeeViewModel(e)); } return(View(viewModel)); }
public ValidationResult IsValid(SubmissionViewModel submissionViewModel) { //TODO need to add validation here return(new ValidationResult { IsValid = true, ErrorMessage = string.Empty }); }
public IActionResult Upload(string idEnc) { SubmissionViewModel myModel = new SubmissionViewModel(); myModel.TaskId = idEnc; return(View(myModel)); }
public IActionResult Upload(SubmissionViewModel newSub) { var tasks = _tasksService.GetTasks(); ViewBag.Tasks = tasks; newSub.Id = new Guid(); newSub.Owner = HttpContext.User.Identity.Name; newSub.TimeSubmitted = DateTime.Now; if (string.IsNullOrEmpty(newSub.FileName)) { _logger.LogError("Title is empty or NULL"); return(View("Error", new ErrorViewModel() { Message = "Title cannot be empty" })); } else { TempData["message"] = "Task created successfully"; _submissionService.AddSubmission(newSub); return(View()); } }
// GET: Submissions/Create public IActionResult Create(int mid) { var manuscript = _context.Manuscripts.SingleOrDefault(a => a.Id == mid); var jid = manuscript.JournalId; if (_context.Submissions.Where(a => a.ManuscriptId == mid).Count() > 0) { var submission = _context.Submissions.SingleOrDefault(a => a.ManuscriptId == mid); ViewData["sid"] = submission.Id; } if (manuscript.CurrentStatus != ManuscriptCurrentStatus.InComplete) { return(NotFound()); } SubmissionViewModel SubmissionVM = new SubmissionViewModel() { Submissions = _context.Submissions.Where(a => a.ManuscriptId == mid), ArticleAuthorships = _context.ArticleAuthorships.Include(a => a.AuthorUser).Where(a => a.ManuscriptId == mid), Manuscripts = _context.Manuscripts.Where(a => a.Id == mid), SuggestedReviewers = _context.SuggestedReviewers.Where(a => a.ManuscriptId == mid), SubmissionFiles = _context.SubmissionFiles.Where(a => a.Submission.ManuscriptId == mid), JournalFileTypes = _context.JournalFileTypes.Where(a => a.JournalId == jid), }; ViewData["mid"] = mid; ViewData["AEId"] = new SelectList(_context.AreaEditors, "Id", "Description"); ViewData["ManuscriptId"] = new SelectList(_context.Manuscripts.Where(a => a.Id == mid), "Id", "ArTitle"); return(View(SubmissionVM)); }
// GET: Submissions/AddAreaEditor/5 public async Task <IActionResult> AddAreaEditor(int?id) { if (id == null) { return(NotFound()); } var submission = await _context.Submissions.Include(a => a.Manuscript.Journal).SingleOrDefaultAsync(m => m.Id == id); ViewData["mid"] = submission.ManuscriptId; ViewData["jid"] = submission.Manuscript.JournalId; ViewData["sid"] = submission.Id; var manuscript = _context.Manuscripts.Include(a => a.CorrespondingAuthor).Single(a => a.Id == submission.ManuscriptId); var articleauthorships = _context.ArticleAuthorships.Where(a => a.ManuscriptId == submission.ManuscriptId); SubmissionViewModel SubmissionVM = new SubmissionViewModel() { Submission = await _context.Submissions.Include(a => a.AE.ApplicationUser).SingleOrDefaultAsync(m => m.Id == id), Submissions = _context.Submissions.Where(a => a.ManuscriptId == submission.ManuscriptId), }; if (submission == null) { return(NotFound()); } ViewData["AEId"] = new SelectList(_context.AreaEditors.Include(a => a.ApplicationUser).Where(a => a.JournalId == submission.Manuscript.JournalId && articleauthorships.Where(m => m.AuthorUserId == a.ApplicationUserId).Count() == 0 && a.IsActive == true && a.ApplicationUserId != manuscript.CorrespondingAuthorId), "Id", "ApplicationUser.ArName", submission.AEId); ViewData["ManuscriptId"] = new SelectList(_context.Manuscripts.Where(a => a.Id == submission.ManuscriptId), "Id", "ArTitle", submission.ManuscriptId); return(View(SubmissionVM)); }
/// <summary> /// Returns the submission with the given id from the database /// </summary> /// <param name="id"></param> /// <returns>The student view model object</returns> public SubmissionViewModel GetSubmissionById(Guid id) { Submission submissionEntity = this._submissionRepository.GetSubmissionById(id); if (submissionEntity == null) { throw new InvalidOperationException($"Submision with id {id} not found"); } List <CommentViewModel> Comments = _commentRepository.Query() .Where(comm => comm.ParentSubmission.Id == submissionEntity.Id) .OrderBy(comm => Math.Abs(comm.Upvotes - comm.Downvotes)) .Select(commentEntity => new CommentViewModel { Id = commentEntity.Id, Text = commentEntity.Text, Upvotes = commentEntity.Upvotes, Downvotes = commentEntity.Downvotes, AuthorName = commentEntity.Author.Name, AuthorId = commentEntity.Author.Id, NrOfReplies = commentEntity.NrOfReplies }).ToList(); SubmissionViewModel submissionModel = new SubmissionViewModel { Id = submissionEntity.Id, Content = submissionEntity.Content, Title = submissionEntity.Title, Upvotes = submissionEntity.Upvotes, Downvotes = submissionEntity.Downvotes, AuthorName = submissionEntity.Author.Name, AuthorId = submissionEntity.Author.Id, Comments = Comments }; return(submissionModel); }
// GET: Submissions/SentBackToAuthor/5 public async Task <IActionResult> SentBackToAuthor(int?id) { if (id == null) { return(NotFound()); } var submission = await _context.Submissions.Include(a => a.Manuscript).SingleOrDefaultAsync(m => m.Id == id); ViewData["mid"] = submission.ManuscriptId; ViewData["jid"] = submission.Manuscript.JournalId; ViewData["sid"] = submission.Id; var manuscript = _context.Manuscripts.Single(a => a.Id == submission.ManuscriptId); SubmissionViewModel SubmissionVM = new SubmissionViewModel() { Submission = await _context.Submissions.SingleOrDefaultAsync(m => m.Id == id), Submissions = _context.Submissions.Where(a => a.ManuscriptId == submission.ManuscriptId), ArticleAuthorships = _context.ArticleAuthorships.Include(a => a.AuthorUser).Where(a => a.ManuscriptId == submission.ManuscriptId), Manuscripts = _context.Manuscripts.Where(a => a.Id == submission.ManuscriptId), SuggestedReviewers = _context.SuggestedReviewers.Where(a => a.ManuscriptId == submission.ManuscriptId), SubmissionFiles = _context.SubmissionFiles.Where(a => a.Submission.ManuscriptId == submission.ManuscriptId), JournalFileTypes = _context.JournalFileTypes.Where(a => a.JournalId == submission.Manuscript.JournalId), }; if (submission == null) { return(NotFound()); } ViewData["AEId"] = new SelectList(_context.AreaEditors, "Id", "Description", submission.AEId); ViewData["ManuscriptId"] = new SelectList(_context.Manuscripts.Where(a => a.Id == submission.ManuscriptId), "Id", "ArTitle", submission.ManuscriptId); return(View(SubmissionVM)); }
// GET: Submissions/Edit/5 public async Task <IActionResult> EditResubmission(int?id) { if (id == null) { return(NotFound()); } var submission = await _context.Submissions.Include(a => a.Manuscript).SingleOrDefaultAsync(m => m.Id == id); ViewData["mid"] = submission.ManuscriptId; ViewData["jid"] = submission.Manuscript.JournalId; ViewData["sid"] = submission.Id; var manuscript = _context.Manuscripts.Single(a => a.Id == submission.ManuscriptId); if (manuscript.CurrentStatus != ManuscriptCurrentStatus.SubmissionsBeingProcessed) { return(NotFound()); } SubmissionViewModel SubmissionVM = new SubmissionViewModel() { Submission = await _context.Submissions.SingleOrDefaultAsync(m => m.Id == id), Submissions = _context.Submissions.Where(a => a.ManuscriptId == submission.ManuscriptId), SubmissionFiles = _context.SubmissionFiles.Where(a => a.SubmissionId == submission.Id), JournalFileTypes = _context.JournalFileTypes.Where(a => a.JournalId == submission.Manuscript.JournalId), }; if (submission == null) { return(NotFound()); } ViewData["AEId"] = new SelectList(_context.AreaEditors, "Id", "Description", submission.AEId); ViewData["ManuscriptId"] = new SelectList(_context.Manuscripts.Where(a => a.Id == submission.ManuscriptId), "Id", "ArTitle", submission.ManuscriptId); return(View(SubmissionVM)); }
// GET: Submissions/Create public IActionResult Resubmission(int mid) { var manuscript = _context.Manuscripts.SingleOrDefault(a => a.Id == mid); var jid = manuscript.JournalId; ViewData["jid"] = jid; if (manuscript.CurrentStatus != ManuscriptCurrentStatus.SubmissionsBeingProcessed || manuscript.CorrespondingAuthorId != _userManager.GetUserId(User)) { return(NotFound()); } SubmissionViewModel SubmissionVM = new SubmissionViewModel() { Submissions = _context.Submissions.Where(a => a.ManuscriptId == mid), ArticleAuthorships = _context.ArticleAuthorships.Include(a => a.AuthorUser).Where(a => a.ManuscriptId == mid), Manuscripts = _context.Manuscripts.Where(a => a.Id == mid), SuggestedReviewers = _context.SuggestedReviewers.Where(a => a.ManuscriptId == mid), SubmissionFiles = _context.SubmissionFiles.Where(a => a.Submission.ManuscriptId == mid), JournalFileTypes = _context.JournalFileTypes.Where(a => a.JournalId == jid), }; ViewData["mid"] = mid; ViewData["AEId"] = new SelectList(_context.AreaEditors, "Id", "Description"); ViewData["ManuscriptId"] = new SelectList(_context.Manuscripts.Where(a => a.Id == mid), "Id", "ArTitle"); return(View(SubmissionVM)); }
public ActionResult StudentSubmit(MilestoneViewModel model, HttpPostedFileBase ZipFile) { if (ZipFile != null) { var ZipType = "zip"; var ZipEnding = System.IO.Path.GetExtension(ZipFile.FileName).Substring(1); if (!ZipType.Contains(ZipEnding)) { return(RedirectToAction("StudentMilestones", "User", new { id = model.ID, SubID = model.SubmissionID })); } SubmissionViewModel submission = new SubmissionViewModel(); try { // compiler called submission = US.StudentCompile(model, ZipFile); } catch { // return error, compile failed, invalid file? throw new Exception(); } submission.Grade = Math.Round(LS.CalculateSimilarity(submission.Output, model.Output) * 10, 2); submission.Status = false; if (submission.Output == model.Output) { submission.Status = true; } // checks for dr.memory error if (!submission.DrMemory.Contains("NO ERRORS FOUND:")) { submission.Grade = submission.Grade - 1; submission.Status = false; } SS.AddSubmission(submission); var ViewModel = US.GetUserOverviewByUserName(User.Identity.GetUserName(), model.CourseID); if (ViewModel.Submissions != null) { foreach (var m in ViewModel.Submissions) { m.AssignmentName = AS.GetAssignmentByID(m.AssignmentID).Name; } } // auto grading system, checks which submission is the best. if (ViewModel.Assignments != null) { foreach (var ass in ViewModel.Assignments) { var submissions = ViewModel.Submissions.Where(x => x.AssignmentID == ass.ID).ToList(); ass.Grade = AS.GetGradeForAssignment(ass.Milestones, submissions); } } } return(RedirectToAction("StudentMilestones", "User", new { id = model.ID, SubID = model.SubmissionID })); }
/// <summary> /// Function that uses the compiler, teacher uploads .zip that has /// code to create new milestone for the students to solve. /// Optionally input file can also be uploaded. /// </summary> public MilestoneViewModel CompileMilestoneUpload(MilestoneViewModel model, HttpPostedFileBase ZipFile, HttpPostedFileBase TxtFile) { var TheUser = Ident.GetUser(model.UserModel.Name); SubmissionViewModel SVM = new SubmissionViewModel(); if (TxtFile != null) { // Reads the textfile into the model. string result = new StreamReader(TxtFile.InputStream).ReadToEnd(); SVM.Input = result; model.Input = result; } if (ZipFile != null) { // The directory the milestone .zip file will be saved in. string UserDirectory = UserDataDir + "\\" + TheUser.Id + "\\" + model.AssignmentID + "\\" + model.ID; // creates the directory. if (!Directory.Exists(UserDirectory)) { Directory.CreateDirectory(UserDirectory); } var fileName = Path.GetFileName(ZipFile.FileName); var path = UserDirectory + "\\" + fileName; // If the teacher uploads the same .zip file again for a specific milestone // then it will be replaced. try { if (File.Exists(path)) { File.Delete(path); } ZipFile.SaveAs(Path.GetFullPath(path)); } catch { // user probably pressed upload twice, nothing to worry about. } SVM.UserName = model.UserModel.Name; SVM.AssignmentID = model.AssignmentID; SVM.MilestoneID = model.ID; SVM.FilePath = fileName; CompilerService CS = new CompilerService(); // compiler service called. var compiled = CS.Compile(SVM); model.Output = compiled.Output; model.DrMemory = compiled.DrMemory; } return(model); }
public async Task <IActionResult> FinalShow(int?id) { if (id == null) { return(NotFound()); } var submission = await _context.Submissions.Include(a => a.Manuscript).SingleOrDefaultAsync(m => m.Id == id); ViewData["mid"] = submission.ManuscriptId; ViewData["jid"] = submission.Manuscript.JournalId; ViewData["sid"] = submission.Id; var manuscript = _context.Manuscripts.Single(a => a.Id == submission.ManuscriptId); if ((manuscript.CurrentStatus != ManuscriptCurrentStatus.InComplete && manuscript.CurrentStatus != ManuscriptCurrentStatus.SubmissionSentBackToAuthor) || manuscript.CorrespondingAuthorId != _userManager.GetUserId(User)) { return(NotFound()); } if (submission != null) { var sub = _context.Submissions.SingleOrDefault(a => a.ManuscriptId == manuscript.Id && a.SubmissionStatus == SubmissionStatus.Submitted); var requiredjournaliles = _context.JournalFileTypes.Include(a => a.FileType).Where(a => a.JournalId == manuscript.JournalId && a.IsRequired == true && a.IsDeleted == false); var requiredsubmissionfiles = _context.SubmissionFiles.Include(a => a.JournalFileType).Where(a => a.SubmissionId == sub.Id && requiredjournaliles.Where(m => m.FileTypeId == a.JournalFileType.FileTypeId && a.JournalFileType.FileType != null).Count() > 0); if (requiredjournaliles.Count() == requiredsubmissionfiles.Count()) { ViewData["subfiles"] = "true"; } else { ViewData["subfiles"] = "false"; } } SubmissionViewModel SubmissionVM = new SubmissionViewModel() { Submission = await _context.Submissions.SingleOrDefaultAsync(m => m.Id == id), Submissions = _context.Submissions.Where(a => a.ManuscriptId == submission.ManuscriptId), ArticleAuthorships = _context.ArticleAuthorships.Include(a => a.AuthorUser).Include(a => a.Country).Include(a => a.University).Where(a => a.ManuscriptId == submission.ManuscriptId), Manuscripts = _context.Manuscripts.Include(a => a.Journal).Include(a => a.JournalArticleType).Include(a => a.Speciality).Include(a => a.SubmittedforIssue).Where(a => a.Id == submission.ManuscriptId), SuggestedReviewers = _context.SuggestedReviewers.Include(a => a.ReviewerUser).Where(a => a.ManuscriptId == submission.ManuscriptId), SubmissionFiles = _context.SubmissionFiles.Include(a => a.JournalFileType.FileType).Where(a => a.Submission.ManuscriptId == submission.ManuscriptId), JournalFileTypes = _context.JournalFileTypes.Where(a => a.JournalId == submission.Manuscript.JournalId), Manuscript = _context.Manuscripts.Include(a => a.Journal).Include(a => a.JournalArticleType.ArticleType).Include(a => a.Speciality).Include(a => a.SubmittedforIssue).SingleOrDefault(a => a.Id == manuscript.Id) }; if (submission == null) { return(NotFound()); } var requiredjournalfiles = _context.JournalFileTypes.Include(a => a.FileType).Where(a => a.JournalId == manuscript.JournalId && a.IsRequired == true && a.IsDeleted == false); var requiredsubmissionfile = _context.SubmissionFiles.Include(a => a.JournalFileType).Where(a => a.SubmissionId == submission.Id && requiredjournalfiles.Where(m => m.FileTypeId == a.JournalFileType.FileTypeId && a.JournalFileType.FileType != null).Count() > 0); if (_context.Manuscripts.Where(a => a.Id == manuscript.Id).Count() == 0 || _context.ArticleAuthorships.Where(a => a.ManuscriptId == manuscript.Id).Count() == 0 || requiredjournalfiles.Count() < requiredsubmissionfile.Count()) { return(NotFound()); } ViewData["AEId"] = new SelectList(_context.AreaEditors, "Id", "Description", submission.AEId); ViewData["ManuscriptId"] = new SelectList(_context.Manuscripts.Where(a => a.Id == submission.ManuscriptId), "Id", "ArTitle", submission.ManuscriptId); return(View(SubmissionVM)); }
public ActionResult EditSubmission(SubmissionViewModel submission) { if (Guid.Parse(User.Identity.GetUserId()) == submission.AuthorId) { this._submissionService.UpdateSubmission(submission); } return(RedirectToAction("SubmissionList")); }
public void AddSubmission(SubmissionViewModel model) { var sub = _autoMapper.Map <Submission>(model); sub.TaskId = sub.task.id; sub.task = null; _submissionRepo.AddSubmission(sub); }
public ActionResult Other(SubmissionViewModel submission) { Submission newSubmission = new Submission { MilestoneID = submission.MilestoneID, IsAccepted = submission.IsAccepted, SolutionOutput = "", UserID = User.Identity.GetUserId(), Code = submission.Code, ExpectedOutput = "" }; db.Submission.Add(newSubmission); return(View(submission)); }
public void AddSubmission(SubmissionViewModel model) { var submission = _autoMapper.Map <Submission>(model); submission.TaskFK = submission.Task.Id; submission.Task = null; _subrepo.AddSubmission(submission); }
/// <summary> /// A function that checks if a regex string validates for given ///input/output pairs /// </summary> public ActionResult RegexTest(SubmissionViewModel submission) { Regex passPattern = new Regex(submission.Code); List <List <string> > excpectedData = sService.GetExpectedRegex(submission.MilestoneID); string entityOutput = "Accepted strings:"; string entityExpected = "Accepted strings:"; submission.SolutionOutput.Add("Accepted strings:"); submission.ExpectedOutput.Add("Accepted strings:"); foreach (var item in excpectedData[0]) { submission.SolutionOutput.Add(item); entityOutput += item; if (!passPattern.IsMatch(item)) { submission.ExpectedOutput.Add("Your regex does not accept the string " + item); entityExpected += "Your regex does not accept the string " + item + '\n'; submission.IsAccepted = false; Submission newData = new Submission { MilestoneID = submission.MilestoneID, IsAccepted = submission.IsAccepted, SolutionOutput = entityOutput, UserID = User.Identity.GetUserId(), Code = submission.Code, ExpectedOutput = entityExpected }; db.Submission.Add(newData); db.SaveChanges(); return(View(submission)); } submission.ExpectedOutput.Add(item); entityExpected += item + '\n'; } submission.SolutionOutput.Add("Not accepted strings:"); entityOutput += "Not accepted strings: \n"; foreach (var item in excpectedData[1]) { submission.SolutionOutput.Add(item); entityOutput += item + "\n"; if (passPattern.IsMatch(item)) { submission.ExpectedOutput.Add("Your regex accepts the string " + item); entityOutput += "Your regex accepts the string " + item + "\n"; submission.IsAccepted = false; Submission newData = new Submission { MilestoneID = submission.MilestoneID, IsAccepted = submission.IsAccepted, SolutionOutput = entityExpected, UserID = User.Identity.GetUserId(), Code = submission.Code, ExpectedOutput = entityExpected }; db.Submission.Add(newData); return(View(submission)); } submission.ExpectedOutput.Add(item); entityExpected += item + '\n'; } Submission newSubmission = new Submission { MilestoneID = submission.MilestoneID, IsAccepted = submission.IsAccepted, SolutionOutput = entityExpected, UserID = User.Identity.GetUserId(), Code = submission.Code, ExpectedOutput = entityExpected }; db.Submission.Add(newSubmission); submission.IsAccepted = true; return(View(submission)); }
public IActionResult Create(string id) { var createSubmissionView = new SubmissionViewModel { Name = this.problemsService.GetProblemName(id), ProblemId = id, }; return(this.View(createSubmissionView)); }
public ActionResult TeacherComment(SubmissionViewModel sub) { if (!ModelState.IsValid) { sub.UserModel = US.GetUserOverviewByUserName(User.Identity.GetUserName(), sub.CourseID); return(View(sub)); } TS.TeacherComment(sub.Comment, sub.ID, sub.Grade); return(RedirectToAction("StudentMilestones", "User", new { id = sub.MilestoneID })); }
public ActionResult SubmitGrade(SubmissionViewModel submission) { Solution solution = (from s in db.Solutions where s.SubmissionID == submission.ID select s).FirstOrDefault(); solution.Grade = submission.Grade; db.SaveChanges(); //await db.SaveChangesAsync(); int assignmentID = (from m in db.Milestones where m.ID == submission.MilestoneID select m.AssignmentID).FirstOrDefault(); return(RedirectToAction("AllSolutions", new { id = assignmentID })); }
public ActionResult OtherWithTests(SubmissionViewModel submission) { Submission newSubmission = new Submission { MilestoneID = submission.MilestoneID, IsAccepted = submission.IsAccepted, UserID = User.Identity.GetUserId(), Code = submission.Code }; db.Submission.Add(newSubmission); submission.SolutionOutput[0] = submission.Code; submission.ExpectedOutput[0] = sService.GetTestCase(submission.MilestoneID); return(View(submission)); }
/// <summary> /// Updates existing submission /// </summary> /// <param name="submissionViewModel">The submission view model</param> public void UpdateSubmission(SubmissionViewModel submissionViewModel) { Submission submissionEntityToUpdate = this._submissionRepository.GetSubmissionById(submissionViewModel.Id); submissionEntityToUpdate.Title = submissionViewModel.Title; submissionEntityToUpdate.Content = submissionViewModel.Content; submissionEntityToUpdate.Upvotes = submissionViewModel.Upvotes; submissionEntityToUpdate.Downvotes = submissionViewModel.Downvotes; this._submissionRepository.SaveChanges(); }
public IActionResult Create(string id) { var problem = this.problemService.GetProblemById(id); var problemViewModel = new SubmissionViewModel { Name = problem.Name, ProblemId = problem.Id }; return(this.View(problemViewModel)); }
public ActionResult SubmissionDetails(Guid id) { if (!isLoggedRegisteredInDb()) { return(RedirectToAction("CreateUser", "User")); } SubmissionViewModel submission = this._submissionService.GetSubmissionById(id); ViewBag.userName = this._userService.GetUserById(submission.AuthorId).Name; return(View(submission)); }