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); } }
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); } } }