private static DirectoryInfo GetAssemblyDirectory(DTE2 dte, string projectName) { var project = dte.GetProject(projectName); if (project == null) { throw new Exception(string.Format(CultureInfo.CurrentCulture, "Project {0} not found", projectName)); } var projectFileInfo = new FileInfo(project.FullName); var dllDirectory = new DirectoryInfo(Path.Combine(projectFileInfo.Directory.FullName, "bin", dte.Solution.SolutionBuild.ActiveConfiguration.Name)); return dllDirectory; }
public static void GenerateMocks(DTE2 dte) { var modelProject = dte.GetProject(ProjectNames.Model); if (!modelProject.Build()) { return; } var modelAssembly = modelProject.GetAssembly(); var iServiceType = modelAssembly.GetType("Plugins.IService"); var services = modelAssembly.GetTypes().Where(t => iServiceType.IsAssignableFrom(t) && t.IsInterface); foreach (var serviceType in services) { } //string mockBasePath = Path.GetDirectoryName(pluginCheckinProjFileName); //string logServicePath = Path.GetDirectoryName(serviceUtilsProjFileName); //var filesMock = new List<TfsHelper.FileInfo>(); //var filesMockTests = new List<TfsHelper.FileInfo>(); //var filesServices = new List<TfsHelper.FileInfo>(); //var filesLoggedServices = new List<TfsHelper.FileInfo>(); //filesMock.Add(new TfsHelper.FileInfo(GenerateMockFile(mockBasePath, typeof(IOrganizationService), false))); //filesMockTests.Add(new TfsHelper.FileInfo(GenerateTestFile(mockBasePath, typeof(IOrganizationService), false))); //foreach (var type in types) //{ // filesMock.Add(new TfsHelper.FileInfo(GenerateMockFile(mockBasePath, type, true))); // filesMockTests.Add(new TfsHelper.FileInfo(GenerateTestFile(mockBasePath, type, true))); // foreach (var f in GenerateLogServiceFile(logServicePath, type, nullableAttributeType)) // { // filesLoggedServices.Add(new TfsHelper.FileInfo(f)); // } // if (type.Name != "IService") // { // filesServices.Add(new TfsHelper.FileInfo(type.Name + ".cs")); // filesServices.Add(new TfsHelper.FileInfo(type.Name.Substring(1) + ".cs")); // } //} //for (var i = 0; i < filesMock.Count; i++) //{ // filesMockTests.Add(new TfsHelper.FileInfo(Path.Combine("Services", filesMock[i].NewName))); //} //TfsHelper.EnsureReferencesInProjectFile(pluginCheckinProjFileName, filesMockTests, @"Mocks\", null); //TfsHelper.EnsureReferencesInProjectFile(serviceUtilsProjFileName, filesLoggedServices, "", null); //TfsHelper.EnsureReferencesInProjectFile(pluginProjFileName, filesLoggedServices, @"..\Services.Utils\", @"Services"); //TfsHelper.EnsureReferencesInProjectFile(pluginProjFileName, filesServices, @"..\Model\Services", @"Services"); }