示例#1
0
        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();
            }
        }
示例#2
0
        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);
        }
示例#3
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());
        }