0% found this document useful (0 votes)
10 views2 pages

Lancuch

Uploaded by

mejsergry
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
10 views2 pages

Lancuch

Uploaded by

mejsergry
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 2

using System;

interface IWarningHandler
{
IWarningHandler SetNext(IWarningHandler nextHandler);
void Handle(int daysOfPaymentDelay);
}

abstract class WarningHandler : IWarningHandler


{
protected IWarningHandler _nextHandler;

public virtual void Handle(int daysOfPaymentDelay)


{
if (_nextHandler != null)
{
_nextHandler.Handle(daysOfPaymentDelay);
}
else
{
Console.WriteLine("What now?");
}
}

public IWarningHandler SetNext(IWarningHandler nextHandler)


{
_nextHandler = nextHandler;

return nextHandler;
}
}

class LightWarning : WarningHandler


{
public override void Handle(int daysOfPaymentDelay)
{
if (daysOfPaymentDelay == 1)
{
Console.WriteLine("Send push notification");
}
else
{
base.Handle(daysOfPaymentDelay);
}
}
}
class MediumWarning : WarningHandler
{
public override void Handle(int daysOfPaymentDelay)
{
if (daysOfPaymentDelay > 1 && daysOfPaymentDelay <= 5)
{
Console.WriteLine("Send email notification");
}
else
{
base.Handle(daysOfPaymentDelay);
}
}
}

class HardWarning : WarningHandler


{
public override void Handle(int daysOfPaymentDelay)
{
if (daysOfPaymentDelay > 5 && daysOfPaymentDelay <= 10)
{
Console.WriteLine("Send SMS notification");
}
else
{
base.Handle(daysOfPaymentDelay);
}
}
}

class ExtremeWarning : WarningHandler


{
public override void Handle(int daysOfPaymentDelay)
{
if (daysOfPaymentDelay > 10)
{
Console.WriteLine("Your account has been blocked");
}
else
{
base.Handle(daysOfPaymentDelay);
}
}
}

class Program
{
static void Main(string[] args)
{
IWarningHandler lightWarningHandler = new LightWarning();
IWarningHandler mediumWarningHandler = new MediumWarning();
IWarningHandler hardWarningHandler = new HardWarning();
IWarningHandler extremeWarningHandler = new ExtremeWarning();

lightWarningHandler.SetNext(mediumWarningHandler);
mediumWarningHandler.SetNext(hardWarningHandler);
hardWarningHandler.SetNext(extremeWarningHandler);

lightWarningHandler.Handle(1);
lightWarningHandler.Handle(2);
lightWarningHandler.Handle(6);
lightWarningHandler.Handle(11);

}
}

You might also like