Example #1
0
        private async Task <string> WaitForTwoFactorCode(DateTime codeSent, string resendUri)
        {
            var returnCode      = "";
            var starting        = DateTime.Now;
            var startingSending = DateTime.Now;

            while (returnCode == "")
            {
                if (DateTime.Now.Subtract(starting).TotalMinutes >= 5)
                {
                    returnCode = "000000";
                    break;
                }
                if (DateTime.Now.Subtract(startingSending).TotalMinutes >= 1.5)
                {
                    var resend = await HttpClient.GetAsync(resendUri).ConfigureAwait(false);

                    var resendString = resend.Content.ReadAsStringAsync().ConfigureAwait(false);
                    startingSending = DateTime.Now;
                }
                var mail = await _mailClient.GetTwoFactorCode(codeSent).ConfigureAwait(false);

                returnCode = mail;
                await Task.Delay(5000).ConfigureAwait(false);
            }
            return(returnCode);
        }