/// <summary> /// Gets the data the plugin should provide. /// </summary> /// <param name="context">The current context.</param> /// <returns>The plugin data.</returns> public object GetData(HttpContextBase context) { var imports = context.ModelList<ImportDescriptor>("MEF-Imports"); var data = new List<object[]> { new object[] { "Contract", "Cardinality", "Prerequisite", "Recomposable", "Matching Exports" } }; foreach (var import in imports) { var exports = new List<object[]> { new object[] { "Name", "Creation Policy", "Metadata" } }; exports.AddRange(import.Exports.Select(e => new object[] { e.DisplayName, e.CreationPolicy ?? "Shared", e.Metadata })); var importData = new [] { import.ContractName, import.Cardinality, (import.Prerequisite ? "_" + import.Prerequisite + "_" : import.Prerequisite.ToString()), (import.Recomposable ? "_" + import.Recomposable + "_" : import.Recomposable.ToString()), (exports.Count == 1) ? (object)"No matching exports." : exports }; data.Add(importData); } return data; }