public async Task <WalletStatusResponse> GetWalletStatus(string walletId, string key)
        {
            var wallet = await _walletRepository.GetAsync(Guid.Parse(walletId));

            if (wallet == null)
            {
                throw new NotFoundException(Messages.Wallet_NotFound);
            }

            var walletDetails = (await _walletDetailRepository.GetWalletDetailsByWallet(wallet)).FirstOrDefault();

            if (walletDetails == null)
            {
                throw new NotFoundException(Messages.WalltDetails_NotFound);
            }

            _cryptoService.DecryptAsUser(walletDetails, key);

            var photoUrl = _amazonS3Broker.GetImage(walletDetails.PhotoReference);

            var testResults = await _testResultService.GetTestResult(Guid.Parse(walletId));

            var response = new WalletStatusResponse
            {
                FirstName    = walletDetails.FirstName,
                LastName     = walletDetails.LastName,
                PhotoUrl     = photoUrl,
                ResultStatus = testResults == null?ResultStatus.Untested.ToString() : testResults.ResultStatus.ToString(),
                                   Status = testResults == null?Convert.ToInt32(ResultStatus.Untested) : (int)testResults?.ResultStatus
            };

            return(response);
        }