protected void Publish(string eventName, ComponentModel model) { if (_timerStrategy != null && _messageBroker != null) { IExecutionTimer timer = _timerStrategy(); if (timer != null) { var interceptors = "None"; if (model.HasInterceptors) { interceptors = String.Join(", ", model.Interceptors.Select(x => x.ToString())); } _messageBroker.Publish(new ComponentModelMessage() { EventName = eventName, Service = String.Join(", ", model.Services.Select(service => service.Name)), Implementation = model.Implementation.Name, Lifestyle = model.GetLifestyleDescriptionLong(), Interceptors = interceptors, FromFirst = timer.Point().Offset, FromLast = CalculateFromLast(timer) }); } } }