Ejemplo n.º 1
0
        public ActionResult <ViewDto> CreateViewForQuest(int questId, ViewForCreationDto 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 viewEntity = _mapper.Map <Entities.View>(view);

            _croudSeekRepository.AddViewByQuest(questId, viewEntity);
            _croudSeekRepository.Save();

            var viewToReturn = _mapper.Map <ViewDto>(viewEntity);

            return(CreatedAtRoute("GetView",
                                  new { questId = questId,
                                        viewId = viewToReturn.Id },
                                  viewToReturn));
        }