private static void calculateAmount(Shipping s) { //TODO var shippingFinal = s.Amount * s.ShippingChargePercentage; if (s.RiskyOrNot == RiskFactor.Risky) { shippingFinal += 25; } Console.WriteLine("The shipping fees are: {0:0.00}", shippingFinal); return; }
static void Main() { string zoneString, amountString; double amount; List<Shipping> myShippingList = new List<Shipping>() { new Shipping {ZoneName="zone1", ShippingChargePercentage=0.25, RiskyOrNot=RiskFactor.NotRisky}, new Shipping {ZoneName="zone2", ShippingChargePercentage=0.12, RiskyOrNot=RiskFactor.Risky }, new Shipping {ZoneName="zone3", ShippingChargePercentage=0.08, RiskyOrNot=RiskFactor.NotRisky }, new Shipping {ZoneName="zone4", ShippingChargePercentage=0.04, RiskyOrNot=RiskFactor.Risky } }; do { Console.WriteLine("What is the destination zone?"); zoneString = Console.ReadLine(); if (zoneString != "exit") { if (myShippingList.Exists(p => p.ZoneName == zoneString)) { //TODO Console.WriteLine("What is the item price?"); amountString = Console.ReadLine(); if (double.TryParse(amountString, out amount)) { var temp = new Shipping(); temp = myShippingList.Find(p => p.ZoneName == zoneString); temp.myEventHandler += calculateAmount; temp.Amount = amount; } } else { Console.WriteLine("The zone is not present in the database. Try Again."); continue; } } } while (zoneString != "exit"); }