Exemple #1
0
        protected override void When(DomainEvent domainEvent)
        {
            DHCPv4Lease lease = null;

            switch (domainEvent)
            {
            case DHCPv4LeaseCreatedEvent e:
                DHCPv4Lease leaseToAdd = new DHCPv4Lease(
                    e.EntityId,
                    e.Address,
                    e.StartedAt,
                    e.ValidUntil,
                    e.RenewalTime,
                    e.PreferredLifetime,
                    e.ClientIdenfier == null ? DHCPv4ClientIdentifier.Empty : DHCPv4ClientIdentifier.FromOptionData(e.ClientIdenfier),
                    e.UniqueIdentifier,
                    e.AncestorId,
                    _additonalApplier
                    );

                if (Entries.ContainsKey(e.EntityId) == false)
                {
                    AddEntry(e.EntityId, leaseToAdd);
                    CleanEntries();
                }

                break;

            case DHCPv4LeaseRemovedEvent e:
                RemoveEntry(e.EntityId);
                break;

            case DHCPv4LeaseCanceledEvent e:
                lease = GetLeaseAndRemoveEntry(e.EntityId);
                break;

            case DHCPv4LeaseReleasedEvent e:
                lease = GetLeaseAndRemoveEntry(e.EntityId);
                break;

            case DHCPv4LeaseRevokedEvent e:
                lease = GetLeaseAndRemoveEntry(e.EntityId);
                break;

            case DHCPv4ScopeRelatedEvent e:
                lease = GetLeaseById(e.EntityId);
                break;

            default:
                break;
            }

            if (domainEvent?.IsHandled() == false)
            {
                ApplyToEnity(lease, domainEvent);
            }
        }
Exemple #2
0
        protected override void When(DomainEvent domainEvent)
        {
            DHCPv6Lease lease = null;

            switch (domainEvent)
            {
            case DHCPv6LeaseCreatedEvent e:
                DHCPv6Lease leaseToAdd = new DHCPv6Lease(
                    e.EntityId,
                    e.Address,
                    e.StartedAt,
                    e.ValidUntil,
                    e.RenewalTime,
                    e.PreferredLifetime,
                    e.ClientIdentifier,
                    e.IdentityAssocationId,
                    e.UniqueIdentiifer,
                    e.HasPrefixDelegation == true ? new DHCPv6PrefixDelegation(e.DelegatedNetworkAddress, e.PrefixLength, e.IdentityAssocationIdForPrefix, e.StartedAt) : DHCPv6PrefixDelegation.None,
                    e.AncestorId,
                    _additonalApplier
                    );

                if (Entries.ContainsKey(e.EntityId) == false)
                {
                    AddEntry(e.EntityId, leaseToAdd);
                    CleanEntries();
                }

                break;

            case DHCPv6LeaseRemovedEvent e:
                RemoveEntry(e.EntityId);
                break;

            case DHCPv6LeaseCanceledEvent e:
                lease = GetLeaseAndRemoveEntry(e.EntityId);
                break;

            case DHCPv6LeaseReleasedEvent e:
                lease = GetLeaseAndRemoveEntry(e.EntityId);
                break;

            case DHCPv6LeaseRevokedEvent e:
                lease = GetLeaseAndRemoveEntry(e.EntityId);
                break;

            case DHCPv6ScopeRelatedEvent e:
                lease = GetLeaseById(e.EntityId);
                break;

            default:
                break;
            }

            if (lease != null)
            {
                if (domainEvent.IsHandled() == false)
                {
                    ApplyToEnity(lease, domainEvent);
                }
            }
        }