public ImportMunicipalityFromCrab(
     NisCode nisCode,
     CrabLanguage?primaryLanguage,
     CrabLanguage?secondaryLanguage,
     CrabLanguage?facilityLanguage,
     WkbGeometry geometry,
     NumberOfFlags numberOfFlags,
     CrabLifetime lifetime,
     CrabTimestamp timestamp,
     CrabOperator @operator,
     CrabModification?modification,
     CrabOrganisation?organisation,
     CrabMunicipalityId municipalityId)
 {
     NisCode           = nisCode;
     PrimaryLanguage   = primaryLanguage;
     SecondaryLanguage = secondaryLanguage;
     FacilityLanguage  = facilityLanguage;
     Geometry          = geometry;
     Lifetime          = lifetime;
     Timestamp         = timestamp;
     Operator          = @operator;
     Modification      = modification;
     Organisation      = organisation;
     NumberOfFlags     = numberOfFlags;
     MunicipalityId    = municipalityId;
 }
 public MunicipalityWasImportedFromCrab(
     CrabMunicipalityId crabMunicipalityId,
     NisCode nisCode,
     CrabLanguage?primaryLanguage,
     CrabLanguage?secondaryLanguage,
     NumberOfFlags numberOfFlags,
     CrabLifetime lifetime,
     WkbGeometry wkbGeometry,
     CrabTimestamp timestamp,
     CrabOperator @operator,
     CrabModification?modification,
     CrabOrganisation?organisation)
 {
     CrabMunicipalityId = crabMunicipalityId;
     NisCode            = nisCode;
     PrimaryLanguage    = primaryLanguage;
     SecondaryLanguage  = secondaryLanguage;
     NumberOfFlags      = numberOfFlags;
     BeginDate          = lifetime.BeginDateTime;
     EndDate            = lifetime.EndDateTime;
     WkbGeometry        = wkbGeometry?.ToString();
     Timestamp          = timestamp;
     Operator           = @operator;
     Modification       = modification;
     Organisation       = organisation;
 }
        public void ImportFromCrab(
            CrabMunicipalityId crabMunicipalityId,
            NisCode nisCode,
            CrabLanguage?primaryLanguage,
            CrabLanguage?secondaryLanguage,
            CrabLanguage?facilityLanguage,
            NumberOfFlags numberOfFlags,
            CrabLifetime crabLifetime,
            WkbGeometry geometry,
            CrabTimestamp crabTimestamp,
            CrabOperator crabOperator,
            CrabModification?crabModification,
            CrabOrganisation?crabOrganisation)
        {
            var endTime = crabLifetime?.EndDateTime;

            CheckChangedNisCode(nisCode, crabModification);
            CheckChangedOfficialLanguages(new[] { primaryLanguage?.ToLanguage(), secondaryLanguage?.ToLanguage() });
            CheckChangedFacilityLanguages(facilityLanguage?.ToLanguage());
            CheckChangedGeometry(geometry == null ? null : geometry, crabModification);
            CheckChangedStatus(endTime, crabModification);

            // Legacy Event
            ApplyChange(new MunicipalityWasImportedFromCrab(
                            crabMunicipalityId,
                            nisCode,
                            primaryLanguage,
                            secondaryLanguage,
                            numberOfFlags,
                            crabLifetime,
                            geometry,
                            crabTimestamp,
                            crabOperator,
                            crabModification,
                            crabOrganisation));
        }