if (_lvDataItems.Items.Count > 0)
{
// We prepare the data.
// We will create a offline datatable to demonstrate , this can veru well
// be fetched from database.
DataSet dsOrderData = new DataSet();
#region Create Data
//Create a datatable
DataTable tb = new DataTable("ORDERS");
tb.Columns.Add("FIRSTNAME");
tb.Columns.Add("LASTNAME");
tb.Columns.Add("EMAIL");
tb.Columns.Add("ORDER_ID");
tb.Columns.Add("CUSTOMER_ID");
tb.Columns.Add("PRODUCT");
tb.Columns.Add("QUANTITY");
//Create Sample set of data
for (int i = 0; i < _lvDataItems.Items.Count; i++)
{
Utils.ListRowItem lri = (Utils.ListRowItem)_lvDataItems.Items[i].Tag;
DataRow dr = tb.NewRow();
dr["FIRSTNAME"] = lri.FirstName;
dr["LASTNAME"] = lri.LastName;
dr["EMAIL"] = lri.Email;
dr["ORDER_ID"] = lri.OrderId;
dr["CUSTOMER_ID"] = i;
dr["PRODUCT"] = lri.Product;
dr["QUANTITY"] = lri.Quantity;
tb.Rows.Add(dr);
}
#endregion
this.AddLogEntry("Creating templater.");
// We create the templater object.
ActiveUp.Net.Mail.Templater templater = new ActiveUp.Net.Mail.Templater("mailFormat_working_with_list.xml");
// We instanciante the Merger object by passing the templater data.
Merger merger = new Merger(templater);
// We merge the message templates.
merger.MergeListTemplate("PRODUCTS_TEXT", dsOrderData.Tables["ORDERS"]);
merger.MergeListTemplate("PRODUCTS_HTML", dsOrderData.Tables["ORDERS"]);
// We merge our message with the data.
merger.MergeMessage(dsOrderData.Tables["ORDERS"]);
this.AddLogEntry("Sending template message.");
try
{
// We send the mail
merger.Message.Send(smtpServerAddressTextbox.Text);
this.AddLogEntry("Message sent successfully.");
}
catch (SmtpException ex)
{
this.AddLogEntry(string.Format("Smtp Error: {0}", ex.Message));
}
catch (Exception ex)
{
this.AddLogEntry(string.Format("Failed: {0}", ex.Message));
}
}
else
{
this.AddLogEntry("No datas defined.");
}