public string Receipt(Format format) { var totalAmount = 0d; var reportLines = new TupleList<Line, string>(); foreach (var line in _lines) { var thisAmount = 0d; thisAmount += CalculateAmountPlusDiscount(line.Bike, line.Quantity); reportLines.Add(line, thisAmount.ToString("C")); totalAmount += thisAmount; } var tax = totalAmount * TaxRate; var data = new ReceiptData(Company, totalAmount.ToString("C"), reportLines, tax.ToString("C"), (totalAmount + tax).ToString("C")); if (format == Format.Text) return new TextReceipt(data).TransformText(); else if (format == Format.HTML) return new HtmlReceipt(data).TransformText(); else if (format == Format.PDF) { return new PdfReceipt(data).TransformText(); } else throw new Exception("Unsupported format type!"); }
public TextReceipt(ReceiptData data) { this.data = data; }
public HtmlReceipt(ReceiptData data) { this.data = data; }
public PdfReceipt(ReceiptData data) { this.data = data; this.Base64EncodedPDF = GeneratePDF(); }