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