Example #1
0
        public async Task <IActionResult> CreateSolution(string id, string title, [FromServices] Helpers.ExternalApi Ext, CancellationToken token)
        {
            var passed = await Ext.GetAcceptedProblemsAsync(User.Current.UserName);

            if (!passed.Keys.Contains(id))
            {
                return(Prompt(x =>
                {
                    x.Title = SR["Create solution failed"];
                    x.Details = SR["You have not passed this problem yet."];
                    x.StatusCode = 400;
                }));
            }
            else
            {
                var post = new Post
                {
                    ProblemId    = id,
                    ProblemTitle = passed[id].title,
                    Title        = title,
                    Time         = DateTime.Now,
                    Url          = "joyoi-solution-" + id + "-" + Guid.NewGuid().ToString().Substring(0, 8),
                    UserId       = User.Current.Id,
                    Content      = SR["### Solution\r\n\r\n...\r\n\r\n### Accepted Code\r\n\r\n```\r\n\r\n```"],
                    Summary      = SR["### Solution\r\n\r\n...\r\n\r\n### Accepted Code\r\n\r\n```\r\n\r\n```"]
                };

                DB.Posts.Add(post);
                await DB.SaveChangesAsync(token);

                return(RedirectToAction("Post", "Post", new { id = post.Url }));
            }
        }
Example #2
0
        public async Task <IActionResult> CreateSolution(string id, [FromServices] Helpers.ExternalApi Ext)
        {
            var passed = await Ext.GetAcceptedProblemsAsync(User.Current.UserName);

            if (passed.Keys.Contains(id))
            {
                ViewBag.SolutionTitle = passed[id].title + " - 题解";
                return(View());
            }
            else
            {
                return(Prompt(x =>
                {
                    x.Title = SR["Create solution failed"];
                    x.Details = SR["You have not passed this problem yet."];
                    x.StatusCode = 400;
                }));
            }
        }