コード例 #1
0
ファイル: QuestsController.cs プロジェクト: wiwichu/CroudSeek
        public IActionResult GetQuest(int questId)
        {
            var user       = User.Claims.FirstOrDefault(x => x.Type == ClaimTypes.NameIdentifier)?.Value;
            var userEntity = _croudSeekRepository.GetUsers().Where((u) => u.Name == user).FirstOrDefault();

            var questFromRepo = _croudSeekRepository.GetQuest(questId);

            if (questFromRepo == null)
            {
                return(NotFound());
            }
            if (!(questFromRepo.OwnerId == userEntity?.Id || !questFromRepo.IsPrivate))
            {
                return(Unauthorized());
            }

            var questDto = _mapper.Map <QuestDto>(questFromRepo);

            var questUserEntity = _croudSeekRepository.GetUser(questDto.OwnerId);

            questDto.CanEdit = true;
            questDto.IsOwner = questUserEntity?.Name == user;

            return(Ok(questDto));
        }