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