public async Task <IActionResult> Description(int cid,
                                                      [FromServices] IProblemFileRepository io)
        {
            var fileInfo = io.GetFileInfo($"c{cid}/readme.md");
            var content  = await fileInfo.ReadAsync();

            return(View(new JuryMarkdownModel {
                Markdown = content
            }));
        }
        public async Task <IActionResult> Description(
            int cid, JuryMarkdownModel model,
            [FromServices] IProblemFileRepository io,
            [FromServices] IMarkdownService md)
        {
            model.Markdown ??= "";
            await io.WriteStringAsync($"c{cid}/readme.md", model.Markdown);

            var document = md.Parse(model.Markdown);
            await io.WriteStringAsync($"c{cid}/readme.html", md.RenderAsHtml(document));

            await HttpContext.AuditAsync("updated", $"{cid}", "description");

            return(View(model));
        }
Exemple #3
0
        public async Task <IActionResult> Info(int cid,
                                               [FromServices] IProblemFileRepository io)
        {
            var affs = await Store.ListAffiliationAsync(cid);

            ViewBag.Affiliations = affs.ToDictionary(a => a.AffiliationId);
            var cats = await Store.ListCategoryAsync(cid);

            ViewBag.Categories = cats.ToDictionary(a => a.CategoryId);

            var fileInfo = io.GetFileInfo($"c{cid}/readme.html");

            ViewBag.Markdown = await fileInfo.ReadAsync();

            return(View());
        }
Exemple #4
0
        public async Task <IActionResult> Home(int cid,
                                               [FromServices] IProblemFileRepository io,
                                               [FromServices] IClarificationStore clars)
        {
            ViewBag.Statistics = await Facade.StatisticAcceptedAsync(cid);

            int?teamid = Team?.TeamId;

            ViewBag.Clarifications =
                await clars.ListAsync(cid, c => c.Recipient == null && c.Sender == null);

            var readme = io.GetFileInfo($"c{cid}/readme.html");

            ViewBag.Markdown = await readme.ReadAsync();

            return(View());
        }
Exemple #5
0
 public TestcaseStore(DbContextAccessor context, IProblemFileRepository fs)
 {
     Context = context;
     Files   = fs;
 }