static void Main(string[] args) { float x = 42f; Function f; CalculatorFactory fact = new CalculatorFactory( ); while (true) { Console.Write("> "); string s = Console.ReadLine( ); try { f = fact.Get(s); Console.WriteLine(f(x)); } catch (CompileException e) { Console.WriteLine("Errors:"); foreach (CompilerError err in e.Errors) { Console.WriteLine(err.ErrorText); } } } }
static void Main(string[] args) { Console.BackgroundColor = ConsoleColor.DarkRed; Console.WriteLine("Welcome to the calculating app"); Console.BackgroundColor = ConsoleColor.Black; NumberProvider numberProvider = new NumberProvider(); Tuple <int, int> numbers = numberProvider.GetNumbers(); Console.WriteLine("Thanks. These will be fun to do maths on."); Console.WriteLine("Initializing calculator..."); CalculationTypeProvider calculationTypeProvider = new CalculationTypeProvider(); CalculationType calculationType = calculationTypeProvider.GetCalculationType(); ICalculator calculator = CalculatorFactory.Get(calculationType); if (calculator != null) { Console.Beep(); decimal result = calculator.Calculate(numbers.Item1, numbers.Item2); Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine($"Yay... The result is {result}. Bye bye."); Console.ReadKey(); } }
public void GetFactory_Calculate(double a, double b, CalculatorFactory.Shape shape, double expectedArea) { var calculator = CalculatorFactory.Get(shape); var actualArea = calculator(a, b); Assert.AreEqual(expectedArea, actualArea); }
public CostDetails CalculateCost(ParkTypeEnum parkType, double duration) { var costCalculator = CalculatorFactory.Get <ICostCalc>(parkType.ToString()); if (costCalculator == null) { return(null); } return(costCalculator.CalculateCost(duration)); }
/// <summary> /// Calculate the parking cost /// </summary> /// <param name="parkRequest">Request represent the parking lot (type) and parking duration</param> /// <returns></returns> public CostDetails CalculateCost(ParkRequest parkRequest) { var costCalculator = CalculatorFactory.Get <ICostCalc>(parkRequest.ParkType.ToString()); if (costCalculator == null) { return(null); } var totalMinutes = (parkRequest.ExitDate - parkRequest.EntryDate).Value.TotalMinutes; var totalCost = costCalculator.CalculateCost(totalMinutes); var duration = TimeSpan.FromMinutes(totalMinutes); return(new CostDetails { Cost = decimal.Round(totalCost, 2), Days = duration.Days, Hours = duration.Hours, Minutes = duration.Minutes }); }