根据数据库值在C#中创建HTML列表

时间:2019-01-11 17:42:22

标签: c# asp.net-mvc entity-framework email sendgrid

我正在努力在具有商店功能的网站上发送订单确认-几乎都是定制设计的。我希望在下订单后发送一封电子邮件,理想的是简短地概述/概述所订购的物品。 我已经设法到达订单提交触发电子邮件发送给用户的地步,所以一切都很好。但是,我的问题是我如何才能以某种方式自定义电子邮件正文,使其包含已订购商品的列表?

很高兴从我的控制器中添加代码,尽管我真的不认为这会增加多少价值,因为这更多的是操作问题,而不是我遇到的问题。< / p>

int orderID = order.ID;
var lineItems = DATADB.LineItemList.Where(x => x.OrderNumber == 0 && x.UserID == userID);
lineItems.ForEach(l => l.OrderNumber = orderID);
DATADB.SaveChanges();

// send order confirmation email
var orderConfirmation = DATADB.LineItemList.Where(x => x.OrderNumber == orderID).ToList();
var ordered = string.Join(",", lineItems);
var msg = new SendGridMessage();
msg.From = new System.Net.Mail.MailAddress("orders@freshNclean.ch", "freshNclean");
msg.AddTo(UserManager.FindById(userID).Email);
msg.Subject = "Deine Bestellung bei freshNclean";

msg.Text = "Hi " + UserManager.FindById(userID).FirstName.ToString() + "! Vielen Dank für Deine Bestellung." + ordered;

// SendGrid credentials
var credentials = new NetworkCredential(ConfigurationManager.AppSettings["SGaccount"], ConfigurationManager.AppSettings["SGpassword"]);
var transportWeb = new Web(credentials);
if (transportWeb != null)
{
    transportWeb.DeliverAsync(msg);
}
else
{
    Trace.TraceError("Web Transport konnte nicht generiert werden - die Nachricht wurde nicht versandt.");
    Task.FromResult(0);
}

本质上,问题是我如何获得 ...

var orderConfirmation = DATADB.LineItemList.Where(x => x.OrderNumber == orderID).ToList();

...到这些行中的实际行和值,以便可以将它们包含在电子邮件正文中?另外,一旦建立,如何将电子邮件正文发送到包括可以使订单确认具有可接受外观的列表或表格吗?

0 个答案:

没有答案