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); }
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); }
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")); } }