protected override void AddProjects(ExtensionContext context)
		{
			String projectFile = context.GetTemplateFileName(@"CSharp\ARProject\ARProject.csproj");
			String testProjectFile = context.GetTemplateFileName(@"CSharp\ARProjectTest\ARProjectTest.csproj");

			String localTestProjectPath = Path.Combine(LocalProjectPath, @"..\" + ProjectName + ".Tests");
			localTestProjectPath = new DirectoryInfo(localTestProjectPath).FullName;

			Utils.EnsureDirExists(LocalProjectPath);
			Utils.EnsureDirExists(localTestProjectPath);

			Project project = 
				context.DteInstance.Solution.AddFromTemplate(projectFile, LocalProjectPath, ProjectName + ".csproj", Exclusive);

			project.Properties.Item("DefaultNamespace").Value = NameSpace;

			Project testProject = 
				context.DteInstance.Solution.AddFromTemplate(testProjectFile, localTestProjectPath, ProjectName + ".Tests.csproj", false);

			testProject.Properties.Item("DefaultNamespace").Value = NameSpace + ".Tests";

			context.Projects.Add(Constants.ProjectMain, project);
			context.Projects.Add(Constants.ProjectTest, testProject);

			base.AddProjects(context);
		}
		protected override void AddProjects(ExtensionContext context)
		{
			String projectFile = context.GetTemplateFileName(@"CSharp\MRProject\MRProject.csproj");

			Utils.EnsureDirExists(LocalProjectPath);

			Project project = 
				context.DteInstance.Solution.AddFromTemplate(projectFile, LocalProjectPath, ProjectName + ".csproj", Exclusive);

			project.Properties.Item("DefaultNamespace").Value = NameSpace;

			Utils.PerformReplacesOn(project, NameSpace, LocalProjectPath, "Controllers\\BaseController.cs");
			Utils.PerformReplacesOn(project, NameSpace, LocalProjectPath, "Controllers\\HomeController.cs");
			Utils.PerformReplacesOn(project, NameSpace, LocalProjectPath, "Controllers\\LoginController.cs");
			Utils.PerformReplacesOn(project, NameSpace, LocalProjectPath, "Controllers\\ContactController.cs");
			Utils.PerformReplacesOn(project, NameSpace, LocalProjectPath, "Models\\ContactInfo.cs");
			Utils.PerformReplacesOn(project, NameSpace, LocalProjectPath, "Models\\Country.cs");
			Utils.PerformReplacesOn(project, NameSpace, LocalProjectPath, "global.asax");

			context.Projects.Add(Constants.ProjectMain, project);

			AddGlobalApplication(project);
			AddHomeViews(project);
			AddLoginViews(project);
			AddContactViews(project);
			AddLayout(project);
			AddRescue(project);
			
			CreateXmlDomForConfig(project, MRConfigConstants.Web);
			
			UpdateReferences(project);
			UpdateProjectToUseCassini(project);
			
			base.AddProjects(context);
		}
		private void OnAddProjects(object sender, ExtensionContext context)
		{
			if (!panel.WantsTestProject) return;
			
			String testProjectFile = context.GetTemplateFileName(@"CSharp\MRProjectTest\MRProjectTest.csproj");
			testProjectName = context.ProjectName + ".Tests";
			string nameSpace = Utils.CreateValidIdentifierFromName(context.ProjectName);

			localTestProjectPath = new DirectoryInfo(Path.Combine(context.LocalProjectPath, 
				@"..\" + testProjectName)).FullName;

			Utils.EnsureDirExists(localTestProjectPath);

			Project testProject = context.DteInstance.Solution
				.AddFromTemplate(testProjectFile, 
					localTestProjectPath, 
					context.ProjectName + ".Tests.csproj", false);

			Utils.AddReference(testProject, context.Projects[Constants.ProjectMain]);

			Utils.PerformReplacesOn(testProject, nameSpace, localTestProjectPath, "Controllers\\ContactControllerTestCase.cs");
			Utils.PerformReplacesOn(testProject, nameSpace, localTestProjectPath, "Controllers\\HomeControllerTestCase.cs");
			Utils.PerformReplacesOn(testProject, nameSpace, localTestProjectPath, "Controllers\\LoginControllerTestCase.cs");

			context.Projects.Add(Constants.ProjectTest, testProject);
		}
		private void OnPostProcess(object sender, ExtensionContext context)
		{
			if (!HasSelected(context)) return;

			XmlDocument facilitiesDom = (XmlDocument) context.Properties[MRConfigConstants.FacilitiesConfig];

			RegisterAndConfigureFacility(facilitiesDom, context);
		}
		protected override void SetupBuildEvents(ExtensionContext context)
		{
			Project testProject = context.Projects[Constants.ProjectTest];

			Utils.AddCommonPostBuildEvent(testProject);

			base.SetupBuildEvents(context);
		}
Exemple #6
0
		private void OnAddReferences(object sender, ExtensionContext context)
		{
			if (!HasSelected(context)) return;

			Project project = context.Projects[Constants.ProjectMain];

			Utils.AddReference(project, "Castle.Services.Transaction.dll");
			Utils.AddReference(project, "Castle.Facilities.AutomaticTransactionManagement.dll");
		}
		protected override void AddReferences(ExtensionContext context)
		{
			Project project = context.Projects[Constants.ProjectMain];
			Project testProject = context.Projects[Constants.ProjectTest];

			Utils.AddReference(testProject, project);

			base.AddReferences(context);
		}
		private void OnAddReferences(object sender, ExtensionContext context)
		{
			if (!HasSelected(context)) return;

			Project project = context.Projects[Constants.ProjectMain];

			Utils.AddReference(project, "NHibernate.dll");
			Utils.AddReference(project, "Nullables.dll");
			Utils.AddReference(project, "Nullables.NHibernate.dll");
			Utils.AddReference(project, "Iesi.Collections.dll");
			Utils.AddReference(project, "log4net.dll");
			Utils.AddReference(project, "Castle.Facilities.NHibernateIntegration.dll");
		}
		private void OnPostProcess(object sender, ExtensionContext context)
		{
			if (!HasSelected(context)) return;

			XmlDocument webConfigDom = (XmlDocument) context.Properties[MRConfigConstants.Web];

			RegisterSessionScopeHttpModule(webConfigDom);

			XmlDocument facilitiesDom = (XmlDocument) context.Properties[MRConfigConstants.FacilitiesConfig];

			RegisterAndConfigureFacility(facilitiesDom);

			XmlDocument propDom = (XmlDocument) context.Properties[MRConfigConstants.PropertiesConfig];

			RegisterConnectionStringAsProperty(propDom);
		}
		private void OnAddReferences(object sender, ExtensionContext context)
		{
			if (!HasSelected(context)) return;

			Project project = context.Projects[Constants.ProjectMain];

			Utils.AddReference(project, "Castle.Facilities.Logging.dll");

			if (panel.LogingApi == "Log4net")
			{
				Utils.AddReference(project, "log4net.dll");
				Utils.AddReference(project, "Castle.Services.Logging.Log4netIntegration.dll");
			}
			else if (panel.LogingApi == "NLog")
			{
				Utils.AddReference(project, "NLog.dll");
				Utils.AddReference(project, "NLog.DotNet.dll");
				Utils.AddReference(project, "Castle.Services.Logging.NLogIntegration.dll");
			}
		}
		private void RegisterAndConfigureFacility(XmlDocument dom, ExtensionContext context)
		{
			XmlElement facilitiesElem = (XmlElement) dom.SelectSingleNode("configuration/facilities");

			XmlElement logElem = dom.CreateElement("facility");
			
			logElem.SetAttribute("id", "loggingfacility");
			logElem.SetAttribute("type", "Castle.Facilities.Logging.LoggingFacility, Castle.Facilities.Logging");
			logElem.SetAttribute("loggingApi", panel.LogingApi);

			if (panel.LogingApi == "Log4net")
			{
				logElem.SetAttribute("configFile", "logging.config");

				Project project = context.Projects[Constants.ProjectMain];

				String projectFile = context.GetTemplateFileName(@"CSharp\MRProject\logging.config");
				project.ProjectItems.AddFromTemplate(projectFile, "logging.config");
			}

			facilitiesElem.AppendChild(logElem);
		}
Exemple #12
0
		protected virtual void SetupProjectsProperties(ExtensionContext context)
		{
			WizardEventHandler eventHandler = (WizardEventHandler) eventList[SetupProjectsPropertiesEventKey];
					
			if (eventHandler != null)
			{
				eventHandler(this, context);
			}
		}
		protected override void PostProcess(ExtensionContext context)
		{
			Project testProject = context.Projects[Constants.ProjectTest];

			Utils.PerformReplacesOn(testProject, NameSpace, LocalProjectPath, "AbstractModelTestCase.cs");

			base.PostProcess(context);
		}
		private void AddPanels(object sender, WizardDialog dlg, ExtensionContext context)
		{
			dlg.AddPanel(panel);
		}
Exemple #15
0
		protected virtual void AddProjects(ExtensionContext context)
		{
			WizardEventHandler eventHandler = (WizardEventHandler) eventList[AddProjectsEventKey];
					
			if (eventHandler != null)
			{
				eventHandler(this, context);
			}
		}
Exemple #16
0
		protected virtual void PostProcess(ExtensionContext context)
		{
			WizardEventHandler eventHandler = (WizardEventHandler) eventList[PostProcessEventKey];
					
			if (eventHandler != null)
			{
				eventHandler(this, context);
			}
		}
		private bool HasSelected(ExtensionContext context)
		{
			return ((bool) context.Properties["enableWindsorIntegration"]) &&
				context.Properties.Contains("Logging") &&
				((bool) context.Properties["Logging"]);
		}
Exemple #18
0
		private void OnPostProcess(object sender, ExtensionContext context)
		{
		}
Exemple #19
0
		private void OnSetupBuildEvent(object sender, ExtensionContext context)
		{
		}
		private bool HasSelected(ExtensionContext context)
		{
			return ((bool) context.Properties["enableWindsorIntegration"]) == true &&
				context.Properties.Contains("ActiveRecord Integration") &&
				((bool) context.Properties["ActiveRecord Integration"]) == true;
		}
Exemple #21
0
		public void Execute(object Application, int hwndOwner, 
			ref object[] ContextParams, ref object[] CustomParams, ref EnvDTE.wizardResult retval)
		{
			// TODO: Add magic here
			IWizardExtension[] extensions = LoadExtensions(CustomParams);

			foreach(IWizardExtension extension in extensions)
			{
				extension.Init(this);
			}

			try
			{
				dteInstance = (DTE) Application;
				owner = hwndOwner;

				projectName = (String) ContextParams[1];
				localProjectPath = (String) ContextParams[2];
				installationDirectory = (String) ContextParams[3];
				exclusive = (bool) ContextParams[4];
				solutionName = (String) ContextParams[5];

				context = new ExtensionContext(dteInstance, projectName, localProjectPath, installationDirectory, solutionName);

				if (exclusive)
				{
					vsPromptResult promptResult = dteInstance.ItemOperations.PromptToSave;

					if (promptResult == vsPromptResult.vsPromptResultCancelled)
					{
						retval = wizardResult.wizardResultCancel;
						return;
					}
				}

				using(WizardDialog dlg = new WizardDialog(context))
				{
					dlg.WizardTitle = WizardTitle;
					
					AddPanels(dlg);

					WizardUIEventHandler eventHandler = (WizardUIEventHandler) eventList[AddPanelsEventKey];
					
					if (eventHandler != null)
					{
						eventHandler(this, dlg, context);
					}

					dlg.ShowDialog(this);
					retval = dlg.WizardResult;

					if (retval == wizardResult.wizardResultSuccess)
					{
						CreateProject(dlg);
					}
					else
					{
						retval = wizardResult.wizardResultCancel;
						return;
					}
				}
			}
			catch(Exception ex)
			{
				String message = ex.GetType().Name + "\r\n\r\n" + ex.Message + "\r\n\r\n" + ex.StackTrace;
				
				MessageBox.Show(this, "Exception during project creation. \r\n" + message, 
					"Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
				
				throw;
			}
			finally
			{
				foreach(IWizardExtension extension in extensions)
				{
					extension.Terminate(this);
				}
			}
		}
Exemple #22
0
		public override bool WantsToShow(ExtensionContext context)
		{
			return ((bool) context.Properties["enableWindsorIntegration"]) &&
				context.Properties.Contains("ActiveRecord Integration") &&
				((bool) context.Properties["ActiveRecord Integration"]);
		}
		protected override void PostProcess(ExtensionContext context)
		{
			ProcessWebConfig();

			base.PostProcess(context);

			PersistWebConfig();
		}
Exemple #24
0
		public void SetContext(ExtensionContext context)
		{
			this.context = context;
		}
Exemple #25
0
		private void OnAddReferences(object sender, ExtensionContext context)
		{
		}
		public override bool WantsToShow(ExtensionContext context)
		{
			return ((bool) context.Properties["enableWindsorIntegration"]) == true &&
				context.Properties.Contains("NHibernate Integration") &&
				((bool) context.Properties["NHibernate Integration"]) == true;
		}
Exemple #27
0
		private void AddPanels(object sender, WizardDialog dlg, ExtensionContext context)
		{
			panel = new MRTestPanel();
			
			dlg.AddPanel(panel);
		}
		public override bool WantsToShow(ExtensionContext context)
		{
			return ((bool) context.Properties["enableWindsorIntegration"]);
		}
		public override bool WantsToShow(ExtensionContext context)
		{
			return ((bool) context.Properties["enableWindsorIntegration"]) == true &&
				context.Properties.Contains(DependencyKey) &&
				((bool) context.Properties[DependencyKey]) == true;
		}
Exemple #30
0
		public virtual bool WantsToShow(ExtensionContext context)
		{
			return true;
		}