private void ToAverageInOtherTypesSection(Section section, CampaignReport sourceCampaignReport, ref int initialIacsID)
        {
            try
            {
                Dictionary<string, Dictionary<ISectionElement, List<IGaugingElement>>> gaugingPointsByStructureElementType = section.GetGaugingElementsBySectionElementInCampaignReport("SteelThicknessGaugingPoint", sourceCampaignReport);
                if (gaugingPointsByStructureElementType == null || gaugingPointsByStructureElementType.Count == 0)
                    return;

                List<SteelThicknessGaugingPoint> averageGaugingPoints = null;
                this.averageGaugingsCreator.CreateAverageGaugingPointsInNonLongitudinalSection(section, gaugingPointsByStructureElementType, true, out averageGaugingPoints);

                this.AddAverageGaugingPointsInSection(section, averageGaugingPoints);
            }
            catch (Exception ex)
            {
                throw new ApplicationException("Cannot create average gauging points in Other Types Section!", ex);
            }
        }
        private void ToAverageInLongitudinalSection(Section section1, Section section2, CampaignReport sourceCampaignReport, ref int initialIacsID)
        {
            try
            {
                if (section1 == null && section2 == null)
                    return;

                Dictionary<string, Dictionary<ISectionElement, List<IGaugingElement>>> gaugingPointsByStructureElementTypeInSection1 = null;
                Dictionary<string, Dictionary<ISectionElement, List<IGaugingElement>>> gaugingPointsByStructureElementTypeInSection2 = null;

                if (section1 != null)
                {
                    gaugingPointsByStructureElementTypeInSection1 = section1.GetGaugingElementsBySectionElementInCampaignReport("SteelThicknessGaugingPoint", sourceCampaignReport);
                }
                if (section2 != null)
                {
                    gaugingPointsByStructureElementTypeInSection2 = section2.GetGaugingElementsBySectionElementInCampaignReport("SteelThicknessGaugingPoint", sourceCampaignReport);
                }

                List<SteelThicknessGaugingPoint> averageGaugingPointsInSection1 = null;
                List<SteelThicknessGaugingPoint> averageGaugingPointsInSection2 = null;

                this.averageGaugingsCreator.CreateAverageGaugingPointsInLongitudinalSection(section1, section2, gaugingPointsByStructureElementTypeInSection1, gaugingPointsByStructureElementTypeInSection2, out averageGaugingPointsInSection1, out averageGaugingPointsInSection2);

                this.AddAverageGaugingPointsInSection(section1, averageGaugingPointsInSection1);
                this.AddAverageGaugingPointsInSection(section2, averageGaugingPointsInSection2);
            }
            catch (Exception ex)
            {
                throw new ApplicationException("Campaign cannot be converted to IACS in Symmetric Longitudinal Section!", ex);
            }
        }