Beispiel #1
0
        public void ImportSubaddressStatusFromCrab(
            CrabSubaddressStatusId subaddressStatusId,
            CrabSubaddressId subaddressId,
            CrabAddressStatus addressStatus,
            CrabLifetime lifetime,
            CrabTimestamp timestamp,
            CrabOperator @operator,
            CrabModification?modification,
            CrabOrganisation?organisation)
        {
            if (IsRemoved && modification != CrabModification.Delete)
            {
                return;
            }

            var legacyEvent = new AddressSubaddressStatusWasImportedFromCrab(
                subaddressStatusId,
                subaddressId,
                addressStatus,
                lifetime,
                timestamp,
                @operator,
                modification,
                organisation);

            ApplyStatusChangesFor(_subAddressStatusChronicle, legacyEvent);

            ApplyAddressCompletion();

            ApplyChange(legacyEvent);
        }
 public static ImportSubaddressStatusFromCrab WithStatusId(this ImportSubaddressStatusFromCrab command,
                                                           CrabSubaddressStatusId statusId) => new ImportSubaddressStatusFromCrab(
     statusId,
     command.SubaddressId,
     command.AddressStatus,
     command.Lifetime,
     command.Timestamp,
     command.Operator,
     command.Modification,
     command.Organisation);
Beispiel #3
0
 public ImportSubaddressStatusFromCrab(
     CrabSubaddressStatusId subaddressStatusId,
     CrabSubaddressId subaddressId,
     CrabAddressStatus addressStatus,
     CrabLifetime lifetime,
     CrabTimestamp timestamp,
     CrabOperator @operator,
     CrabModification?modification,
     CrabOrganisation?organisation)
 {
     SubaddressStatusId = subaddressStatusId;
     SubaddressId       = subaddressId;
     AddressStatus      = addressStatus;
     Lifetime           = lifetime;
     Timestamp          = timestamp;
     Operator           = @operator;
     Modification       = modification;
     Organisation       = organisation;
 }
Beispiel #4
0
 public AddressSubaddressStatusWasImportedFromCrab(
     CrabSubaddressStatusId subaddressStatusId,
     CrabSubaddressId subaddressId,
     CrabAddressStatus addressStatus,
     CrabLifetime lifetime,
     CrabTimestamp timestamp,
     CrabOperator @operator,
     CrabModification?modification,
     CrabOrganisation?organisation)
 {
     SubaddressStatusId = subaddressStatusId;
     SubaddressId       = subaddressId;
     AddressStatus      = addressStatus;
     BeginDateTime      = lifetime.BeginDateTime;
     EndDateTime        = lifetime.EndDateTime;
     Timestamp          = timestamp;
     Operator           = @operator;
     Modification       = modification;
     Organisation       = organisation;
 }
Beispiel #5
0
        public void WithRemovedStatusWhenStatusInUseAndSameLifetimeOfPreviouslyRemovedStatus(AddressId addressId,
                                                                                             AddressWasRegistered addressWasRegistered,
                                                                                             AddressWasProposed addressWasProposed,
                                                                                             AddressWasOfficiallyAssigned addressWasOfficiallyAssigned,
                                                                                             AddressSubaddressStatusWasImportedFromCrab addressSubaddressStatusWasImportedFromCrab,
                                                                                             AddressStatusWasRemoved addressStatusWasRemoved,
                                                                                             AddressSubaddressStatusWasImportedFromCrab addressSubaddressStatusWasImportedFromCrabDelete,
                                                                                             ImportSubaddressStatusFromCrab importSubaddressStatusFromCrab,
                                                                                             CrabLifetime lifetime)
        {
            var statusId = new CrabSubaddressStatusId(1);

            addressSubaddressStatusWasImportedFromCrab = addressSubaddressStatusWasImportedFromCrab
                                                         .WithSubaddressStatusId(statusId)
                                                         .WithStatus(CrabAddressStatus.Proposed)
                                                         .WithBeginDate(lifetime.BeginDateTime);
            addressSubaddressStatusWasImportedFromCrabDelete = addressSubaddressStatusWasImportedFromCrabDelete
                                                               .WithSubaddressStatusId(statusId)
                                                               .WithStatus(CrabAddressStatus.Proposed)
                                                               .WithCrabModification(CrabModification.Delete)
                                                               .WithBeginDate(lifetime.BeginDateTime);

            importSubaddressStatusFromCrab = importSubaddressStatusFromCrab
                                             .WithLifetime(lifetime)
                                             .WithStatus(CrabAddressStatus.InUse);

            Assert(new Scenario()
                   .Given(addressId,
                          addressWasRegistered,
                          addressWasProposed,
                          addressWasOfficiallyAssigned,
                          addressSubaddressStatusWasImportedFromCrab,
                          addressStatusWasRemoved,
                          addressSubaddressStatusWasImportedFromCrabDelete
                          )
                   .When(importSubaddressStatusFromCrab)
                   .Then(addressId,
                         new AddressBecameCurrent(addressId),
                         importSubaddressStatusFromCrab.ToLegacyEvent()));
        }
Beispiel #6
0
 public static AddressSubaddressStatusWasImportedFromCrab WithSubaddressStatusId(this AddressSubaddressStatusWasImportedFromCrab @event, CrabSubaddressStatusId statusId)
 {
     return(new AddressSubaddressStatusWasImportedFromCrab(
                statusId,
                new CrabSubaddressId(@event.SubaddressId),
                @event.AddressStatus,
                new CrabLifetime(@event.BeginDateTime, @event.EndDateTime),
                new CrabTimestamp(@event.Timestamp),
                new CrabOperator(@event.Operator),
                @event.Modification,
                @event.Organisation
                ));
 }