예제 #1
0
        // used to generate the html table for orderline info excel file download
        public StringBuilder GenerateOrderlineInfoHtmlTable(IEnumerable <OrderLineViewModel> orderlines, OrderViewModel orderInfo)
        {
            StringBuilder sb = null;

            try
            {
                sb = new StringBuilder();
                sb.Append("<table border=`" + "1px" + "`b>");
                sb.Append("<tr>Order ID - " + orderInfo.id + "</tr>");
                sb.Append("<tr>Order Status - " + orderInfo.status + "</tr>");
                sb.Append("<tr>Customer - " + orderInfo.company + "</tr>");
                sb.Append("<tr>Contact - " + orderInfo.contactFulName + "</tr>");
                sb.Append("<tr>Order Date - " + orderInfo.orderCreationDate + "</tr>");
                sb.Append("<tr>Order Total - " + CommonBehaviour.GetCurrencySymbol(orderInfo.currency) + " " + orderInfo.total + "</tr>");
                sb.Append("<td><b><font face=Arial Narrow size=3>Condition</font></b></td>");
                sb.Append("<td><b><font face=Arial Narrow size=3>Brand</font></b></td>");
                sb.Append("<td><b><font face=Arial Narrow size=3>Model</font></b></td>");
                sb.Append("<td><b><font face=Arial Narrow size=3>Quantity</font></b></td>");
                sb.Append("<td><b><font face=Arial Narrow size=3>PPI</font></b></td>");
                sb.Append("<td><b><font face=Arial Narrow size=3>Total(" + CommonBehaviour.GetCurrencySymbol(orderInfo.currency) + ")</font></b></td>");
                sb.Append("<td><b><font face=Arial Narrow size=3>Status</font></b></td>");
                sb.Append("</tr>");
                foreach (OrderLineViewModel orderline in orderlines)
                {
                    sb.Append("<tr>");
                    sb.Append("<td><font face=Arial Narrow size=" + "14px" + ">" + orderline.condition.ToString() + "</font></td>");
                    sb.Append("<td><font face=Arial Narrow size=" + "14px" + ">" + orderline.brand.ToString() + "</font></td>");
                    sb.Append("<td><font face=Arial Narrow size=" + "14px" + ">" + orderline.model.ToString() + "</font></td>");
                    sb.Append("<td><font face=Arial Narrow size=" + "14px" + ">" + orderline.quantity.ToString() + "</font></td>");
                    sb.Append("<td><font face=Arial Narrow size=" + "14px" + ">" + orderline.negotiatedPricePerItem.ToString() + "</font></td>");
                    sb.Append("<td><font face=Arial Narrow size=" + "14px" + ">" + orderline.totalAmount.ToString() + "</font></td>");
                    sb.Append("<td><font face=Arial Narrow size=" + "14px" + ">" + orderline.status.ToString() + "</font></td>");
                    sb.Append("</tr>");
                }
                sb.Append("</table>");
                return(sb);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        // used to generate the excel file for orderline info excel file download
        public string GenerateOrderlineInfoExcelReport(IEnumerable <OrderLineViewModel> orderlines, OrderViewModel orderInfo)
        {
            try
            {
                // Set the file name and get the output directory
                string fileName  = "OrderInfo-" + orderInfo.id + "-" + DateTime.Now.ToString("yyyy-MM-dd--hh-mm-ss") + ".xlsx";
                var    outputDir = HttpContext.Current.Server.MapPath("~/App_Data/Excel");

                // Create the file using the FileInfo object
                FileInfo file = new FileInfo(outputDir + fileName);

                // Create the package and make sure you wrap it in a using statement
                using (var package = new ExcelPackage(file))
                {
                    // add a new worksheet to the empty workbook
                    ExcelWorksheet worksheet = package.Workbook.Worksheets.Add(fileName);
                    int            rowNumber = 1;
                    worksheet.Cells[rowNumber, 1].Value   = "Order ID ";
                    worksheet.Cells[rowNumber, 2].Value   = orderInfo.id;
                    worksheet.Cells[++rowNumber, 1].Value = "Order Status ";
                    worksheet.Cells[rowNumber, 2].Value   = orderInfo.status;
                    worksheet.Cells[++rowNumber, 1].Value = "Company ";
                    worksheet.Cells[rowNumber, 2].Value   = orderInfo.company;
                    worksheet.Cells[++rowNumber, 1].Value = "Contact ";
                    worksheet.Cells[rowNumber, 2].Value   = orderInfo.contactFulName;
                    worksheet.Cells[++rowNumber, 1].Value = "Order date ";
                    worksheet.Cells[rowNumber, 2].Value   = orderInfo.orderCreationDate;
                    worksheet.Cells[++rowNumber, 1].Value = "Currency ";
                    worksheet.Cells[rowNumber, 2].Value   = orderInfo.currency;
                    worksheet.Cells[++rowNumber, 1].Value = "Order total ";
                    worksheet.Cells[rowNumber, 2].Value   = CommonBehaviour.GetCurrencySymbol(orderInfo.currency) + " " + orderInfo.total;

                    // header
                    rowNumber = rowNumber + 2;
                    worksheet.Cells[rowNumber, 1, rowNumber, 6].Style.Font.Bold        = true;
                    worksheet.Cells[rowNumber, 1, rowNumber, 6].Style.Fill.PatternType = ExcelFillStyle.Solid;
                    worksheet.Cells[rowNumber, 1, rowNumber, 6].Style.Fill.BackgroundColor.SetColor(Color.LightBlue);
                    worksheet.Cells[rowNumber, 1].Value = "Condition";
                    worksheet.Cells[rowNumber, 2].Value = "Brand";
                    worksheet.Cells[rowNumber, 3].Value = "Model";
                    worksheet.Cells[rowNumber, 4].Value = "Quantity";
                    worksheet.Cells[rowNumber, 5].Value = "PPI";
                    worksheet.Cells[rowNumber, 5].Value = "Total(" + CommonBehaviour.GetCurrencySymbol(orderInfo.currency) + ")";
                    worksheet.Cells[rowNumber, 6].Value = "Status";

                    foreach (OrderLineViewModel orderline in orderlines)
                    {
                        ++rowNumber;
                        worksheet.Cells[rowNumber, 1].Value = orderline.condition;
                        worksheet.Cells[rowNumber, 2].Value = orderline.brand;
                        worksheet.Cells[rowNumber, 3].Value = orderline.model;
                        worksheet.Cells[rowNumber, 4].Value = orderline.quantity;
                        worksheet.Cells[rowNumber, 5].Value = orderline.negotiatedPricePerItem;
                        worksheet.Cells[rowNumber, 5].Value = orderline.totalAmount;
                        worksheet.Cells[rowNumber, 6].Value = orderline.status;
                    }
                    worksheet.Column(1).AutoFit();
                    worksheet.Column(2).AutoFit();
                    worksheet.Column(3).AutoFit();
                    worksheet.Column(4).AutoFit();
                    worksheet.Column(5).AutoFit();
                    worksheet.Column(6).AutoFit();
                    package.Save();
                }
                return(file.FullName);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }