Ejemplo n.º 1
0
        public ActionResult <ViewDto> UpdateViewForQuest(int questId, int viewId, ViewForUpdateDto view)
        {
            if (!_croudSeekRepository.QuestExists(questId))
            {
                return(NotFound());
            }
            if (view == null)
            {
                return(NotFound());
            }
            if (view.UserWeights != null
                &&
                view.UserWeights.Select((w) => w.UserId).Distinct().Count() != view.UserWeights.Count
                )
            {
                ModelState.AddModelError("UserWeights",
                                         "There can only be one UserWeight per User.");
            }
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var viewFromRepo = _croudSeekRepository.GetViewByQuest(questId, viewId, true);

            if (viewFromRepo == null)
            {
                return(NotFound());
            }
            _mapper.Map(view, viewFromRepo);

            viewFromRepo.QuestId = questId;

            _croudSeekRepository.UpdateView(viewFromRepo);

            _croudSeekRepository.Save();

            return(NoContent());
        }