Ejemplo n.º 1
0
        public async Task <VerificationCodeResult> VerifyEmail([FromBody] VerificationCodeRequest request)
        {
            var result = new VerificationCodeResult();

            if (request == null || !request.Key.IsValidPartitionOrRowKey())
            {
                return(result);
            }

            var existingCode = await _verificationCodesRepository.GetCodeAsync(request.Key);

            if (existingCode != null && existingCode.Code == request.Code)
            {
                result.Code = existingCode;
                AccountExistsModel accountExistsModel = await _clientAccountClient.IsTraderWithEmailExistsAsync(existingCode.Email, null);

                result.IsEmailTaken = accountExistsModel.IsClientAccountExisting;

                if (result.IsEmailTaken)
                {
                    await _verificationCodesRepository.DeleteCodesAsync(existingCode.Email);
                }
            }

            return(result);
        }