public async Task <IActionResult> Create(int assignmentId, EditSubmissionModel model, ICollection <IFormFile> files) { if (files.Count == 0) { return(new BadRequestObjectResult(new { error = "No files selected" })); } var user = User.Claims.FirstOrDefault(c => c.Type.Equals("name"))?.Value; // TODO: Validate user var submission = new Submission { AssignmentId = assignmentId, FirstName = model.FirstName, LastName = model.LastName }; // save submission first if (!await this.submissionManager.SaveSubmissionAsync(submission)) { return(BadRequest()); } var submissionFiles = new List <StudentFile>(); // add files: // TODO: Check for supported File Extensions foreach (var file in files) { var submissionFile = new StudentFile { SubmissionId = submission.Id, FileName = file.FileName }; // TODO: Check encoding etc. Assume UTF-8 for now using (var fileStream = file.OpenReadStream()) { var buffer = new byte[fileStream.Length]; fileStream.Read(buffer, 0, int.MaxValue); var content = System.Text.Encoding.UTF8.GetString(buffer); submissionFile.Content = content; } submissionFiles.Add(submissionFile); } await this.submissionManager.SaveFilesAsync(submissionFiles); var accessToken = await HttpContext.Authentication.GetTokenAsync("access_token"); Task.Run(() => this.serviceConsumer.TokenizeSubmissions(submission.Id, user, accessToken)); return(RedirectToAction("Index", new { assignmentId = assignmentId })); }
public ActionResult Index(string shortName, EditSubmissionModel model) { return(Content(model.submission.Title)); }