public void ProcessGaugingSummary_ValidGaugingSummary_MapsObserverToParty() { var expectedNumberOfItems = 3; var startDate = Fixture.Create <DateTime>(); var duration = Fixture.Create <TimeSpan>().Duration(); var observer = Fixture.Create <string>(); var gaugingSummaryItems = Fixture.Build <GaugingSummaryItem>() .OmitAutoProperties() .With(x => x.StartDate, startDate) .With(x => x.EndDate, startDate.Add(duration)) .With(x => x.ObserversName, observer) .With(x => x.GaugingId) .With(x => x.Flow) .With(x => x.Area) .With(x => x.MeanVelocity) .With(x => x.PanelItems, new PanelItem[] {}) .CreateMany(expectedNumberOfItems).ToList(); var gaugingSummary = new GaugingSummary { GaugingSummaryItems = gaugingSummaryItems }; _gaugingSummaryProcessor.ProcessGaugingSummary(gaugingSummary); FieldDataResultsAppender .Received(expectedNumberOfItems) .AddFieldVisit(Arg.Any <LocationInfo>(), Arg.Is <FieldVisitDetails>(x => x.Party == observer)); FieldDataResultsAppender .Received(expectedNumberOfItems) .AddDischargeActivity(Arg.Any <FieldVisitInfo>(), Arg.Is <DischargeActivity>(x => x.Party == observer)); }
public void ProcessGaugingSummary(GaugingSummary gaugingSummary) { try { var dischargeActivityMapper = CreateDischargeActivityMapper(); foreach (var gaugingSummaryItem in gaugingSummary.GaugingSummaryItems) { var locationIdentifier = gaugingSummaryItem.SiteId; var location = _fieldDataResultsAppender.GetLocationByIdentifier(locationIdentifier); var dischargeActivity = dischargeActivityMapper.Map(gaugingSummaryItem, location.UtcOffset); var fieldVisit = CreateFieldVisit(dischargeActivity); var fieldVisitInfo = _fieldDataResultsAppender.AddFieldVisit(location, fieldVisit); _fieldDataResultsAppender.AddDischargeActivity(fieldVisitInfo, dischargeActivity); } _logger.Info(FormattableString.Invariant($"Processed gauging summary with {gaugingSummary.GaugingSummaryItems.Count} item(s)")); } catch (Exception e) { throw new PocketGaugerDataPersistenceException("Failed to persist pocket gauger data", e); } }
private void AttachMeterDetails(GaugingSummary gaugingSummary, PocketGaugerFiles pocketGaugerFiles) { var meterDetails = _meterDetailsParser.Parse(pocketGaugerFiles); foreach (var gaugingSummaryItem in gaugingSummary.GaugingSummaryItems) { gaugingSummaryItem.MeterDetailsItem = meterDetails[gaugingSummaryItem.MeterId]; } }
private void AttachPanelItems(GaugingSummary gaugingSummary, PocketGaugerFiles pocketGaugerFiles) { var panelItems = _panelParser.Parse(pocketGaugerFiles); foreach (var gaugingSummaryItem in gaugingSummary.GaugingSummaryItems) { gaugingSummaryItem.PanelItems = panelItems.Where(p => p.GaugingId == gaugingSummaryItem.GaugingId).ToList(); } }
private void SetUpGaugingSummaryParser() { _gaugingSummaryParser = Substitute.For <IGaugingSummaryParser>(); var gaugingSummaryItems = _fixture.Build <GaugingSummaryItem>() .Without(g => g.MeterDetailsItem) .Without(g => g.PanelItems) .CreateMany(3) .ToList(); for (var i = 0; i < gaugingSummaryItems.Count; i++) { gaugingSummaryItems[i].MeterId = _meterIds[i]; } var gaugingSummary = new GaugingSummary { GaugingSummaryItems = gaugingSummaryItems }; _gaugingSummaryParser.Parse(Arg.Any <PocketGaugerFiles>()).Returns(gaugingSummary); }