Beispiel #1
0
        private GeometryMethod MapToGeometryMethod(CrabAddressPositionOrigin addressPositionOrigin)
        {
            switch (addressPositionOrigin)
            {
            case CrabAddressPositionOrigin.ManualIndicationFromLot:
            case CrabAddressPositionOrigin.ManualIndicationFromParcel:
            case CrabAddressPositionOrigin.ManualIndicationFromBuilding:
            case CrabAddressPositionOrigin.ManualIndicationFromMailbox:
            case CrabAddressPositionOrigin.ManualIndicationFromUtilityConnection:
            case CrabAddressPositionOrigin.ManualIndicationFromAccessToTheRoad:
            case CrabAddressPositionOrigin.ManualIndicationFromEntryOfBuilding:
            case CrabAddressPositionOrigin.ManualIndicationFromStand:
            case CrabAddressPositionOrigin.ManualIndicationFromBerth:
                return(GeometryMethod.AppointedByAdministrator);

            case CrabAddressPositionOrigin.DerivedFromBuilding:
            case CrabAddressPositionOrigin.DerivedFromParcelGrb:
            case CrabAddressPositionOrigin.DerivedFromParcelCadastre:
            case CrabAddressPositionOrigin.DerivedFromStreet:
            case CrabAddressPositionOrigin.DerivedFromMunicipality:
                return(GeometryMethod.DerivedFromObject);

            case CrabAddressPositionOrigin.InterpolatedBasedOnAdjacentHouseNumbersBuilding:
            case CrabAddressPositionOrigin.InterpolatedBasedOnAdjacentHouseNumbersParcelGrb:
            case CrabAddressPositionOrigin.InterpolatedBasedOnAdjacentHouseNumbersParcelCadastre:
            case CrabAddressPositionOrigin.InterpolatedBasedOnRoadConnection:
                return(GeometryMethod.Interpolated);

            default:
                throw new NotImplementedException($"Cannot map {addressPositionOrigin} to GeometryMethod");
            }
        }
Beispiel #2
0
        public void ImportHouseNumberPositionFromCrab(
            CrabAddressPositionId addressPositionId,
            CrabHouseNumberId houseNumberId,
            WkbGeometry addressPosition,
            CrabAddressPositionOrigin addressPositionOrigin,
            CrabAddressNature addressNature,
            CrabLifetime lifetime,
            CrabTimestamp timestamp,
            CrabOperator @operator,
            CrabModification?modification,
            CrabOrganisation?organisation)
        {
            GuardRemoved(modification);

            var legacyEvent = new AddressHouseNumberPositionWasImportedFromCrab(
                addressPositionId,
                houseNumberId,
                addressPosition,
                addressPositionOrigin,
                addressNature,
                lifetime,
                timestamp,
                @operator,
                modification,
                organisation);

            ApplyPositionChangeFor <AddressHouseNumberPositionWasImportedFromCrab, int>(_crabHouseNumberPositionEvents, legacyEvent);

            ApplyAddressCompletion();

            ApplyChange(legacyEvent);
        }
Beispiel #3
0
        public void ImportSubaddressPositionFromCrab(
            CrabAddressPositionId addressPositionId,
            CrabSubaddressId subaddressId,
            WkbGeometry addressPosition,
            CrabAddressPositionOrigin addressPositionOrigin,
            CrabAddressNature addressNature,
            CrabLifetime lifetime,
            CrabTimestamp timestamp,
            CrabOperator @operator,
            CrabModification?modification,
            CrabOrganisation?organisation)
        {
            if (IsRemoved && modification != CrabModification.Delete)
            {
                return;
            }

            var legacyEvent = new AddressSubaddressPositionWasImportedFromCrab(
                addressPositionId,
                subaddressId,
                addressPosition,
                addressPositionOrigin,
                addressNature,
                lifetime,
                timestamp,
                @operator,
                modification,
                organisation);

            ApplyPositionChangeFor <AddressSubaddressPositionWasImportedFromCrab, int>(_crabSubaddressPositionEvents, legacyEvent);

            ApplyAddressCompletion();

            ApplyChange(legacyEvent);
        }
Beispiel #4
0
 private AddressHouseNumberPositionWasImportedFromCrab(
     int addressPositionId,
     int houseNumberId,
     string addressPosition,
     CrabAddressPositionOrigin addressPositionOrigin,
     string addressNature,
     LocalDateTime?beginDateTime,
     LocalDateTime?endDateTime,
     Instant timestamp,
     string @operator,
     CrabModification?modification,
     CrabOrganisation?organisation) :
     this(
         new CrabAddressPositionId(addressPositionId),
         new CrabHouseNumberId(houseNumberId),
         new WkbGeometry(addressPosition.ToByteArray()),
         addressPositionOrigin,
         new CrabAddressNature(addressNature),
         new CrabLifetime(beginDateTime, endDateTime),
         new CrabTimestamp(timestamp),
         new CrabOperator(@operator),
         modification,
         organisation)
 {
 }
        public void WhenCrabAddressPositionOrigin(
            CrabAddressPositionOrigin crabAddressPositionOrigin,
            GeometryMethod geometryMethod,
            GeometrySpecification geometrySpecification,
            AddressId addressId,
            AddressWasRegistered addressWasRegistered,
            ImportHouseNumberPositionFromCrab importHouseNumberPositionFromCrab)
        {
            importHouseNumberPositionFromCrab = importHouseNumberPositionFromCrab
                                                .WithCrabAddressPositionOrigin(crabAddressPositionOrigin);

            Assert(new Scenario()
                   .Given(addressId, addressWasRegistered)
                   .When(importHouseNumberPositionFromCrab)
                   .Then(addressId,
                         new AddressWasPositioned(addressId, new AddressGeometry(geometryMethod, geometrySpecification, GeometryHelpers.CreateEwkbFrom(importHouseNumberPositionFromCrab.AddressPosition))),
                         importHouseNumberPositionFromCrab.ToLegacyEvent()));
        }
Beispiel #6
0
        private GeometrySpecification MapToGeometrySpecification(CrabAddressPositionOrigin addressPositionOrigin)
        {
            switch (addressPositionOrigin)
            {
            case CrabAddressPositionOrigin.ManualIndicationFromLot:
                return(GeometrySpecification.Lot);

            case CrabAddressPositionOrigin.ManualIndicationFromParcel:
            case CrabAddressPositionOrigin.ManualIndicationFromAccessToTheRoad:
            case CrabAddressPositionOrigin.DerivedFromParcelGrb:
            case CrabAddressPositionOrigin.DerivedFromParcelCadastre:
            case CrabAddressPositionOrigin.InterpolatedBasedOnAdjacentHouseNumbersBuilding:
            case CrabAddressPositionOrigin.InterpolatedBasedOnAdjacentHouseNumbersParcelGrb:
            case CrabAddressPositionOrigin.InterpolatedBasedOnAdjacentHouseNumbersParcelCadastre:
                return(GeometrySpecification.Parcel);

            case CrabAddressPositionOrigin.ManualIndicationFromBuilding:
            case CrabAddressPositionOrigin.ManualIndicationFromMailbox:
            case CrabAddressPositionOrigin.ManualIndicationFromUtilityConnection:
            case CrabAddressPositionOrigin.DerivedFromBuilding:
                return(GeometrySpecification.BuildingUnit);

            case CrabAddressPositionOrigin.ManualIndicationFromEntryOfBuilding:
                return(GeometrySpecification.Entry);

            case CrabAddressPositionOrigin.ManualIndicationFromBerth:
                return(GeometrySpecification.Berth);

            case CrabAddressPositionOrigin.ManualIndicationFromStand:
                return(GeometrySpecification.Stand);

            case CrabAddressPositionOrigin.DerivedFromStreet:
            case CrabAddressPositionOrigin.InterpolatedBasedOnRoadConnection:
                return(GeometrySpecification.RoadSegment);

            case CrabAddressPositionOrigin.DerivedFromMunicipality:
                return(GeometrySpecification.Municipality);

            default:
                throw new NotImplementedException($"Cannot map {addressPositionOrigin} to GeometrySpecification");
            }
        }
Beispiel #7
0
 public ImportSubaddressPositionFromCrab(
     CrabAddressPositionId addressPositionId,
     CrabSubaddressId subaddressId,
     WkbGeometry addressPosition,
     CrabAddressNature addressNature,
     CrabAddressPositionOrigin addressPositionOrigin,
     CrabLifetime lifetime,
     CrabTimestamp timestamp,
     CrabOperator @operator,
     CrabModification?modification,
     CrabOrganisation?organisation)
 {
     AddressPositionId     = addressPositionId;
     SubaddressId          = subaddressId;
     AddressPosition       = addressPosition;
     AddressNature         = addressNature;
     AddressPositionOrigin = addressPositionOrigin;
     Lifetime     = lifetime;
     Timestamp    = timestamp;
     Operator     = @operator;
     Modification = modification;
     Organisation = organisation;
 }
Beispiel #8
0
 public AddressHouseNumberPositionWasImportedFromCrab(
     CrabAddressPositionId addressPositionId,
     CrabHouseNumberId houseNumberId,
     WkbGeometry addressPosition,
     CrabAddressPositionOrigin addressPositionOrigin,
     CrabAddressNature addressNature,
     CrabLifetime lifetime,
     CrabTimestamp timestamp,
     CrabOperator @operator,
     CrabModification?modification,
     CrabOrganisation?organisation)
 {
     AddressPositionId     = addressPositionId;
     HouseNumberId         = houseNumberId;
     AddressPosition       = addressPosition;
     AddressPositionOrigin = addressPositionOrigin;
     AddressNature         = addressNature;
     BeginDateTime         = lifetime.BeginDateTime;
     EndDateTime           = lifetime.EndDateTime;
     Timestamp             = timestamp;
     Operator     = @operator;
     Modification = modification;
     Organisation = organisation;
 }
Beispiel #9
0
 public static ImportHouseNumberPositionFromCrab WithCrabAddressPositionOrigin(this ImportHouseNumberPositionFromCrab command, CrabAddressPositionOrigin addressPositionOrigin)
 {
     return(new ImportHouseNumberPositionFromCrab(
                command.AddressPositionId,
                command.HouseNumberId,
                command.AddressPosition,
                command.AddressNature,
                addressPositionOrigin,
                command.Lifetime,
                command.Timestamp,
                command.Operator,
                command.Modification,
                command.Organisation));
 }
Beispiel #10
0
 public static AddressHouseNumberPositionWasImportedFromCrab WithCrabAddressPositionOrigin(this AddressHouseNumberPositionWasImportedFromCrab @event, CrabAddressPositionOrigin addressPositionOrigin)
 {
     return(new AddressHouseNumberPositionWasImportedFromCrab(
                new CrabAddressPositionId(@event.AddressPositionId),
                new CrabHouseNumberId(@event.HouseNumberId),
                new WkbGeometry(@event.AddressPosition),
                addressPositionOrigin,
                new CrabAddressNature(@event.AddressNature),
                new CrabLifetime(@event.BeginDateTime, @event.EndDateTime),
                new CrabTimestamp(@event.Timestamp),
                new CrabOperator(@event.Operator),
                @event.Modification,
                @event.Organisation));
 }