private static MeterSuspensionAndDeploymentPair CreateMeterSuspensionWithBridgeDeployment( GaugingSummaryItem summaryItem, MeterSuspensionType meterSuspensionType) { var bridgeDeploymentMethod = DetermineBridgeDeploymentMethod(summaryItem); return(new MeterSuspensionAndDeploymentPair(meterSuspensionType, bridgeDeploymentMethod)); }
public ManualGaugingDischargeSection Map(GaugingSummaryItem summaryItem, DischargeActivity dischargeActivity) { var dischargeSection = CreateDischargeSectionWithRawValuesFromSummaryItem(dischargeActivity.MeasurementPeriod, summaryItem); UpdateDischargeSectionWithDerivedValues(dischargeSection, summaryItem); UpdateDischargeSectionWithVerticals(dischargeSection, summaryItem); return(dischargeSection); }
public void SetUp() { SetupAutoFixture(); SetUpMeterCalibrationMapper(); _gaugingSummaryItem = _fixture.Create <GaugingSummaryItem>(); _deploymentMethod = _fixture.Create <DeploymentMethodType>(); _verticalMapper = new VerticalMapper(_meterCalibrationMapper); }
public void SetupForAllTests() { SetupAutoFixture(); SetupMockVerticalMapper(); _gaugingSummaryItem = _fixture.Create <GaugingSummaryItem>(); _mapper = new PointVelocityMapper(_mockVerticalMapper); }
public void SetupForEachTest() { var startDate = _fixture.Create <DateTime>(); var duration = _fixture.Create <TimeSpan>().Duration(); _gaugingSummaryItem = _fixture.Build <GaugingSummaryItem>() .With(x => x.StartDate, startDate) .With(x => x.EndDate, startDate.Add(duration)) .Create(); }
public DischargeActivity Map(GaugingSummaryItem gaugingSummary, TimeSpan locationTimeZoneOffset) { var dischargeActivity = CreateDischargeActivity(gaugingSummary, locationTimeZoneOffset); dischargeActivity.ChannelMeasurements.Add(CreatePointVelocitySubActivity(gaugingSummary, dischargeActivity)); foreach (var gageHeightMeasurement in CreateGageHeightMeasurements(gaugingSummary, locationTimeZoneOffset)) { dischargeActivity.GageHeightMeasurements.Add(gageHeightMeasurement); } return(dischargeActivity); }
private static DischargeActivity CreateDischargeActivity(GaugingSummaryItem gaugingSummary, TimeSpan locationTimeZoneOffset) { var startTime = new DateTimeOffset(gaugingSummary.StartDate, locationTimeZoneOffset); var endTime = new DateTimeOffset(gaugingSummary.EndDate, locationTimeZoneOffset); var surveyPeriod = new DateTimeInterval(startTime, endTime); var discharge = gaugingSummary.Flow.AsDischargeMeasurement(); return(new DischargeActivity(surveyPeriod, discharge) { Party = gaugingSummary.ObserversName, MeasurementId = GenerateMeasurementId(gaugingSummary), MeanIndexVelocity = GetMeanIndexVelocity(gaugingSummary) }); }
public List <Vertical> Map(GaugingSummaryItem gaugingSummaryItem, DeploymentMethodType deploymentMethod) { var verticals = new List <Vertical>(); foreach (var panelItem in gaugingSummaryItem.PanelItems) { var vertical = CreateVertical(panelItem); vertical.Segment = CreateSegment(panelItem); vertical.VelocityObservation = CreateVelocityObservation( deploymentMethod, panelItem, gaugingSummaryItem.MeterDetailsItem); verticals.Add(vertical); } SetVerticalTypeForFirstAndLastVertical(verticals); SetTotalDischargePortion(verticals); return(verticals); }
private static DeploymentMethodType DetermineBridgeDeploymentMethod(GaugingSummaryItem summaryItem) { var startPoint = MapNullableStartPoint(summaryItem.StartBank); switch (startPoint) { case StartPointType.LeftEdgeOfWater: return(DeploymentMethodType.BridgeDownstreamSide); case StartPointType.RightEdgeOfWater: return(DeploymentMethodType.BridgeUpstreamSide); case null: return(DeploymentMethodType.Unspecified); default: return(DeploymentMethodType.Unspecified); } }
private static Measurement GetMeanIndexVelocity(GaugingSummaryItem gaugingSummary) { return(gaugingSummary.UseIndexVelocity ? gaugingSummary.IndexVelocity.AsVelocityMeasurement() : null); }
private static string GenerateMeasurementId(GaugingSummaryItem gaugingSummary) { return(gaugingSummary.GaugingId.ToString(NumberFormatInfo.InvariantInfo)); }
private static IEnumerable <GageHeightMeasurement> CreateGageHeightMeasurements(GaugingSummaryItem gaugingSummary, TimeSpan locationTimeZoneOffset) { if (gaugingSummary.StartStage != null && gaugingSummary.EndStage != null) { yield return(CreateGageHeightMeasurement(gaugingSummary.StartStage, gaugingSummary.StartDate, locationTimeZoneOffset)); yield return(CreateGageHeightMeasurement(gaugingSummary.EndStage, gaugingSummary.EndDate, locationTimeZoneOffset)); } else if (gaugingSummary.MeanStage != null) { var measurementTime = DateTimeHelper.GetMean(gaugingSummary.StartDate, gaugingSummary.EndDate); yield return(CreateGageHeightMeasurement(gaugingSummary.MeanStage, measurementTime, locationTimeZoneOffset)); } }
private ChannelMeasurementBase CreatePointVelocitySubActivity(GaugingSummaryItem gaugingSummary, DischargeActivity dischargeActivity) { return(_pointVelocityMapper.Map(gaugingSummary, dischargeActivity)); }
private static MeterSuspensionAndDeploymentPair MapMeterSuspensionAndDeploymentMethod(GaugingSummaryItem summaryItem) { switch (summaryItem.GaugingMethod) { case GaugingMethod.BridgeWithRods: return(CreateMeterSuspensionWithBridgeDeployment(summaryItem, MeterSuspensionType.RoundRod)); case GaugingMethod.BridgeWithWinch: return(CreateMeterSuspensionWithBridgeDeployment(summaryItem, MeterSuspensionType.PackReel)); case GaugingMethod.BridgeWithHandlines: return(CreateMeterSuspensionWithBridgeDeployment(summaryItem, MeterSuspensionType.Handline)); case GaugingMethod.BoatWithRods: return(CreateMeterSuspensionWithBoatDeployment(MeterSuspensionType.RoundRod)); case GaugingMethod.BoatWithWinch: return(CreateMeterSuspensionWithBoatDeployment(MeterSuspensionType.PackReel)); case GaugingMethod.BoatWithHandlines: return(CreateMeterSuspensionWithBoatDeployment(MeterSuspensionType.Handline)); case GaugingMethod.Ice: return(new MeterSuspensionAndDeploymentPair(MeterSuspensionType.IceSurfaceMount, DeploymentMethodType.Ice)); case GaugingMethod.Waded: return(new MeterSuspensionAndDeploymentPair(MeterSuspensionType.Unspecified, DeploymentMethodType.Wading)); case GaugingMethod.Cableway: return(new MeterSuspensionAndDeploymentPair(MeterSuspensionType.Unspecified, DeploymentMethodType.Cableway)); default: return(new MeterSuspensionAndDeploymentPair(MeterSuspensionType.Unspecified, DeploymentMethodType.Unspecified)); } }
private void UpdateDischargeSectionWithVerticals(ManualGaugingDischargeSection dischargeSection, GaugingSummaryItem summaryItem) { var verticals = _verticalMapper.Map(summaryItem, dischargeSection.DeploymentMethod); foreach (var vertical in verticals) { dischargeSection.Verticals.Add(vertical); } dischargeSection.WidthValue = CalculateTotalWidth(verticals); }
private static void UpdateDischargeSectionWithDerivedValues(ManualGaugingDischargeSection dischargeSection, GaugingSummaryItem summaryItem) { dischargeSection.DischargeMethod = MapDischargeMethod(summaryItem.FlowCalculationMethod); dischargeSection.StartPoint = MapStartPoint(summaryItem.StartBank); dischargeSection.VelocityObservationMethod = DetermineVelocityObservationMethod(summaryItem); var meterSuspensionAndDeploymentMethod = MapMeterSuspensionAndDeploymentMethod(summaryItem); dischargeSection.MeterSuspension = meterSuspensionAndDeploymentMethod.MeterSuspension; dischargeSection.DeploymentMethod = meterSuspensionAndDeploymentMethod.DeploymentMethod; }
private static ManualGaugingDischargeSection CreateDischargeSectionWithRawValuesFromSummaryItem(DateTimeInterval measurementPeriod, GaugingSummaryItem summaryItem) { if (!summaryItem.Area.HasValue) { throw new ArgumentNullException(nameof(summaryItem.Area)); } if (!summaryItem.MeanVelocity.HasValue) { throw new ArgumentNullException(nameof(summaryItem.MeanVelocity)); } var factory = new ManualGaugingDischargeSectionFactory(ParametersAndMethodsHelper.UnitSystem) { DefaultChannelName = ParametersAndMethodsHelper.DefaultChannelName }; var dischargeSection = factory.CreateManualGaugingDischargeSection(measurementPeriod, summaryItem.Flow.AsDischargeMeasurement().Value); dischargeSection.Party = summaryItem.ObserversName; dischargeSection.Comments = summaryItem.Comments; dischargeSection.AreaValue = summaryItem.Area.Value; dischargeSection.VelocityAverageValue = summaryItem.MeanVelocity.Value; return(dischargeSection); }
private static PointVelocityObservationType DetermineVelocityObservationMethod(GaugingSummaryItem summaryItem) { if (summaryItem.SampleAt2 && summaryItem.SampleAt4 && summaryItem.SampleAt5 && summaryItem.SampleAt6 && summaryItem.SampleAt8 && summaryItem.SampleAtSurface && summaryItem.SampleAtBed) { return(PointVelocityObservationType.Unknown); } if (summaryItem.SampleAt2 && summaryItem.SampleAt4 && summaryItem.SampleAt5 && summaryItem.SampleAt6 && summaryItem.SampleAt8 && (summaryItem.SampleAtSurface ^ summaryItem.SampleAtBed)) { return(PointVelocityObservationType.SixPoint); } if (summaryItem.SampleAt2 && summaryItem.SampleAt4 && summaryItem.SampleAt5 && summaryItem.SampleAt6 && summaryItem.SampleAt8) { return(PointVelocityObservationType.FivePoint); } if (summaryItem.SampleAt2 && summaryItem.SampleAt6 && summaryItem.SampleAt8) { return(PointVelocityObservationType.OneAtPointTwoPointSixAndPointEight); } if (summaryItem.SampleAt2 && summaryItem.SampleAt8) { return(PointVelocityObservationType.OneAtPointTwoAndPointEight); } if (summaryItem.SampleAt6) { return(PointVelocityObservationType.OneAtPointSix); } if (summaryItem.SampleAt5) { return(PointVelocityObservationType.OneAtPointFive); } if (summaryItem.SampleAtSurface) { return(PointVelocityObservationType.Surface); } return(PointVelocityObservationType.Unknown); }