using System.Collections;
using System.Collections.Generic;
public static void Main()
FileLogger obj= new FileLogger();
Customer objcustomer = new Customer();
SilverCustomer objSilverCustomer = new SilverCustomer();
double totalDiscount = objcustomer.getDiscount(500);
System.Console.WriteLine("totalDiscount :: " +totalDiscount);
double totalDiscount2 = objcustomer.getDiscount(500);
System.Console.WriteLine("totalDiscount2 :: " +totalDiscount2);
objSilverCustomer.CustType =2;
double totalDiscount3 = objSilverCustomer.getDiscount(500);
System.Console.WriteLine("totalDiscount3 :: " +totalDiscount3);
System.Console.WriteLine("hello worldv-1 ");
List<IDiscount> Customers = new List<IDiscount>();
Customers.Add(new SilverCustomer());
Customers.Add(new Enquiry());
foreach (IDatabase o in Customers)
IRead objIRead = new CustomerwithRead();
class FileLogger : ILogger
public void Handle(string error)
System.Console.WriteLine("FileLogger 0 12:: FileLogger " + error);
class EventLogger : ILogger
public void Handle(string error)
System.Console.WriteLine("FileLogger 0 12:: EventLogger " + error);
class NormalLogger : ILogger
public void Handle(string error)
System.Console.WriteLine("FileLogger 0 12:: NormalLogger " + error);
class Customer: IDiscount,IDatabase
get { return _CustType; }
set { _CustType = value; }
public virtual double getDiscount(double TotalSales)
public virtual void Add()
System.Console.WriteLine(ex.ToString());
class SilverCustomer : Customer
public override double getDiscount(double TotalSales)
return base.getDiscount(TotalSales) - 200;
public override void Add()
System.Console.WriteLine(ex.ToString());
class Enquiry : IDiscount
public double getDiscount(double TotalSales)
return getDiscount(TotalSales) - 5;
class CustomerwithRead: IDiscount,IDatabase,IRead
get { return _CustType; }
set { _CustType = value; }
public virtual double getDiscount(double TotalSales)
public virtual void Add()
System.Console.WriteLine(ex.ToString());
public virtual void Read()
System.Console.WriteLine("Read I S P " );
System.Console.WriteLine(ex.ToString());
double getDiscount(double TotalSales);
void Handle(string error);