Example #1
0
        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);
                    }
                }
            }
        }
Example #2
0
        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
            });
        }