Пример #1
0
        public IActionResult Create(SubmissionCreateInputModel input)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.Redirect("/Submissions/Create" + "?id=" + input.ProblemId));
            }

            this.submissionsService.CreateSubmission(input.Code, input.ProblemId, this.User.Id);

            return(this.Redirect("/"));
        }
Пример #2
0
        public HttpResponse Create(SubmissionCreateInputModel input)
        {
            if (!this.IsLoggedIn())
            {
                return(this.Redirect(this.homeUrl));
            }

            var problem = this.problemsService.GetById(input.ProblemId);

            if (problem == null)
            {
                return(this.Redirect(this.homeUrl));
            }

            var errors = new List <string>();

            if (string.IsNullOrWhiteSpace(input.Code))
            {
                errors.Add("Code cannot be empty!");
            }

            int codeLength = input.Code.Length;

            if (codeLength < 30 || codeLength > 800)
            {
                errors.Add("Code should be between 30 and 80 characters!");
            }

            if (errors.Count > 0)
            {
                var errorViewModel = new ErrorViewModel
                {
                    Errors = errors
                };
                return(this.View(errorViewModel, "Error"));
            }

            var currentUser      = this.User;
            var problemMaxPoints = problem.Points;
            var rnd = new Random();

            var submission = new Submission
            {
                Code           = input.Code,
                ProblemId      = input.ProblemId,
                AchievedResult = rnd.Next(0, problemMaxPoints + 1),
                UserId         = currentUser.Id,
            };

            this.submissionsService.Create(submission);
            return(this.Redirect(this.homeUrl));
        }
Пример #3
0
        public IActionResult Create(SubmissionCreateInputModel model)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.Redirect("Submissions/Create"));
            }

            var problem = this.problemService.GetProblemById(model.ProblemId);

            this.submissionService.CreateSubmission(model.ProblemId, model.Code, this.User.Id, problem.Points);

            return(this.Redirect("/"));
        }
Пример #4
0
        public IActionResult Create(SubmissionCreateInputModel model)
        {
            if (!ModelState.IsValid)
            {
                return(Redirect("/Submissions/Create?id=" + model.ProblemId));
            }

            Submission submission = new Submission
            {
                Code      = model.Code,
                ProblemId = model.ProblemId,
                UserId    = this.User.Id,
            };

            submissionsService.Create(submission);

            return(Redirect("/"));
        }
        public HttpResponse Create(SubmissionCreateInputModel model)
        {
            if (!this.IsUserLoggedIn())
            {
                return(this.Redirect("/Users/Login"));
            }

            if (model.Code?.Length < 30 || model.Code?.Length > 800)
            {
                return(this.Redirect($"/Submissions/Create?id={model.ProblemId}"));
            }

            var userId = this.User;

            this.submissionsService.Create(model.Code, model.ProblemId, userId);

            return(this.Redirect("/"));
        }
Пример #6
0
        public string CreateSubmission(string userId, string problemId, SubmissionCreateInputModel model)
        {
            var submission = new Submission
            {
                Code           = model.Code,
                AchievedResult = new Random().Next(0, _dbContext.Problems
                                                   .Where(p => p.Id == problemId)
                                                   .Select(p => p.Points)
                                                   .FirstOrDefault()),
                CreatedOn = DateTime.Now,
                User      = _dbContext.Users.FirstOrDefault(u => u.Id == userId),
                Problem   = _dbContext.Problems.FirstOrDefault(p => p.Id == problemId),
                Id        = Guid.NewGuid().ToString(),
            };

            _dbContext.Submissions.Add(submission);
            _dbContext.SaveChanges();

            return(submission.Id);
        }
Пример #7
0
        public IActionResult Create(SubmissionCreateInputModel input)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.Redirect("/Submissions/Create"));
            }

            Submission submission = new Submission
            {
                UserId         = this.User.Id,
                CreatedOn      = DateTime.UtcNow,
                Code           = input.Code,
                ProblemId      = input.ProblemId,
                AchievedResult = new Random().Next(0, 300)
            };

            this.submissionService.Create(submission);

            return(this.Redirect("/Home/IndexLoggedIn"));
        }
Пример #8
0
        public HttpResponse Create(string problemId, string code)
        {
            if (!IsUserSignedIn())
            {
                return(Redirect("/Users/Login"));
            }

            var submission = new SubmissionCreateInputModel
            {
                Code = code
            };

            var validation = ValidationHelper.IsValid(submission);

            if (!validation.result)
            {
                return(Error(validation.errorMessage));
            }

            _submissionService.CreateSubmission(GetUserId(), problemId, submission);

            return(Redirect("/"));
        }
Пример #9
0
        public IActionResult Create(SubmissionCreateInputModel model)
        {
            if (!ModelState.IsValid)
            {
                return(this.Redirect($"/Submissions/Create?id={model.ProblemId}"));
            }

            var random             = new Random();
            var problemTotalPoints = this.problemService.GetProblemById(model.ProblemId).Points;

            var submission = new Submission
            {
                Code           = model.Code,
                AchievedResult = random.Next(0, problemTotalPoints),
                CreatedOn      = DateTime.UtcNow,
                ProblemId      = model.ProblemId,
                UserId         = this.User.Id
            };

            this.submissionService.Create(submission);

            return(this.Redirect("/"));
        }