Exemple #1
0
        public ActionResult Index(ConcreteCoverViewModel viewModel)
        {
            //if (ModelState.IsValid)
            //{
            ConcreteCoverCalculator concreteCoverCalculator = new ConcreteCoverCalculator()
            {
                RebarDiameter       = viewModel.ConvertStringToRebarDiameter(viewModel.SelectedRebarDiameter),
                ArrangementOfBars   = viewModel.ConvertStringToArrangementOfBars(viewModel.SelectedArrangementOfBars),
                ConcreteClass       = viewModel.ConvertStringToConcreteClass(viewModel.SelectedConcreteClass),
                ExposureClass       = viewModel.ConvertStringToExposureClass(viewModel.SelectedExposureClass),
                BaseStructuralClass = viewModel.ConvertStringToStructuralClass(viewModel.SelectedBaseStructuralClass),
                NominalMaximumAggregateSizeIsGreaterThan32mm = viewModel.NominalMaximumAggregateSizeIsGreaterThan32mm,
                DesignWorkingLifeOf100Years = viewModel.DesignWorkingLifeOf100Years,
                MemberWithSlabGeometry      = viewModel.MemberWithSlabGeometry,
                SpecialQualityControlOfTheConcreteProductionEnsured = viewModel.SpecialQualityControlOfTheConcreteProductionEnsured,
                AdditiveSafetyElement = viewModel.AdditiveSafetyElement / 1000d,
                ReductionOfMinimumCoverForUseOfAdditionalProtection = viewModel.ReductionOfMinimumCoverForUseOfAdditionalProtection / 1000d,
                ReductionOfMinimumCoverForUseOfStainlessSteel       = viewModel.ReductionOfMinimumCoverForUseOfStainlessSteel / 1000d,
                AllowanceInDesignForDeviation = viewModel.AllowanceInDesignForDeviation / 1000d
            };

            concreteCoverCalculator.CalculateNominalConcreteCover();
            //}

            viewModel.StructuralClass = concreteCoverCalculator.StructuralClass.ToString();
            viewModel.MinimumCoverDueToBondRequirement         = concreteCoverCalculator.MinimumCoverDueToBondRequirement * 1000d;
            viewModel.MinimumCoverDueToEnvironmentalConditions = concreteCoverCalculator.MinimumCoverDueToEnvironmentalConditions * 1000d;
            viewModel.MinimumCover = concreteCoverCalculator.MinimumCover * 1000d;
            viewModel.NominalCover = concreteCoverCalculator.NominalCover * 1000d;

            viewModel.IsCalculated = true;

            return(View(viewModel));
        }
Exemple #2
0
        public void ConcreteCoverController_ViewModel_ReturnProperValues(string testCaseName, string selectedRebarDiameter, string selectedArrangementOfBars, string selectedConcreteClass,
                                                                         string selectedExposureClass, string selectedBaseStructuralClass, bool nominalMaximumAggregateSizeIsGreaterThan32mm, bool designWorkingLifeOf100Years,
                                                                         bool memberWithSlabGeometry, bool specialQualityControlOfTheConcreteProductionEnsured, double additiveSafetyElement, double reductionOfMinimumCoverForUseOfAdditionalProtection,
                                                                         double reductionOfMinimumCoverForUseOfStainlessSteel, double allowanceInDesignForDeviation,
                                                                         string expectedStructuralClass, double expectedMinimumCoverDueToBondRequirement, double expectedMinimumCoverDueToEnvironmentalConditions, double expectedMinimumCover, double expectedNominalCover)
        {
            var viewModel = new ConcreteCoverViewModel();

            viewModel.SelectedRebarDiameter = selectedRebarDiameter;
            //viewModel.SelectedArrangementOfBars = selectedArrangementOfBars;
            viewModel.SelectedConcreteClass       = selectedConcreteClass;
            viewModel.SelectedExposureClass       = selectedExposureClass;
            viewModel.SelectedBaseStructuralClass = selectedBaseStructuralClass;
            viewModel.NominalMaximumAggregateSizeIsGreaterThan32mm = nominalMaximumAggregateSizeIsGreaterThan32mm;
            viewModel.DesignWorkingLifeOf100Years = designWorkingLifeOf100Years;
            viewModel.MemberWithSlabGeometry      = memberWithSlabGeometry;
            viewModel.SpecialQualityControlOfTheConcreteProductionEnsured = specialQualityControlOfTheConcreteProductionEnsured;
            viewModel.AdditiveSafetyElement = additiveSafetyElement;
            viewModel.ReductionOfMinimumCoverForUseOfAdditionalProtection = reductionOfMinimumCoverForUseOfAdditionalProtection;
            viewModel.ReductionOfMinimumCoverForUseOfStainlessSteel       = reductionOfMinimumCoverForUseOfStainlessSteel;
            viewModel.AllowanceInDesignForDeviation = allowanceInDesignForDeviation;

            ConcreteCoverCalculator concreteCoverCalculator = new ConcreteCoverCalculator()
            {
                RebarDiameter = viewModel.ConvertStringToRebarDiameter(viewModel.SelectedRebarDiameter),
                //ArrangementOfBars = viewModel.ConvertStringToArrangementOfBars(viewModel.SelectedArrangementOfBars),
                ConcreteClass       = viewModel.ConvertStringToConcreteClass(viewModel.SelectedConcreteClass),
                ExposureClass       = viewModel.ConvertStringToExposureClass(viewModel.SelectedExposureClass),
                BaseStructuralClass = viewModel.ConvertStringToStructuralClass(viewModel.SelectedBaseStructuralClass),
                NominalMaximumAggregateSizeIsGreaterThan32mm = viewModel.NominalMaximumAggregateSizeIsGreaterThan32mm,
                DesignWorkingLifeOf100Years = viewModel.DesignWorkingLifeOf100Years,
                MemberWithSlabGeometry      = viewModel.MemberWithSlabGeometry,
                SpecialQualityControlOfTheConcreteProductionEnsured = viewModel.SpecialQualityControlOfTheConcreteProductionEnsured,
                AdditiveSafetyElement = viewModel.AdditiveSafetyElement / 1000d,
                ReductionOfMinimumCoverForUseOfAdditionalProtection = viewModel.ReductionOfMinimumCoverForUseOfAdditionalProtection / 1000d,
                ReductionOfMinimumCoverForUseOfStainlessSteel       = viewModel.ReductionOfMinimumCoverForUseOfStainlessSteel / 1000d,
                AllowanceInDesignForDeviation = viewModel.AllowanceInDesignForDeviation / 1000d
            };

            concreteCoverCalculator.CalculateNominalConcreteCover();

            viewModel.StructuralClass = concreteCoverCalculator.StructuralClass.ToString();
            viewModel.MinimumCoverDueToBondRequirement         = concreteCoverCalculator.MinimumCoverDueToBondRequirement * 1000d;
            viewModel.MinimumCoverDueToEnvironmentalConditions = concreteCoverCalculator.MinimumCoverDueToEnvironmentalConditions * 1000d;
            viewModel.MinimumCover = concreteCoverCalculator.MinimumCover * 1000d;
            viewModel.NominalCover = concreteCoverCalculator.NominalCover * 1000d;

            Assert.AreEqual(expectedStructuralClass, viewModel.StructuralClass);
            Assert.AreEqual(expectedMinimumCoverDueToBondRequirement, viewModel.MinimumCoverDueToBondRequirement);
            Assert.AreEqual(expectedMinimumCoverDueToEnvironmentalConditions, viewModel.MinimumCoverDueToEnvironmentalConditions);
            Assert.AreEqual(expectedMinimumCover, viewModel.MinimumCover);
            Assert.AreEqual(expectedNominalCover, viewModel.NominalCover);
        }
Exemple #3
0
        public ConcreteCoverOutputString GetResults(ConcreteCoverInput input)
        {
            var calculator = new ConcreteCoverCalculator();
            var output     = calculator.CalculateNominalConcreteCover(input);

            return(new ConcreteCoverOutputString {
                StructuralClass = "S" + output.StructuralClass.ToString(),
                MinimumCover = (output.MinimumCover * 1000).ToString() + " mm",
                MinimumCoverDueToBondRequirement = (output.MinimumCoverDueToBondRequirement * 1000).ToString() + " mm",
                MinimumCoverDueToEnvironmentalConditions = (output.MinimumCoverDueToEnvironmentalConditions * 1000).ToString() + " mm",
                NominalCover = (output.NominalCover * 1000).ToString() + " mm"
            });
        }
Exemple #4
0
        public void CalculateMinimumCoverDueToBondRequirementTests(int testCaseNumber, ArrangementOfBars arrangementOfBars,
                                                                   double rebarDiameter, bool NominalMaximumAggregateSizeIsGreaterThan32mm, double expectedCover)
        {
            ConcreteCoverInput inputData = new ConcreteCoverInput()
            {
                ArrangementOfBars = ConcreteCoverCalculator.ConvertArrangementOfBarsToString(arrangementOfBars),
                RebarDiameter     = (rebarDiameter * 1000).ToString() + " mm",
                NominalMaximumAggregateSizeIsGreaterThan32mm = NominalMaximumAggregateSizeIsGreaterThan32mm
            };

            ConcreteCoverCalculator coverCalculator = new ConcreteCoverCalculator();

            var result = coverCalculator.CalculateMinimumCoverDueToBondRequirement(inputData);

            Assert.AreEqual(expectedCover, result.MinimumCoverDueToBondRequirement);
        }
        public void CalculateMinimumCoverDueToEnvironmentalConditionsTests(int testCaseNumber, ExposureClass exposureClass,
                                                                           StructuralClass structuralClass, double expectedCover)
        {
            ConcreteCoverInput inputData = new ConcreteCoverInput()
            {
                ExposureClass = ConcreteCoverCalculator.ConvertExposureClassToString(exposureClass),
            };

            ConcreteCoverCalculator coverCalculator = new ConcreteCoverCalculator();

            coverCalculator.outputData.StructuralClass = ConcreteCoverCalculator.ConvertStructuralClassToString(structuralClass);

            var result = coverCalculator.CalculateMinimumCoverDueToEnvironmentalConditions(inputData);

            Assert.AreEqual(expectedCover, result.MinimumCoverDueToEnvironmentalConditions);
        }
        public void CalculateNominalConcreteCoverTests_(int testCaseNumber, double minimumCover, double allowanceInDesignForDeviation, double expectedCover)
        {
            ConcreteCoverInput inputData = new ConcreteCoverInput()
            {
                ArrangementOfBars             = "Separated",
                RebarDiameter                 = "16 mm",
                ExposureClass                 = "XC3",
                ConcreteClass                 = "C30/37",
                BaseStructuralClass           = "S4",
                AllowanceInDesignForDeviation = allowanceInDesignForDeviation
            };

            ConcreteCoverCalculator coverCalculator = new ConcreteCoverCalculator();

            coverCalculator.outputData.MinimumCover = minimumCover;

            var result = coverCalculator.CalculateNominalConcreteCover(inputData);

            Assert.AreEqual(expectedCover, result.NominalCover);
        }
Exemple #7
0
        public void CalculateStructuralClass(string testCaseNumber, StructuralClass structureClass,
                                             bool designWorkingLifeOf100Years, ExposureClass exposureClass, ConcreteClass concreteClass,
                                             bool memberWithSlabGeometry, bool specialQualityControlOfTheConcreteProductionEnsured,
                                             string expectedStructuralClass)
        {
            ConcreteCoverInput inputData = new ConcreteCoverInput()
            {
                // Recommended Structural Class when design working life is 50 years
                BaseStructuralClass         = ConcreteCoverCalculator.ConvertStructuralClassToString(structureClass),
                DesignWorkingLifeOf100Years = designWorkingLifeOf100Years,
                ExposureClass          = ConcreteCoverCalculator.ConvertExposureClassToString(exposureClass),
                ConcreteClass          = ConcreteCoverCalculator.ConvertConcreteClassToString(concreteClass),
                MemberWithSlabGeometry = memberWithSlabGeometry,
                SpecialQualityControlOfTheConcreteProductionEnsured = specialQualityControlOfTheConcreteProductionEnsured
            };

            ConcreteCoverCalculator coverCalculator = new ConcreteCoverCalculator();

            var result = coverCalculator.CalculateStructuralClass(inputData);

            Assert.AreEqual(expectedStructuralClass, "S" + result.StructuralClass);
        }