public RoadSegmentEnumerator(SqlConnection connection, IClock clock, WellKnownBinaryReader reader, ILogger <ImportedRoadSegmentsReader> logger) { _connection = connection; _clock = clock; _reader = reader; _logger = logger; _state = State.Initial; _batch = Array.Empty <ImportedRoadSegment>(); _index = -1; }
public LegacyEventReader(IClock clock, WellKnownBinaryReader wkbReader, ILoggerFactory loggerFactory) { if (clock == null) { throw new ArgumentNullException(nameof(clock)); } if (wkbReader == null) { throw new ArgumentNullException(nameof(wkbReader)); } if (loggerFactory == null) { throw new ArgumentNullException(nameof(loggerFactory)); } _clock = clock; _reader = new CompositeEventReader( new TimedEventReader( new ImportedOrganizationsReader(clock, loggerFactory.CreateLogger <ImportedOrganizationsReader>()), 100, loggerFactory.CreateLogger <TimedEventReader>() ), new TimedEventReader( new ImportedRoadNodesReader(clock, wkbReader, loggerFactory.CreateLogger <ImportedRoadNodesReader>()), TimedEventReader.DefaultThreshold, loggerFactory.CreateLogger <TimedEventReader>() ), new TimedEventReader( new ImportedRoadSegmentsReader(clock, wkbReader, loggerFactory.CreateLogger <ImportedRoadSegmentsReader>()), TimedEventReader.DefaultThreshold, loggerFactory.CreateLogger <TimedEventReader>() ), new TimedEventReader( new ImportedGradeSeparatedJunctionsReader(clock, loggerFactory.CreateLogger <ImportedGradeSeparatedJunctionsReader>()), 100, loggerFactory.CreateLogger <TimedEventReader>() )); }
public Task When_road_segments_were_imported() { var imported_segments = Enumerable .Range(0, new Random().Next(10)) .Select(index => new ImportedRoadSegment { Id = _fixture.Create <int>(), StartNodeId = _fixture.Create <int>(), EndNodeId = _fixture.Create <int>(), Geometry = BackOffice.Core.GeometryTranslator.Translate(_fixture.Create <MultiLineString>()), GeometryVersion = _fixture.Create <int>(), MaintenanceAuthority = _fixture.Create <MaintenanceAuthority>(), GeometryDrawMethod = _fixture.Create <RoadSegmentGeometryDrawMethod>(), Morphology = _fixture.Create <RoadSegmentMorphology>(), Status = _fixture.Create <RoadSegmentStatus>(), Category = _fixture.Create <RoadSegmentCategory>(), AccessRestriction = _fixture.Create <RoadSegmentAccessRestriction>(), LeftSide = _fixture.Create <ImportedRoadSegmentSideAttributes>(), RightSide = _fixture.Create <ImportedRoadSegmentSideAttributes>(), PartOfEuropeanRoads = _fixture.CreateMany <ImportedRoadSegmentEuropeanRoadAttributes>().ToArray(), PartOfNationalRoads = _fixture.CreateMany <ImportedRoadSegmentNationalRoadAttributes>().ToArray(), PartOfNumberedRoads = _fixture.CreateMany <ImportedRoadSegmentNumberedRoadAttributes>().ToArray(), Lanes = _fixture.CreateMany <ImportedRoadSegmentLaneAttributes>().ToArray(), Widths = _fixture.CreateMany <ImportedRoadSegmentWidthAttributes>().ToArray(), Surfaces = _fixture.CreateMany <ImportedRoadSegmentSurfaceAttributes>().ToArray(), Version = _fixture.Create <int>(), RecordingDate = _fixture.Create <DateTime>(), Origin = _fixture.Create <ImportedOriginProperties>() }) .ToArray(); var givens = Array.ConvertAll(imported_segments, imported => (object)imported); var reader = new WellKnownBinaryReader(); return(new RoadNetworkInfoProjection() .Scenario() .Given( new BeganRoadNetworkImport() ) .Given(givens) .Expect( new RoadNetworkInfo { Id = 0, CompletedImport = false, OrganizationCount = 0, RoadNodeCount = 0, TotalRoadNodeShapeLength = 0, RoadSegmentCount = imported_segments.Length, RoadSegmentSurfaceAttributeCount = imported_segments.Aggregate(0, (current, imported) => current + imported.Surfaces.Length), RoadSegmentLaneAttributeCount = imported_segments.Aggregate(0, (current, imported) => current + imported.Lanes.Length), RoadSegmentWidthAttributeCount = imported_segments.Aggregate(0, (current, imported) => current + imported.Widths.Length), RoadSegmentEuropeanRoadAttributeCount = imported_segments.Aggregate(0, (current, imported) => current + imported.PartOfEuropeanRoads.Length), RoadSegmentNationalRoadAttributeCount = imported_segments.Aggregate(0, (current, imported) => current + imported.PartOfNationalRoads.Length), RoadSegmentNumberedRoadAttributeCount = imported_segments.Aggregate(0, (current, imported) => current + imported.PartOfNumberedRoads.Length), TotalRoadSegmentShapeLength = imported_segments.Aggregate(new WordLength(0), (current, imported) => current .Plus( new PolyLineMShapeContent( GeometryTranslator.FromGeometryMultiLineString( BackOffice.Core.GeometryTranslator.Translate(imported.Geometry) ) ) .ContentLength .Plus(ShapeRecord.HeaderLength) ) ) .ToInt32(), GradeSeparatedJunctionCount = 0 } )); }
public ImportedRoadSegmentsReader(IClock clock, WellKnownBinaryReader reader, ILogger <ImportedRoadSegmentsReader> logger) { _clock = clock ?? throw new ArgumentNullException(nameof(clock)); _reader = reader ?? throw new ArgumentNullException(nameof(reader)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); }
public ImportedRoadNodesReader(IClock clock, WellKnownBinaryReader wkbReader, ILogger <ImportedRoadNodesReader> logger) { _clock = clock ?? throw new ArgumentNullException(nameof(clock)); _wkbReader = wkbReader ?? throw new ArgumentNullException(nameof(wkbReader)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); }