public string GetDCEmailTemplate(DcntEmailTemplateInput data) { //TODO email var address = data.WalletId; var body = new StringBuilder(); body.AppendLine("<table border = '0' cellpadding = '0' cellspacing = '0' style = 'max-width:800px; margin:auto; padding:0;font-family: Tahoma, Geneva, sans-serif;' width = '100%'>"); body.AppendLine("<tr style = 'background:#313F4D'>"); body.AppendLine("<td colspan='3'><img style='margin-left:10px' height='50px' src='" + data.Uri + "'></td>"); body.AppendLine("</tr>"); body.AppendLine("<tr>"); body.AppendLine("<td colspan = '10' style = 'background:#EEEEEE; color:white;padding: 50px'>"); body.AppendLine("<h1 style='color:#292b2c'> Dear " + data.UserName + ", </h1> "); body.AppendLine("<p style='font-size:20px;color:#292b2c;'>Thank you for purchasing <i style='color:#292b2c'>" + data.Amount + " SLVT </i> tokens valued at <i style='color:#292b2c'>$ " + data.Dollar + ".</i> Please send <i style='color:#292b2c'>" + data.DcntInBtcOrEthOrUsd.ToString("0.00000000") + " " + data.CurrentType.ToUpper() + " </i> to wallet address: </p>"); body.AppendLine("<p align ='center' style='font-size:20px;color:#292b2c;'><i style='color:#292b2c'>" + address + " </i> </p>"); body.AppendLine("<img style='display: block; margin: auto' src='" + data.QrCode + "' alt='' width='190' height='180' sizes ='(max-width:270px) 100vw, 270px'>"); body.AppendLine("<p style='font-size:20px;color:#292b2c;'>Thank you,</p>"); body.AppendLine("<p style='font-size:20px;color:#292b2c;'>The Silvertoken Team</p>"); body.AppendLine("<p style='font-size:20px;color:#292b2c;'>Silvertoken.com</p>"); body.AppendLine("</td>"); body.AppendLine("</tr>"); body.AppendLine("<tr>"); body.AppendLine("<td align = 'center' style = 'background: #313F4D' height = '60'>"); body.AppendLine("<span style = 'color:white; margin: 20px 0; ' > Copyright | Silvertoken | 2017 </span>"); body.AppendLine("</td>"); body.AppendLine("</tr>"); body.AppendLine("</table>"); return(body.ToString()); }
public async Task <PaymentOutput> PurchaseTokens(WalletLogsDto input) { try { if (input != null) { var user = _userRepository.Get(input.UserId); var dcnt = input.Amount; var dollar = dcnt * _dcntInUsd; var dcntInBtcOrEthOrUsd = dollar; var currency = await _currenciesRepository.FirstOrDefaultAsync(input.CurrencyId); if (!currency.IsCrypto) { var users = await UserManager.GetUsersInRoleAsync("Admin"); var instruction = users.FirstOrDefault(item => item.WiredInstruction != null).WiredInstruction; return(new PaymentOutput() { Instruction = instruction }); } if (currency == null) { throw new UserFriendlyException(L("CurrencyNotFound")); } var exchangeRate = await _exchangeRateRepository.FirstOrDefaultAsync(e => e.CurrencyId.Equals(currency.Id)); if (exchangeRate == null) { throw new UserFriendlyException(L("CurrencyNotFound")); } if (currency.IsCrypto) { if (Convert.ToDouble(input.Amount) != 0.0) { dcntInBtcOrEthOrUsd = (_dcntInUsd * input.Amount) / exchangeRate.Price; } } var transaction = new Transaction() { UserId = input.UserId, AmountDue = dcntInBtcOrEthOrUsd, //TODO: old CurrencyType = (int)Enum.Parse(typeof(CurrentTypeEnum), input.CurrentType), WalletId = input.WalletId, CurrencyId = currency.Id, TransactionStatus = TransactionStatusEnum.Commited, IsDeleted = false, FirstName = user.Name, LastName = user.Surname, TokensIssued = (long)input.Amount, EmailAddress = user.EmailAddress, TransactionDate = DateTime.Now, TenantId = AbpSession.TenantId }; await _walletLogsRepository.InsertAsync(transaction); QRCodeGenerator qrGenerator = new QRCodeGenerator(); var walletId = (await _supportedCurrencyRepository.FirstOrDefaultAsync(x => x.CurrencyId == currency.Id)).WalletId; QRCodeData qrCodeData = qrGenerator.CreateQrCode(walletId, QRCodeGenerator.ECCLevel.Q); QRCode qrCode = new QRCode(qrCodeData); Bitmap qrCodeImage = qrCode.GetGraphic(4); System.IO.MemoryStream ms = new System.IO.MemoryStream(); qrCodeImage.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp); byte[] byteImage = ms.ToArray(); var qrCodeBase64 = Convert.ToBase64String(byteImage); var qrcodeDto = new PaymentOutput() { QrCode = qrCodeBase64, Address = walletId }; var tenant = await _tenantRepository.FirstOrDefaultAsync(item => item.Id == AbpSession.TenantId); var currencyImage = StoreClientAgreement(ms, currency.Name); //TODO email //Uri uri = new Uri(tenant.LogoUrl); var emailData = new DcntEmailTemplateInput() { UserName = user.Name, WalletId = walletId, Amount = input.Amount, CurrentType = currency.Name, Dcnt = dcnt, Dollar = dollar, Uri = tenant.LogoUrl, DcntInBtcOrEthOrUsd = dcntInBtcOrEthOrUsd, QrCode = currencyImage }; var receiver = new MailAddress(user.EmailAddress, user.FullName); var body = _userEmailer.GetDCEmailTemplate(emailData); await _userEmailer.SendEmailWithSendGrid(receiver, body); return(qrcodeDto); } } catch (Exception ex) { } return(new PaymentOutput()); }