private static void CalculatorTest()
        {
            Patient patient = new Patient
            {
                Birthday  = DateTime.Parse("1950-04-01"),
                FirstName = "Ryszard",
                Gender    = Gender.Male,
            };

            Visit visit = new Visit
            {
                Patient   = patient,
                VisitDate = DateTime.Now,
                Duration  = TimeSpan.FromHours(1),
                UnitPrice = 150
            };

            CalculatorBase calculator1 = new GenderCalculator(0.9m);
            CalculatorBase calculator2 = new AgeCalculator();

            calculator2.Calculate(visit);

            Console.WriteLine(visit.DiscountedAmount);
        }
 protected override decimal Discount(Visit visit)
 {
     return(visit.Amount);
 }
 protected override bool CanDiscount(Visit visit)
 {
     return(visit.Patient.Age > 60);
 }
 protected abstract decimal Discount(Visit visit);
 protected abstract bool CanDiscount(Visit visit);
 protected override bool CanDiscount(Visit visit)
 {
     return(visit.Patient.Gender == Gender.Female);
 }