static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); bool multiproject = MessageBox.Show( "Multi-Project?", "Project Type", MessageBoxButtons.YesNo) == DialogResult.Yes; bool webApiSharedPortable = false; if (multiproject) { webApiSharedPortable = MessageBox.Show( "Web API Shared Portable?", "Shared Portable Exception", MessageBoxButtons.YesNo) == DialogResult.Yes; } var result = DialogResult.OK; while (result != DialogResult.Cancel) { var dialog = new EntitiesSelectionDialog(multiproject, webApiSharedPortable); result = dialog.ShowDialog(); if (result == DialogResult.Cancel) { continue; } string entitiesSelection = dialog.EntitiesSelection.ToString(); MessageBox.Show(entitiesSelection, "Entities Selection"); } }
// Select entities template public static void SelectEntitiesTemplate(bool multiproject, string templateName) { // Disallow shared portable entities for WebApi due to Json.net compat issues: // Error: Method not found (Newtonsoft.Json.Serialization.DefaultContractResolver SET_IgnoreSerializableAttribute) bool webApiSharedPortable = templateName.Equals(Constants.ProjectTemplates.TrackableWebApi, StringComparison.InvariantCultureIgnoreCase) || templateName.Equals(Constants.ProjectTemplates.TrackableWebApiPatterns, StringComparison.InvariantCultureIgnoreCase); // Prompt user for entities template var dialog = new EntitiesSelectionDialog(multiproject, webApiSharedPortable); if (dialog.ShowDialog() == DialogResult.Cancel) { throw new WizardBackoutException(); } // Place "$entitiestempaltename$ in entities root dictionary string entitiesTemplateName = GetEntitiesTemplateName(dialog.EntitiesSelection); RootDictionary[Constants.DictionaryEntries.EntitiesTemplateName] = entitiesTemplateName; // Place $cliententitiestemplate$ and $serviceentitiestemplate$ in root dictionary string[] entitiesTemplateNames = entitiesTemplateName.Split('|'); RootWizard.RootDictionary[Constants.DictionaryEntries.ClientEntitiesTemplate] = entitiesTemplateNames[0]; if (entitiesTemplateNames.Length == 2) { RootWizard.RootDictionary[Constants.DictionaryEntries.ServiceEntitiesTemplate] = entitiesTemplateNames[1]; } else { RootWizard.RootDictionary[Constants.DictionaryEntries.ServiceEntitiesTemplate] = entitiesTemplateNames[0]; } }