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)); } }
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")); }