コード例 #1
0
 public async Task SendBackupPrivateWalletEmail(string email, string walletName, string walletAddress,
                                                string question, string encodedKey)
 {
     var msgData = new PrivateWalletBackupData
     {
         WalletName       = walletName,
         WalletAddress    = walletAddress,
         EncodedKey       = encodedKey,
         SecurityQuestion = question
     };
     await _emailSender.SendEmailAsync(email, msgData);
 }
コード例 #2
0
        public async Task <EmailMessage> GeneratePrivateWalletBackupMsg(PrivateWalletBackupData privateWalletBackupData)
        {
            var backupDataJson = new
            {
                Key      = privateWalletBackupData.EncodedKey,
                Question = privateWalletBackupData.SecurityQuestion
            }.ToJson();

            var rawString = backupDataJson.ToBase64();

            var qrCode = _qrCodeGenerator.GenerateGifQrCode(backupDataJson, 600);

            var qrUrl = await _backupQrRepository.SaveQrFile(privateWalletBackupData.WalletAddress, qrCode);

            var templateVm = new PrivateWalletBackupTemplate
            {
                WalletName       = privateWalletBackupData.WalletName,
                WalletAddress    = privateWalletBackupData.WalletAddress,
                SecurityQuestion = privateWalletBackupData.SecurityQuestion,
                QrCodeUrl        = qrUrl,
                Year             = DateTime.UtcNow.Year.ToString()
            };

            var emailMessage = new EmailMessage
            {
                Body =
                    await
                    _templateGenerator.GenerateAsync("PrivateWalletBackupTemplate", templateVm, TemplateType.Email),
                Subject     = EmailResources.PrivateWalletBackup_Subject,
                IsHtml      = true,
                Attachments = new[]
                {
                    new EmailAttachment
                    {
                        ContentType = MediaTypeNames.Text.Plain,
                        FileName    = $"{privateWalletBackupData.WalletName}.txt",
                        Stream      = new MemoryStream(Encoding.UTF8.GetBytes(rawString))
                    }
                }
            };

            return(emailMessage);
        }