public async Task <IActionResult> Submit( [FromServices] ILanguageStore langs) { ViewBag.Language = await langs.ListAsync(); return(Window(new CodeSubmitModel())); }
public async Task <IActionResult> Submit(int pid, [FromServices] ILanguageStore lang) { var prob = await Store.FindAsync(pid); if (prob == null) { return(NotFound()); } if (!prob.AllowSubmit.Value) { return(Message( title: $"Submit Problem {pid}", message: $"Problem {pid} is not allowed for submitting.", MessageType.Danger)); } ViewBag.ProblemTitle = prob.Title; ViewBag.Language = await lang.ListAsync(true); return(Window(new CodeSubmitModel { Code = "", Language = "cpp", ProblemId = pid, })); }
/// <summary> /// Initializes a new instance of the <see cref="EmPageSitemapPattern"/> class. /// </summary> /// <param name="template"></param> /// <param name="languageStore"></param> public EmPageSitemapPattern(string template, ILanguageStore languageStore) { this.Patterns.Add(template); this.Patterns.AddRange(languageStore .GetLanguages() .Where(x => !x.IsDefault) .Select(x => $"/{x.Code}{template}") .ToList()); }
public async Task <IActionResult> Detail( int pid, int sid, int?jid, [FromServices] ILanguageStore langs) { var s = await Submissions.FindAsync(sid, true); if (s == null || s.ProblemId != pid) { return(NotFound()); } var j = s.Judgings.SingleOrDefault(jj => jid.HasValue ? jj.JudgingId == jid : jj.Active); if (j == null) { return(NotFound()); } var l = await langs.FindAsync(s.Language); var det = await Judgings.GetDetailsAsync(pid, j.JudgingId); var uname = await Submissions.GetAuthorNameAsync(sid); return(View(new ViewSubmissionModel { SubmissionId = s.SubmissionId, ContestId = s.ContestId, Status = j.Status, ExecuteMemory = j.ExecuteMemory, ExecuteTime = j.ExecuteTime, Judging = j, Expected = s.ExpectedResult, JudgingId = j.JudgingId, LanguageId = s.Language, Time = s.Time, SourceCode = s.SourceCode, CompileError = j.CompileError, CombinedRunCompare = Problem.CombinedRunCompare, TimeLimit = Problem.TimeLimit, AllJudgings = s.Judgings, UserName = uname ?? "SYSTEM", Details = det, TestcaseNumber = det.Count(), Author = s.Author, ServerName = j.Server ?? "UNKNOWN", LanguageName = l.Name, LanguageExternalId = l.Id, TimeFactor = l.TimeFactor, })); }
public DataImportProvider( IProblemStore store, ILanguageStore languages, IExecutableStore executables, ISubmissionStore submissions, ILogger <DataImportProvider> logger, IStaticFileRepository io2) { Logger = logger; Store = store; Languages = languages; Executables = executables; Submissions = submissions; LogBuffer = new StringBuilder(); StaticFiles = io2; }
public KattisImportProvider( IProblemStore store, ILanguageStore languages, IExecutableStore executables, ISubmissionStore submissions, ILogger <KattisImportProvider> logger, IMarkdownService markdownService, IStaticFileRepository io2) { Logger = logger; Store = store; Languages = languages; Executables = executables; Submissions = submissions; LogBuffer = new StringBuilder(); Markdown = markdownService; StaticFiles = io2; }
public async Task <IActionResult> ChangeExpected( int pid, int sid, [FromServices] ILanguageStore langs) { var sub = await Submissions.FindAsync(sid); if (sub == null || sub.ProblemId != pid) { return(NotFound()); } ViewBag.Languages = await langs.ListAsync(); return(Window(new ChangeExpectedModel { Verdict = !sub.ExpectedResult.HasValue ? -1 : (int)sub.ExpectedResult.Value, Language = sub.Language, })); }
public async Task <IActionResult> Submit( CodeSubmitModel model, [FromServices] ILanguageStore langs) { var lang = await langs.FindAsync(model.Language); if (lang == null) { return(BadRequest()); } var sub = await Submissions.CreateAsync( code : model.Code, language : lang.Id, problemId : Problem.ProblemId, contestId : null, userId : int.Parse(User.GetUserId()), ipAddr : HttpContext.Connection.RemoteIpAddress, via : "polygon-page", username : User.GetUserName(), expected : Verdict.Unknown); return(RedirectToAction(nameof(Detail), new { sid = sub.SubmissionId })); }
public ProductEventsSubscription() { _languageStore = LanguageStores.Get(CommerceInstance.Current.Name); }
public LanguagesController(ILanguageStore store) { Store = store; }
public CachedLanguageStore(ILanguageStore underlyingStore) { _underlyingStore = underlyingStore; ReinitializeCache(); }
public IndexesController() { _languageStore = LanguageStores.Get(CommerceInstance.Current.Name); }
public SitemapComposition(ILanguageStore languageStore, IEntityContext entityContext) { this.languageStore = languageStore; this.entityContext = entityContext; }
public static void Register(string instance, ILanguageStore store) { Remove(instance); _storesByInstance.Add(instance, store); }
public LanguageController() { _languageStore = LanguageStores.Get(CurrentInstance.Name); }
public async Task <ActionResult <int> > InternalError( [FromForm] InternalErrorModel model, [FromServices] IInternalErrorStore store, [FromServices] ILanguageStore langs, [FromServices] IProblemStore probs) { if (!ModelState.IsValid) { return(BadRequest()); } var toDisable = model.disabled.AsJson <InternalErrorDisable>(); var kind = toDisable.kind; var ie = await store.CreateAsync( new InternalError { JudgehostLog = model.judgehostlog, JudgingId = model.judgingid, ContestId = model.cid, Description = model.description, Disabled = model.disabled, Status = InternalErrorStatus.Open, Time = DateTimeOffset.Now, }); if (kind == "language") { var langid = toDisable.langid; await langs.ToggleJudgeAsync(langid, false); Telemetry.TrackDependency( dependencyTypeName: "Language", dependencyName: langid, data: model.description, startTime: DateTimeOffset.Now, duration: TimeSpan.Zero, success: false); } else if (kind == "judgehost") { var hostname = toDisable.hostname; await Judgehosts.ToggleAsync(hostname, false); Telemetry.TrackDependency( dependencyTypeName: "JudgeHost", dependencyName: hostname, data: model.description, startTime: DateTimeOffset.Now, duration: TimeSpan.Zero, success: false); } else if (kind == "problem") { var probid = toDisable.probid.Value; await probs.ToggleJudgeAsync(probid, false); Telemetry.TrackDependency( dependencyTypeName: "Problem", dependencyName: $"p{probid}", data: model.description, startTime: DateTimeOffset.Now, duration: TimeSpan.Zero, success: false); } else { Telemetry.TrackDependency( dependencyTypeName: "Unresolved", dependencyName: kind, data: model.description, startTime: DateTimeOffset.Now, duration: TimeSpan.Zero, success: false); } if (model.judgingid.HasValue) { var(j, pid, cid, uid, time) = await Judgings.FindAsync(model.judgingid.Value); await ReturnToQueue(j, cid, pid, uid, time); } await HttpContext.AuditAsync("added", $"{ie.ErrorId}", $"for {kind}"); return(ie.ErrorId); }
public async Task <IActionResult> Submit( int pid, CodeSubmitModel model, [FromServices] ILanguageStore lang) { if (model.ProblemId != pid) { return(BadRequest()); } // check user blocking if (User.IsInRole("Blocked")) { ModelState.AddModelError("xys::blocked", "You are not permitted to submit code."); } // check problem submit var prob = await Store.FindAsync(pid); if (prob == null) { return(NotFound()); } if (!prob.AllowSubmit.Value) { StatusMessage = $"Problem {pid} is not allowed for submitting."; return(RedirectToAction(nameof(View))); } // check language blocking var langs = await lang.ListAsync(true); if (!langs.Any(a => a.Id == model.Language)) { ModelState.AddModelError("lang::notallow", "You can't submit solutions with this language."); } if (ModelState.ErrorCount > 0) { ViewBag.ProblemTitle = prob.Title; ViewBag.Language = langs; return(View(model)); } else { var sub = await Submits.CreateAsync( code : model.Code, language : model.Language, problemId : prob.ProblemId, contestId : null, userId : int.Parse(User.GetUserId()), ipAddr : HttpContext.Connection.RemoteIpAddress, via : "problem-list", username : User.GetUserName()); int id = sub.SubmissionId; return(RedirectToAction(nameof(View))); } }