コード例 #1
0
        public FloorCalculation CalculateFloor(FloorCalculation fc)
        {
            fc.Area = fc.Width*fc.Length;
               fc.FlooringCost = fc.Area*fc.CostPerUnit;
               fc.LaborCost = Math.Ceiling(fc.Area / 5) * 21.50M;
               fc.TotalCostEstimate = fc.LaborCost + fc.FlooringCost;

               return fc;
        }
コード例 #2
0
        public void CalculateFlooring()
        {
            var calculator = new FlooringCalculator();
            var calculation = new FloorCalculation{Length = 10, Width = 10, CostPerUnit = 2};
            var result = calculator.CalculateFloor(calculation);

            Assert.AreEqual(result.Area, 100);
            Assert.AreEqual(result.FlooringCost, 200);
            Assert.AreEqual(result.TotalCostEstimate,630 );
        }
コード例 #3
0
        public ActionResult FlooringCalculator(FloorInputs inputs)
        {
            if (ModelState.IsValid)
            {
                var calc = new FlooringCalculator();
                var floorData = new FloorCalculation();
                floorData.Width = inputs.Width.Value;
                //what does .Value do here?  allows nullabe decimal to convert to target type decimal?
                floorData.Length = inputs.Length.Value;
                floorData.CostPerUnit = inputs.CostPerUnit.Value;

                var result = calc.CalculateFloor(floorData);
                inputs.FlooringCost = result.FlooringCost;
                inputs.Area = result.Area;
                inputs.LaborCost = result.LaborCost;
                inputs.TotalCostEstimate = result.TotalCostEstimate;
                return View("FlooringCalculator", inputs);
            }
            else
            {
                return View("FlooringCalculator");
            }
        }