public static GenerateDatabaseCodeLauncher Create(ProjectItem projectItem) { DatabaseConfig config = new DatabaseConfig(); XDocument document = XDocument.Parse(File.ReadAllText(projectItem.GetFullPath())); config.Load(document); GenerateDatabaseCodeLauncher launcher = null; switch (config.Generation.Mode) { case DatabaseConfig.GenerateMode.EF6: launcher = new EF6GenerateDatabaseCodeLauncher(projectItem); break; case DatabaseConfig.GenerateMode.EFCore: launcher = new EFCoreGenerateDatabaseCodeLauncher(projectItem); break; default: return(null); } launcher.Config = config; launcher.WorkingDictionary = Path.GetDirectoryName(launcher.InputFilePath); launcher.Initialize(); return(launcher); }
protected override void PerformMenuItemInvoke(OleMenuCommand menuItem) { ProjectItem projectItem = this.DTE.SelectedItems.Item(1).ProjectItem; this.EnsureNotDirty(projectItem.ContainingProject); GenerateDatabaseCodeLauncher launcher = GenerateDatabaseCodeLauncher.Create(projectItem); if (launcher == null) { return; } launcher.Launch(); projectItem.ContainingProject.Save(); }