using System.Collections.Generic;
public static void Main()
List<ProductViewModel> productViewModellst=new List<ProductViewModel>();
var productCode=String.Empty; var itemType=String.Empty;
Console.WriteLine("Please add the product details.");
Boolean _continue = true;
DataTable table = new DataTable();
table.Columns.Add("ProductName", typeof(string));
table.Columns.Add("Category", typeof(string));
table.Columns.Add("Quantity", typeof(int));
table.Columns.Add("Price (Per item)", typeof(decimal));
table.Columns.Add("Total", typeof(decimal));
ProductViewModel objProductViewModel=new ProductViewModel();
Console.WriteLine("Enter product Name");
objProductViewModel.ProductName=Console.ReadLine();;
Console.WriteLine("Enter product category A or B or C");
objProductViewModel.Category=Console.ReadLine();;
if((objProductViewModel.Category.ToUpper()!="A") && (objProductViewModel.Category.ToUpper()!="B") && (objProductViewModel.Category.ToUpper()!="C"))
Console.WriteLine("Invalid category");
Console.WriteLine("Enter product quantity");
objProductViewModel.Quantity=Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Enter product price");
objProductViewModel.Price=Convert.ToInt32(Console.ReadLine());
objProductViewModel.TotalPrice=objProductViewModel.Quantity*objProductViewModel.Price;
objProductViewModel.Tax=TaxCal(objProductViewModel.Category,objProductViewModel.TotalPrice);
objProductViewModel.TotalPriceWithServiceCharge=objProductViewModel.TotalPrice+objProductViewModel.Tax;
productViewModellst.Add(objProductViewModel);
Console.WriteLine("Do you want to add more products? Y/ N");
_continue = Console.ReadLine().ToUpper() == "Y";
if(productViewModellst.Count!=0)
ProductViewModel objProductViewModel1=new ProductViewModel();
foreach(ProductViewModel item in productViewModellst)
table.Rows.Add(item.ProductName,item.Category.ToUpper(), item.Quantity,item.Price,item.TotalPriceWithServiceCharge);
objProductViewModel1.Total=objProductViewModel1.Total+item.TotalPriceWithServiceCharge;
table.Rows.Add("Total", null,null,null,objProductViewModel1.Total);
FiddleHelper.WriteTable(table);
public static decimal TaxCal(string itemType,decimal ToatlPrice)
if (itemType.ToUpper() == "A")
if (itemType.ToUpper() == "B")
if (itemType.ToUpper() == "C")
public class ProductViewModel
public string ProductName { get; set; }
public int Quantity { get; set; }
public decimal Price { get; set; }
public string Category { get; set; }
public decimal TotalPrice { get; set; }
public decimal TotalPriceWithServiceCharge { get; set; }
public decimal Tax { get; set; }
public decimal Total { get; set; }