Ejemplo n.º 1
0
 public AddRoadSegment(
     RecordNumber recordNumber,
     RoadSegmentId temporaryId,
     RoadNodeId startNodeId,
     RoadNodeId endNodeId,
     OrganizationId maintenanceAuthority,
     RoadSegmentGeometryDrawMethod geometryDrawMethod,
     RoadSegmentMorphology morphology,
     RoadSegmentStatus status,
     RoadSegmentCategory category,
     RoadSegmentAccessRestriction accessRestriction,
     CrabStreetnameId?leftSideStreetNameId,
     CrabStreetnameId?rightSideStreetNameId)
 {
     RecordNumber         = recordNumber;
     TemporaryId          = temporaryId;
     StartNodeId          = startNodeId;
     EndNodeId            = endNodeId;
     Geometry             = null;
     MaintenanceAuthority = maintenanceAuthority;
     GeometryDrawMethod   = geometryDrawMethod ?? throw new ArgumentNullException(nameof(geometryDrawMethod));
     Morphology           = morphology ?? throw new ArgumentNullException(nameof(morphology));
     Status                = status ?? throw new ArgumentNullException(nameof(status));
     Category              = category ?? throw new ArgumentNullException(nameof(category));
     AccessRestriction     = accessRestriction ?? throw new ArgumentNullException(nameof(accessRestriction));
     LeftSideStreetNameId  = leftSideStreetNameId;
     RightSideStreetNameId = rightSideStreetNameId;
     Lanes    = new RoadSegmentLaneAttribute[0];
     Widths   = new RoadSegmentWidthAttribute[0];
     Surfaces = new RoadSegmentSurfaceAttribute[0];
 }
Ejemplo n.º 2
0
 public AddRoadSegment WithLane(RoadSegmentLaneAttribute lane)
 {
     return(new AddRoadSegment(
                RecordNumber, TemporaryId, StartNodeId, EndNodeId, Geometry,
                MaintenanceAuthority, GeometryDrawMethod, Morphology, Status, Category, AccessRestriction,
                LeftSideStreetNameId, RightSideStreetNameId,
                new List <RoadSegmentLaneAttribute>(Lanes)
     {
         lane
     }, Widths, Surfaces));
 }
Ejemplo n.º 3
0
        public TranslatedChanges Translate(ZipArchiveEntry entry, IDbaseRecordEnumerator <RoadSegmentLaneChangeDbaseRecord> records, TranslatedChanges changes)
        {
            if (entry == null)
            {
                throw new ArgumentNullException(nameof(entry));
            }
            if (records == null)
            {
                throw new ArgumentNullException(nameof(records));
            }
            if (changes == null)
            {
                throw new ArgumentNullException(nameof(changes));
            }

            while (records.MoveNext())
            {
                var record = records.Current;
                if (record != null)
                {
                    switch (record.RECORDTYPE.Value)
                    {
                    case RecordType.EqualIdentifier:
                    case RecordType.AddedIdentifier:
                    case RecordType.ModifiedIdentifier:
                        var segmentId = new RoadSegmentId(record.WS_OIDN.Value);
                        if (changes.TryFindAddRoadSegment(segmentId, out var change))
                        {
                            var lane = new RoadSegmentLaneAttribute(
                                new AttributeId(record.RS_OIDN.Value),
                                new RoadSegmentLaneCount(record.AANTAL.Value),
                                RoadSegmentLaneDirection.ByIdentifier[record.RICHTING.Value],
                                RoadSegmentPosition.FromDouble(record.VANPOSITIE.Value),
                                RoadSegmentPosition.FromDouble(record.TOTPOSITIE.Value)
                                );
                            changes = changes.Replace(change, change.WithLane(lane));
                        }
                        break;
                    }
                }
            }

            return(changes);
        }