Ejemplo n.º 1
0
        public async Task <IActionResult> PutProblem(Guid id, [FromBody] ProblemViewModel problem)
        {
            if (id != problem.Id)
            {
                return(BadRequest());
            }
            try {
                Problem newProblem = _mapper.Map <Problem>(problem);
                foreach (var item in problem.ProblemTypes)
                {
                    newProblem.ProblemTypeProblems.Add(new ProblemTypeProblem()
                    {
                        Problem = newProblem, ProblemTypeId = item.Id
                    });
                }
                await _problemService.Change(newProblem);

                newProblem = _problemService.GetProblem(newProblem.Id);
                ProblemViewModel loadedProblem = _mapper.Map <ProblemViewModel>(newProblem);
                loadedProblem.ProblemTypes     = problem.ProblemTypes;
                loadedProblem.SubscribersCount = newProblem.Subscribers.Count;
                return(CreatedAtAction("GetProblem", new { id = newProblem.Id }, loadedProblem));
            } catch (DbUpdateConcurrencyException) {
                if (!_problemService.Exist(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }
        }