protected override async Task OnInitializedAsync() { Saved = false; int.TryParse(QuestId, out var questId); int.TryParse(ViewId, out var viewId); Quests = (await QuestDataService.GetAllQuests()).ToList(); if (questId != 0) { IsEdit = true; QuestId = questId.ToString(); } if (viewId == 0) //new quest is being created { //add some defaults View = new ViewForUpdateDto { IsPrivate = false, Age = -1 }; } else { ViewDto = await ViewDataService.GetViewById(questId, viewId, true); View = Mapper.Map <ViewForUpdateDto>(ViewDto); Title = $"Details for {View.Description}"; } if (questId == 0 && Quests?.Count > 0) { QuestId = Quests[0].Id.ToString(); } }
public async Task <HttpResponseMessage> UpdateView(ViewForUpdateDto view, int viewId, int questId) { var json = JsonSerializer.Serialize(view); var viewJson = new StringContent(json, Encoding.UTF8, "application/json"); var url = $"api/quests/{questId}/views/{viewId}"; var result = await _httpClient.PutAsync(url, viewJson); if (result.IsSuccessStatusCode) { return(result); } return(null); }
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()); }