public void ItemsWereAdded(string location, ICollection <PluginItemMetadata> items) { IPluginManager pluginManager = ServiceRegistration.Get <IPluginManager>(); foreach (PluginItemMetadata itemMetadata in items) { try { IMediaMergeHandler mergeHandler = pluginManager.RequestPluginItem <IMediaMergeHandler>( itemMetadata.RegistrationLocation, itemMetadata.Id, new FixedItemStateTracker(MERGE_HANDLERS_USE_COMPONENT_NAME)); _parent.RegisterMergeHandler(mergeHandler); } catch (PluginInvalidStateException e) { ServiceRegistration.Get <ILogger>().Warn("Cannot add merge handler for {0}", e, itemMetadata); } } }
protected void RegisterMergeHandler(IMediaMergeHandler mergeHandler) { lock (_syncObj) _mergeHandlers.Add(mergeHandler.Metadata.MergeHandlerId, mergeHandler); MediaAccessorMessaging.SendMergeHandlerMessage(MediaAccessorMessaging.MessageType.MergeHandlerAdded, mergeHandler.Metadata.MergeHandlerId); }