public static Func <List <ImportedKit> > ListImportedKits(API.V1 api) { return(delegate() { string root = FileUtils.FabricRoot + FileUtils.NormalizePathForPlatform("/Fabric/Kits/"); List <ImportedKit> kits = new List <ImportedKit> (); if (!Directory.Exists(root)) { return kits; } foreach (string kit in Directory.GetDirectories(root)) { string unqualified = kit.Substring(kit.LastIndexOf(Path.DirectorySeparatorChar) + 1); string qualified = String.Format("Fabric.Internal.{0}.Editor.Controller.Controller", unqualified); Type type = Type.GetType(qualified); // Those kits without a controller will not be displayed in the KitSelector // as they do not have a GUI component to them. if (type == null) { continue; } object instance = Activator.CreateInstance(type, api); kits.Add(new ImportedKit(unqualified, instance)); } return kits; }); }
private static App KitsForApp(API.V1 api, string organization, string bundleId, BuildTarget buildTarget) { List <Organization> organizations = api.Organizations(); List <App> appsForOrg = api.ApplicationsFor(organization, organizations); App activatedApp = appsForOrg.Find(app => { bool matchesBundleId = app.BundleIdentifier.Equals(bundleId, StringComparison.OrdinalIgnoreCase); bool matchesPlatform = app.Platform == buildTarget; return(matchesBundleId && matchesPlatform); }); return(activatedApp); }