private static MailLayout ReplaceTemplatePlaceholder(OrderInfo orderDetails, string numOrdine, string fileName, string orderItem) { // Refactoring futuro: builder per costruire un oggetto Order con i campi seguenti // Reflection sulle proprietà dell'oggetto, cercando il placeholder relativo nel template e sostituendo con il // valore del campo var name = string.Format("{0} {1}", orderDetails.billing_address.firstname, orderDetails.billing_address.lastname); var shipmentHolder = string.Format("{0} {1}", orderDetails.shipping_address.firstname, orderDetails.shipping_address.lastname); var shipmentAddress = string.Format("{0} {1} {2}", orderDetails.shipping_address.street, orderDetails.shipping_address.city, orderDetails.shipping_address.postcode); var invoiceHolder = string.Format("{0} {1}", orderDetails.billing_address.firstname, orderDetails.billing_address.lastname); var invoiceAddress = string.Format("{0} {1}", orderDetails.billing_address.firstname, orderDetails.billing_address.lastname); var totalShipment = "€. " + Helper.FormatCurrency(orderDetails.shipping_amount); var total = Helper.FormatCurrency(orderDetails.grand_total); var layoutBuilder = new LayoutBuilder(fileName); var templateHtml = layoutBuilder.AddName(name) .AddInvoiceHolder(invoiceHolder).AddInvoiceAddress(invoiceAddress) .AddShipmentHolder(shipmentHolder).AddShipmentAddress(shipmentAddress) .AddOrderItem(orderItem).AddOrderNumber(numOrdine) .AddTotalShipment(totalShipment).AddTotalOrder(total).Build(); return(templateHtml); }
public void Should_Create_Layout_Template_With_Builder() { // percorso del template html var filePath = @"C:\Progetti\MA\MA.Web\public\templates\template_nl.html"; var layoutBuilder = new LayoutBuilder(filePath); var templateHtml = layoutBuilder.AddName("Nome Cognome") .AddInvoiceHolder("A C").AddInvoiceAddress("via address") .AddShipmentHolder("Giuseppe Cristella").AddShipmentAddress("Via roma, 3") .AddTotalShipment("150").AddTotalOrder("1").Build(); }