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