public void GenerateSalesPerCategoryResultFile(CategorySalesReport reportData, string fileName)
        {
            var wb = new XLWorkbook();
            var ws = wb.Worksheets.Add("Sales per Category");

            //Columns
            ws.Cell("B2").Value = "Category";
            ws.Cell("C2").Value = "Quantity";
            ws.Cell("D2").Value = "Amount Sold";

            int rowCount = 3;

            foreach (var row in reportData.Report)
            {
                string categoryCell    = "B" + rowCount;
                string quantityCell    = "C" + rowCount;
                string totalAmountCell = "D" + rowCount;

                ws.Cell(categoryCell).Value    = row.Category;
                ws.Cell(quantityCell).Value    = row.Quantity;
                ws.Cell(totalAmountCell).Value = row.TotalAmountSold;

                rowCount++;
            }

            var tableRange      = ws.Range("B2", "D" + (rowCount - 1));
            var finBalanceTable = tableRange.CreateTable();

            finBalanceTable.Theme = XLTableTheme.TableStyleMedium16;

            ws.Columns().AdjustToContents();
            wb.SaveAs(XlsxSettings.Default.SaveDirectory + fileName);
        }
        public void GenerateSalesPerCategoryResultFile(CategorySalesReport reportData, string fileName)
        {
            var wb = new XLWorkbook();
            var ws = wb.Worksheets.Add("Sales per Category");

            //Columns
            ws.Cell("B2").Value = "Category";
            ws.Cell("C2").Value = "Quantity";
            ws.Cell("D2").Value = "Amount Sold";

            var rowCount = 3;
            foreach (var row in reportData.Report)
            {
                var categoryCell = "B" + rowCount;
                var quantityCell = "C" + rowCount;
                var totalAmountCell = "D" + rowCount;

                ws.Cell(categoryCell).Value = row.Category;
                ws.Cell(quantityCell).Value = row.Quantity;
                ws.Cell(totalAmountCell).Value = row.TotalAmountSold;

                rowCount++;
            }

            var tableRange = ws.Range("B2", "D" + (rowCount - 1));
            var finBalanceTable = tableRange.CreateTable();
            finBalanceTable.Theme = XLTableTheme.TableStyleMedium16;

            ws.Columns().AdjustToContents();
            wb.SaveAs(ExcelSettings.Default.ExcelReportsDestinationFolder + fileName);
        }
Beispiel #3
0
        public CategorySalesReport GetSalesByCategory()
        {
            var entries =
                this.msSqlData.Purchases.All()
                .GroupBy(p => p.Product.Category.Name)
                .Select(gr => new CategorySalesReportEntry()
            {
                Category        = gr.Select(p => p.Product.Category.Name).FirstOrDefault(),
                Quantity        = gr.Sum(p => p.Quantity),
                TotalAmountSold = gr.Sum(p => p.Quantity * p.UnitPrice)
            });

            var resultReport = new CategorySalesReport()
            {
                Report = entries
            };

            return(resultReport);
        }
        public CategorySalesReport GetSalesByCategory()
        {
            var entries =
                this.msSqlData.Purchases.All()
                    .GroupBy(p => p.Product.Category.Name)
                    .Select(
                        gr =>
                        new CategorySalesReportEntry
                            {
                                Category =
                                    gr.Select(p => p.Product.Category.Name).FirstOrDefault(),
                                Quantity = gr.Sum(p => p.Quantity),
                                TotalAmountSold = gr.Sum(p => p.Quantity * p.UnitPrice)
                            });

            var resultReport = new CategorySalesReport { Report = entries };
            return resultReport;
        }