Example #1
0
        internal void Fire(Publication publication, object sender, EventArgs e)
        {
            WorkItem workItem = publication.WorkItem;

            if (workItem == null || (workItem != null && workItem.Status == WorkItemStatus.Terminated))
            {
                publications.Remove(publication);
                publication.Dispose();
            }
            else
            {
                Fire(sender, e, publication.WorkItem, publication.Scope);
            }
        }
Example #2
0
        /// <summary>
        /// Removes a publication from the topic.
        /// </summary>
        /// <param name="publisher">The object that contains the publication.</param>
        /// <param name="eventName">The name of event on the publisher that fires the topic.</param>
        public virtual void RemovePublication(object publisher, string eventName)
        {
            Guard.ArgumentNotNull(publisher, "publisher");
            Guard.ArgumentNotNull(eventName, "eventName");
            Clean();
            Publication publication = FindPublication(publisher, eventName);

            if (publication != null)
            {
                publications.Remove(publication);
                publication.Dispose();

                if (traceSource != null)
                {
                    traceSource.TraceInformation(Properties.Resources.EventTopicTracePublicationRemoved,
                                                 name, eventName, publisher.GetType().ToString());
                }
            }
        }
Example #3
0
 internal void Fire(Publication publication, object sender, EventArgs e)
 {
     WorkItem workItem = publication.WorkItem;
     if (workItem == null || (workItem != null && workItem.Status == WorkItemStatus.Terminated))
     {
         publications.Remove(publication);
         publication.Dispose();
     }
     else
     {
         Fire(sender, e, publication.WorkItem, publication.Scope);
     }
 }