public void InitializeWorkItemExtensions(WorkItem workItem) { if (extensionsInitialized) { return; } extensionsInitialized = true; IWorkItemExtensionService svc = workItem.Services.Get <IWorkItemExtensionService>(); if (svc == null) { return; } foreach (KeyValuePair <Type, Type> kvp in workItemExtensions) { svc.RegisterExtension(kvp.Key, kvp.Value); } foreach (Type type in workItemRootExtensions) { svc.RegisterRootExtension(type); } }
public void InitializeWorkItemExtensions(WorkItem workItem) { if (extensionsInitialized) { return; } extensionsInitialized = true; IWorkItemExtensionService svc = workItem.Services.Get <IWorkItemExtensionService>(); if (svc == null) { return; } WorkItemExtensionLoaderService extensionLoader = new WorkItemExtensionLoaderService(); string[] orderedExtensions = extensionLoader.GetLoadOrder(workItemExtensions); foreach (string name in orderedExtensions) { WorkItemExtensionMetadata metadata = workItemExtensions.Find(w => w.Name == name); svc.RegisterExtension(metadata.WorkItemType, metadata.ExtensionType); } foreach (Type type in workItemRootExtensions) { svc.RegisterRootExtension(type); } }
protected override void TestableAddServices() { IWorkItemExtensionService extensions = Services.AddNew <WorkItemExtensionService, IWorkItemExtensionService>(); extensions.RegisterRootExtension(typeof(RootWorkItemExtension)); extensions.RegisterExtension(typeof(WorkItem), typeof(MockExtension)); FinishInitialization(); }
/// <summary> /// Finishes the initialization of <see cref="WorkItem"/> classes by calling the /// <see cref="IWorkItemExtensionService"/> and <see cref="OnInitialized()"/>. For /// root WorkItems, this will be called by the <see cref="CabApplication{TWorkItem}"/> after /// the modules are loaded (so root WorkItem extensions work). For child WorkItems, /// this will be called during <see cref="OnBuiltUp"/> automatically. /// </summary> protected internal void FinishInitialization() { IWorkItemExtensionService extensionsService = Services.Get <IWorkItemExtensionService>(); if (extensionsService != null) { extensionsService.InitializeExtensions(this); } OnInitialized(); }