public static void Main()
Customer[] custArray = new Customer[4];
custArray[0] = new Customer() { FirstName = "Joe", LastName = "Smith", PaymentProcess = "visa",Orders = new Order[2]};
custArray[0].Orders[0] = new Order() { Description = "Shoes", Price = 19.99M, Quantity = 1 };
custArray[0].Orders[1] = new Order() { Description = "Pants", Price = 29.99M, Quantity = 2 };
decimal totaldue1 = (custArray[0].Orders[0].Quantity * custArray[0].Orders[0].Price) + (custArray[0].Orders[1].Quantity * custArray[0].Orders[1].Price);
custArray[1] = new Customer() { FirstName = "Sally", LastName = "Jones",PaymentProcess = "Debit", Orders = new Order[2] };
custArray[1].Orders[0] = new Order() { Description = "Shoes", Price = 39.99M, Quantity = 1 };
custArray[1].Orders[1] = new Order() { Description = "Pants", Price = 49.99M, Quantity = 1 };
decimal totaldue2 = (custArray[1].Orders[0].Quantity * custArray[1].Orders[0].Price) + (custArray[1].Orders[1].Quantity * custArray[1].Orders[1].Price);
custArray[2] = new Customer() {FirstName = "Ady",LastName = "Htim",PaymentProcess = "paypal",Orders = new Order[2]};
custArray[2].Orders[0]=new Order(){Description = "books",Price = 50, Quantity = 2};
custArray[2].Orders[1] = new Order(){Description ="pens",Price = 10, Quantity =10};
decimal totaldue3 = (custArray[2].Orders[0].Quantity * custArray[2].Orders[0].Price) + (custArray[2].Orders[1].Quantity * custArray[2].Orders[1].Price);
foreach (var customer in custArray)
if (customer == null) continue;
Console.WriteLine("Customer:\n");
Console.WriteLine("{0, 15} {1, 17} {2,19}", "First Name", "Last Name","payment proces");
Console.WriteLine("{0, 10} {1, 20} {2,20}" , customer.FirstName, customer.LastName,customer.PaymentProcess);
Console.WriteLine("===============================================================================");
Console.WriteLine("Orders:\n");
foreach (var order in customer.Orders)
if (order == null) continue;
Console.WriteLine("{0, 10} {1, 10} {2, 10}", order.Description, order.Price, order.Quantity );
Console.WriteLine("==========================================================================");
Console.WriteLine("Payment:\n");
Console.WriteLine(" First custumer payment in $ ={0} by: {1}", totaldue1 ,custArray[0].PaymentProcess);
Console.WriteLine(" Second custumer payment in $= {0} by: {1}", totaldue2, custArray[1].PaymentProcess);
Console.WriteLine(" Third custumer payment in $ ={0} by: {1}", totaldue3, custArray[2].PaymentProcess);
Console.WriteLine("==========================================================================");
Ipayment visa=new visa();
Ipayment debit=new Depit();
Ipayment paypal=new Paypal();
visa.payment = totaldue1;
debit.payment = totaldue2;
paypal.payment = totaldue3;
decimal total = totaldue1+totaldue2+totaldue3;
Console.WriteLine("visa payment in $={0}", totaldue1);
Console.WriteLine("Debit payment in $={0}",totaldue2);
Console.WriteLine("Paypal in $= {0}",totaldue3);
Console.WriteLine("==========================================================================");
Console.WriteLine("total payment at the end of the day in $={0}",total);
public string PaymentProcess;
public string Description;
decimal payment { get; set; }
internal class visa : Ipayment
private decimal _payment;
set { _payment = value; }
public class Depit : Ipayment
private decimal _payment;
set { _payment = value; }
public class Paypal : Ipayment
private decimal _payment;
set { _payment = value; }