コード例 #1
0
ファイル: AdminController.cs プロジェクト: keisenb/hspc-api
        public async Task <object> CreateProblem([FromBody] CreateProblemDto model)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState)); //todo: validate that advanced and beginner are opposite
                }
                var problem = new Problem()
                {
                    Name     = model.Name,
                    Number   = model.Number,
                    Advanced = model.Advanced,
                    Beginner = model.Beginner
                };
                var dbProblem = await _dbContext.Problems.AddAsync(problem);

                _dbContext.Teams
                .Where(x => x.Beginner == model.Beginner)
                .Where(x => x.Advanced == model.Advanced)
                .ToList()
                .ForEach(x => _dbContext.TeamProblems.Add(new TeamProblems()
                {
                    Problem = dbProblem.Entity, Team = x, MarkedForJudging = false
                }));

                await _dbContext.SaveChangesAsync();

                return(Ok(dbProblem.Entity));
            }
            catch (Exception e)
            {
                return(BadRequest(e.Message));
            }
        }
コード例 #2
0
        public async Task <ActionResult <ProblemDto> > CreateProblem(int userId, CreateProblemDto createProblemDto)
        {
            var problem = new Problem
            {
                ProblemText = createProblemDto.ProblemText,
                Steps       = new Collection <ProblemStep>(),
                User        = await _unitOfWork.UserRepository.GetUserByIdAsync(userId)
            };

            _unitOfWork.ProblemRepository.AddItem(problem);
            if (await _unitOfWork.Complete())
            {
                return(Ok(_mapper.Map <ProblemDto>(problem)));
            }

            return(BadRequest("Unable to create Problem"));
        }