public async Task <IActionResult> OnPostAsync([FromForm] string source) { Task = await db.Tasks.FindAsync(TaskId); if (Task == null) { return(NotFound()); } var authorId = (uint)HttpContext.Session.GetInt32("username"); var filename = $"{Task.Id}_{authorId}_{Language.ToString()}"; var path = Path.Combine(env.ContentRootPath, "storage", "sources", filename); var i = 1; while (System.IO.File.Exists($"{path}_{i}{LanguageExtension}")) { i++; } filename += $"_{i}{LanguageExtension}"; path += $"_{i}{LanguageExtension}"; var submission = new Models.Submission { Task = Task, AuthorId = authorId, Sequence = (uint)i, Working = true, Error = "", Language = Language, Filename = filename, }; using (var fs = new FileStream(path, FileMode.CreateNew, FileAccess.Write)) using (var sw = new StreamWriter(fs, new UTF8Encoding(false))) { await sw.WriteAsync(source); } submission.Size = (uint)new FileInfo(path).Length; db.Submissions.Add(submission); await db.SaveChangesAsync(); queue.QueueBackgroundWorkItem(submission); return(RedirectToPage("/Submissions/Index", new { taskId = TaskId, })); }
public async Task <ActionResult> OnPostAsync(uint submissionId) { var submission = await db.Submissions.FindAsync(submissionId); if (submission == null) { return(NotFound()); } submission.Status = Models.Submission.StatusCode.SuccessOrInitialization; submission.Score = 0; submission.Working = true; await db.SaveChangesAsync(); queue.QueueBackgroundWorkItem(submission); return(RedirectToPage("/Submissions/Read", new { submissionId, })); }