public StreetNameWasImportedFromCrab(
     CrabStreetNameId streetNameId,
     CrabMunicipalityId municipalityId,
     CrabStreetName primaryStreetName,
     CrabStreetName secondaryStreetName,
     CrabTransStreetName primaryTransStreetName,
     CrabTransStreetName secondaryTransStreetName,
     CrabLanguage?primaryLanguage,
     CrabLanguage?secondaryLanguage,
     CrabTimestamp timestamp,
     CrabLifetime lifetime,
     CrabOperator @operator,
     CrabModification?modification,
     CrabOrganisation?organisation)
 {
     StreetNameId             = streetNameId;
     MunicipalityId           = municipalityId;
     PrimaryStreetName        = primaryStreetName?.Name;
     SecondaryStreetName      = secondaryStreetName?.Name;
     PrimaryTransStreetName   = primaryTransStreetName?.TransStreetName;
     SecondaryTransStreetName = secondaryTransStreetName?.TransStreetName;
     PrimaryLanguage          = primaryLanguage;
     SecondaryLanguage        = secondaryLanguage;
     Timestamp     = timestamp;
     BeginDateTime = lifetime.BeginDateTime;
     EndDateTime   = lifetime.EndDateTime;
     Operator      = @operator;
     Modification  = modification;
     Organisation  = organisation;
 }
 public ImportStreetNameFromCrab(
     CrabStreetNameId streetNameId,
     CrabMunicipalityId municipalityId,
     NisCode nisCode,
     CrabStreetName primaryStreetName,
     CrabStreetName secondaryStreetName,
     CrabTransStreetName primaryTransStreetName,
     CrabTransStreetName secondaryTransStreetName,
     CrabLanguage?primaryLanguage,
     CrabLanguage?secondaryLanguage,
     CrabLifetime lifeTime,
     CrabTimestamp timestamp,
     CrabOperator @operator,
     CrabModification?modification,
     CrabOrganisation?organisation)
 {
     StreetNameId             = streetNameId;
     MunicipalityId           = municipalityId;
     NisCode                  = nisCode;
     PrimaryStreetName        = primaryStreetName;
     SecondaryStreetName      = secondaryStreetName;
     PrimaryTransStreetName   = primaryTransStreetName;
     SecondaryTransStreetName = secondaryTransStreetName;
     PrimaryLanguage          = primaryLanguage;
     SecondaryLanguage        = secondaryLanguage;
     LifeTime                 = lifeTime;
     Timestamp                = timestamp;
     Operator                 = @operator;
     Modification             = modification;
     Organisation             = organisation;
 }
        protected StreetName Act(StreetName sut,
                                 CrabStreetNameId CrabStreetNameId,
                                 CrabMunicipalityId crabMunicipalityId,
                                 CrabStreetName primaryStreetName,
                                 CrabStreetName secondaryStreetName,
                                 CrabTransStreetName primaryTransStreetName,
                                 CrabTransStreetName secondaryTransStreetName,
                                 CrabLanguage?primaryLanguage,
                                 CrabLanguage?secondaryLanguage,
                                 CrabLifetime lifetime,
                                 CrabTimestamp crabTimestamp,
                                 CrabOperator beginOperator,
                                 CrabModification?modification,
                                 CrabOrganisation?beginOrganisation)
        {
            LogAct($"ImportFromCrab({CrabStreetNameId},{crabMunicipalityId},{primaryStreetName},{secondaryStreetName},{secondaryTransStreetName},{primaryTransStreetName},{primaryLanguage},{secondaryLanguage},{lifetime},{crabTimestamp},{beginOperator},{modification},{beginOrganisation})");

            sut.ImportFromCrab(CrabStreetNameId,
                               crabMunicipalityId,
                               primaryStreetName,
                               secondaryStreetName,
                               primaryTransStreetName,
                               secondaryTransStreetName,
                               primaryLanguage,
                               secondaryLanguage,
                               lifetime,
                               crabTimestamp,
                               beginOperator,
                               modification,
                               beginOrganisation);

            return(sut);
        }
Example #4
0
        public void ImportFromCrab(
            CrabStreetNameId streetNameId,
            CrabMunicipalityId municipalityId,
            CrabStreetName primaryStreetName,
            CrabStreetName secondaryStreetName,
            CrabTransStreetName primaryTransStreetName,
            CrabTransStreetName secondaryTransStreetName,
            CrabLanguage?primaryLanguage,
            CrabLanguage?secondaryLanguage,
            CrabLifetime lifeTime,
            CrabTimestamp timestamp,
            CrabOperator beginOperator,
            CrabModification?beginModification,
            CrabOrganisation?beginOrganisation)
        {
            if (IsRemoved)
            {
                throw new InvalidOperationException($"Cannot change removed street name for street name id {_streetNameId}/{streetNameId}");
            }

            if (beginModification == CrabModification.Delete)
            {
                ApplyChange(new StreetNameWasRemoved(_streetNameId));
            }
            else
            {
                ApplyRetiredOrUnretire(lifeTime, beginModification);

                if (beginModification != CrabModification.Correction)
                {
                    ApplyNameChanges(primaryStreetName, secondaryStreetName);
                    ApplyLanguageChanges(primaryLanguage?.ToLanguage(), secondaryLanguage?.ToLanguage());
                }
                else
                {
                    ApplyNameCorrections(primaryStreetName, secondaryStreetName);
                    ApplyLanguageCorrections(primaryLanguage?.ToLanguage(), secondaryLanguage?.ToLanguage());
                }
            }

            AssignPersistentLocalId(new PersistentLocalId(streetNameId), new PersistentLocalIdAssignmentDate(timestamp));

            ApplyChange(new StreetNameWasImportedFromCrab(
                            streetNameId,
                            municipalityId,
                            primaryStreetName,
                            secondaryStreetName,
                            primaryTransStreetName,
                            secondaryTransStreetName,
                            primaryLanguage,
                            secondaryLanguage,
                            timestamp,
                            lifeTime,
                            beginOperator,
                            beginModification,
                            beginOrganisation));
        }
Example #5
0
 private void ApplyNameChange(CrabStreetName streetName)
 {
     if (TryParseHomonymAddition(streetName.Name, out var name, out var homonymAddition))
     {
         if (!_homonymAdditions.HasMatch(streetName.Language?.ToLanguage(), homonymAddition))
         {
             ApplyChange(new StreetNameHomonymAdditionWasDefined(
                             _streetNameId,
                             new StreetNameHomonymAddition(homonymAddition, streetName.Language?.ToLanguage())));
         }
     }
Example #6
0
        private void ApplyNameChanges(CrabStreetName primaryStreetName, CrabStreetName secondaryStreetName)
        {
            if (primaryStreetName != null && (primaryStreetName.Language != null || !string.IsNullOrEmpty(primaryStreetName.Name)))
            {
                ApplyNameChange(primaryStreetName);
            }

            if (secondaryStreetName != null && (secondaryStreetName.Language != null || !string.IsNullOrEmpty(secondaryStreetName.Name)))
            {
                ApplyNameChange(secondaryStreetName);
            }
        }
        protected StreetName Act(StreetName sut, CrabStreetName primaryStreetName, CrabStreetName secondaryStreetName, CrabLifetime lifetime, CrabModification?modification)
        {
            var primaryLanguage = Arrange(Generate.CrabLanguageNullable);

            return(Act(sut, Arrange(Generate.CrabStreetNameId),
                       Arrange(Generate.CrabMunicipalityId),
                       primaryStreetName,
                       secondaryStreetName,
                       Arrange(Generate.CrabTransStreetName),
                       Arrange(Generate.CrabTransStreetName),
                       primaryLanguage,
                       Arrange(Generate.NullableEnumExcept(primaryLanguage)),
                       lifetime,
                       Arrange(Generate.CrabTimestamp),
                       Arrange(Generate.CrabOperator), modification, Arrange(Generate.CrabOrganisationNullable)));
        }