internal override void Invoke(string eventTopic, object source, object e) { Delegate @delegate = (Delegate)base.Handlers[eventTopic]; if (@delegate == null) { return; } StoreDriverEventSource source2 = (StoreDriverEventSource)source; StoreDriverSubmissionEventArgs storeDriverSubmissionEventArgs = (StoreDriverSubmissionEventArgs)e; base.MailItem = storeDriverSubmissionEventArgs.MailItem; if (eventTopic != null && eventTopic == "OnDemotedMessage") { ((SmtpServer)this.HostState).AddressBook.RecipientCache = storeDriverSubmissionEventArgs.MailItem.RecipientCache; ((DemotedMessageEventHandler)@delegate)(source2, storeDriverSubmissionEventArgs); if (base.Synchronous) { base.EnsureMimeWriteStreamClosed(); ((SmtpServer)this.HostState).AddressBook.RecipientCache = null; base.MailItem = null; } return; } throw new InvalidOperationException("Internal error: unsupported event topic: " + (eventTopic ?? "null")); }
internal override void Invoke(string eventTopic, object source, object e) { Delegate @delegate = (Delegate)base.Handlers[eventTopic]; if (@delegate == null) { return; } StoreDriverEventSource source2 = (StoreDriverEventSource)source; StoreDriverDeliveryEventArgs storeDriverDeliveryEventArgs = (StoreDriverDeliveryEventArgs)e; ((SmtpServer)this.HostState).AddressBook.RecipientCache = storeDriverDeliveryEventArgs.MailItem.RecipientCache; if (eventTopic != null) { if (!(eventTopic == "OnInitializedMessage")) { if (!(eventTopic == "OnPromotedMessage")) { if (!(eventTopic == "OnCreatedMessage")) { if (!(eventTopic == "OnDeliveredMessage")) { if (!(eventTopic == "OnCompletedMessage")) { goto IL_DA; } ((CompletedMessageEventHandler)@delegate)(source2, storeDriverDeliveryEventArgs); } else { ((DeliveredMessageEventHandler)@delegate)(source2, storeDriverDeliveryEventArgs); } } else { ((CreatedMessageEventHandler)@delegate)(source2, storeDriverDeliveryEventArgs); } } else { ((PromotedMessageEventHandler)@delegate)(source2, storeDriverDeliveryEventArgs); } } else { ((InitializedMessageEventHandler)@delegate)(source2, storeDriverDeliveryEventArgs); } if (base.Synchronous) { ((SmtpServer)this.HostState).AddressBook.RecipientCache = null; } return; } IL_DA: throw new InvalidOperationException("Internal error: unsupported event topic: " + (eventTopic ?? "null")); }