コード例 #1
0
        public async Task <IActionResult> CompleteChallenge([FromBody] ChallegeCompletionViewModel completedChallengeViewModel)
        {
            try
            {
                var challenge = await _challengeRepository.FindChallenge(completedChallengeViewModel.ChallengeId);

                if (challenge == null)
                {
                    return(BadRequest("Unable to find challenge"));
                }

                var user = await GetCurrentAuthenticatedUser();

                if (completedChallengeViewModel.Completed)
                {
                    await _challengeRepository.CompleteChallenge(challenge, user);
                }

                return(Ok(completedChallengeViewModel));
            }
            catch (Exception ex)
            {
                Logger.LogError(ex.Message);
                return(BadRequest(new ErrorMessage(ex)));
            }
        }
コード例 #2
0
        public async Task <IActionResult> GetChallengeCompletion(Guid id)
        {
            try
            {
                var challenge = await _challengeRepository.FindChallenge(id);

                if (challenge == null)
                {
                    return(BadRequest("Unable to find challenge"));
                }

                var user = await GetCurrentAuthenticatedUser();

                var completedChallenge = await _challengeRepository.DetermingUserCompletedChallenge(challenge, user);

                var completedChallangeViewModel = new ChallegeCompletionViewModel
                {
                    ChallengeId = challenge.Id,
                    Completed   = completedChallenge != null
                };

                return(Ok(completedChallangeViewModel));
            }
            catch (Exception ex)
            {
                Logger.LogError(ex.Message);
                return(BadRequest(new ErrorMessage(ex)));
            }
        }