public static string PrintBill()
        {
            if (PrintingServices.ProductList.Count == 0)
            {
                throw new Exception("No products were found");
            }
            List <Product> domesticPorducts = PrintingServices.ProductList.Where(x => x.Domestic).OrderBy(x => x.Name).ToList();
            List <Product> importedProducts = PrintingServices.ProductList.Where(x => !x.Domestic).OrderBy(x => x.Name).ToList();

            StringBuilder sb     = new StringBuilder(PrintingServices.ReadTemplate(PrintingServices.receiptTamplatePath));
            string        output = sb
                                   .Replace("{domesticproducts}", PrintingServices.PrintProducts(domesticPorducts))
                                   .Replace("{importedproducts}", PrintingServices.PrintProducts(importedProducts))
                                   .Replace("{domesticcost}", domesticPorducts.Sum(x => x.Price).ToString())
                                   .Replace("{importedcost}", importedProducts.Sum(x => x.Price).ToString())
                                   .Replace("{domesticcount}", domesticPorducts.Count.ToString())
                                   .Replace("{importedcount}", importedProducts.Count.ToString())
                                   .ToString();

            return(output);
        }
Example #2
0
        static void Main(string[] args)
        {
            PrintingServices.FillList();

            Console.WriteLine(PrintReceiptService.PrintBill());
        }