public void CollectProjects() { Microsoft.VisualStudio.Shell.ThreadHelper.ThrowIfNotOnUIThread(); if (Dte == null) { return; } foreach (Project p in Dte.Solution.Projects) { if (string.Compare(p.Kind, ProjectKinds.vsProjectKindSolutionFolder) == 0) { CollectNestedProjects(p); } else { SolutionProject sp = new SolutionProject() { ProjectName = p.Name, ProjectUniqueName = p.UniqueName, ProjectRef = p }; ComboItemsSourceProjects.Add(sp); } } }
public virtual void CollectNestedProjects(Project parentPrj) { Microsoft.VisualStudio.Shell.ThreadHelper.ThrowIfNotOnUIThread(); if (string.Compare(parentPrj.Kind, ProjectKinds.vsProjectKindSolutionFolder) != 0) { return; } for (var i = 1; i <= parentPrj.ProjectItems.Count; i++) { Project subProject = parentPrj.ProjectItems.Item(i).SubProject; if (subProject == null) { continue; } // If this is another solution folder, do a recursive call, otherwise add if (subProject.Kind == ProjectKinds.vsProjectKindSolutionFolder) { CollectNestedProjects(subProject); } else { SolutionProject sp = new SolutionProject() { ProjectName = subProject.Name, ProjectUniqueName = subProject.UniqueName, ProjectRef = subProject }; ComboItemsSourceProjects.Add(sp); } } }
public override void UiBtnCommandAction(Object param) { if (string.IsNullOrWhiteSpace(UiCommandProppertyName)) { return; } if (SelectedCodeElement == null) { return; } if (SelectedCodeElement.CodeElementRef == null) { return; } CodeClass cc = SelectedCodeElement.CodeElementRef as CodeClass; if (SelectedViewModel != null) { SolutionProject prj = ComboItemsSourceProjects.Where(p => string.Equals(p.ProjectUniqueName, SelectedViewModel.RootNodeProjectName, StringComparison.OrdinalIgnoreCase)).FirstOrDefault(); if (prj != null) { if (!string.Equals(SelectedProject.ProjectUniqueName, prj.ProjectUniqueName, StringComparison.OrdinalIgnoreCase)) { if (SelectedProject.ProjectRef.Object is VSProject) { (SelectedProject.ProjectRef.Object as VSProject).References.AddProject(prj.ProjectRef); SelectedProject.ProjectRef.Save(); } } } } //cc.AddProperty(UiCommandProppertyName , UiCommandProppertyName, "System.Data.Entity.DbSet<" + SelectedViewModelRootClass + ">", -1, vsCMAccess.vsCMAccessPublic, null); CodeProperty codeProperty = cc.AddProperty(UiCommandProppertyName, UiCommandProppertyName, "DbSet<" + SelectedViewModelRootClass + ">", -1, vsCMAccess.vsCMAccessPublic, null); EditPoint editPoint = codeProperty.Getter.StartPoint.CreateEditPoint(); editPoint.Delete(codeProperty.Getter.EndPoint); editPoint.Insert("get ;"); editPoint = codeProperty.Setter.StartPoint.CreateEditPoint(); editPoint.Delete(codeProperty.Setter.EndPoint); editPoint.Insert("set ;"); if (cc.ProjectItem != null) { if (cc.ProjectItem.IsDirty) { cc.ProjectItem.Save(); } } DoAnaliseDbContext(); }