public DischargeActivity GetDischargeActivity()
        {
            var unitSystem          = CommonMapper.GetUnitSystem(_parsedData);
            var observationInterval = CommonMapper.GetObservationTimeInterval(_visitInterval.Start,
                                                                              _parsedData);

            var dischargeActivity = CreateDischargeActivityWithSummary(observationInterval, unitSystem);

            SetManualGaugingSection(dischargeActivity, unitSystem, observationInterval);

            return(dischargeActivity);
        }
        public IEnumerable <Vertical> GetVerticals()
        {
            var timeInterval = CommonMapper.GetObservationTimeInterval(_visitStart, _parsedData);

            var verticals   = new List <Vertical>();
            var startOfDate = new DateTimeOffset(timeInterval.Start.Date, timeInterval.Start.Offset);

            var calculatedTotalQ = _parsedData.VerticalObservations.Sum(v => v.FlowQSum);
            var meterCalibration = GetMeterCalibration();

            for (var index = 0; index < _parsedData.VerticalObservations.Count; index++)
            {
                var verticalObservation = _parsedData.VerticalObservations[index];
                var previousTaglinePos  = index == 0 ? 0 : _parsedData.VerticalObservations[index - 1].Distance;

                var segment        = GetSegment(verticalObservation, previousTaglinePos, calculatedTotalQ);
                var sequenceNumber = index + 1;

                var vertical = new Vertical
                {
                    Segment = segment,
                    MeasurementConditionData = GetConditionData(verticalObservation),
                    TaglinePosition          = verticalObservation.Distance,
                    SequenceNumber           = sequenceNumber,
                    MeasurementTime          = startOfDate.Add(verticalObservation.StartTime),
                    VerticalType             = GetVerticalTypeOrMidRiver(verticalObservation, sequenceNumber),
                    EffectiveDepth           = verticalObservation.Depth,

                    VelocityObservation     = GetVelocityObservation(verticalObservation, meterCalibration, sequenceNumber),
                    Comments                = verticalObservation.Comments,
                    FlowDirection           = FlowDirectionType.Normal,
                    SoundedDepth            = verticalObservation.Depth,
                    IsSoundedDepthEstimated = verticalObservation.Comments.Contains("DEPTH ESTIMATED"),
                    //ObliqueFlowCorrection: N/A
                };

                SetAdditionalVerticalComments(vertical, verticalObservation);

                verticals.Add(vertical);
            }

            return(verticals);
        }