Datei: NDOPackage/Commands/AddPersistentClass.cs

Last Commit (ed9120d)
1 using Microsoft.VisualStudio;
2 using Microsoft.VisualStudio.Shell.Interop;
 
3
4 namespace NDOVsPackage.Commands
5 {
6 ····[Command(PackageGuids.guidNDOPackageCmdSetString, PackageIds.cmdidAddClass)]
7 ····internal sealed class AddPersistentClass : BaseCommand<AddPersistentClass>
8 ····{
9 ········protected override async Task ExecuteAsync(OleMenuCmdEventArgs e)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10 ········{
11 await VS. MessageBox. ShowWarningAsync( "AddPersistentClass", "Button clicked") ;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12 ········}
13
14 ········protected override void BeforeQueryStatus(EventArgs e)
15 ········{
16 ············ThreadHelper.JoinableTaskFactory.Run(async () =>
17 ············{
18 ················var project = await VS.Solutions.GetActiveProjectAsync();
19 ················await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync();
20 ················var enabled = CodeGenHelper.IsCsOrVbProject(project);
21 ················Command.Enabled = enabled;
22 ············});
23 ········}
24 ····}
25 }
26
New Commit (946ad0e)
1 using Microsoft.VisualStudio;
2 using Microsoft.VisualStudio.Shell.Interop;
3 using Project = EnvDTE.Project;
4
5 namespace NDOVsPackage.Commands
6 {
7 ····[Command(PackageGuids.guidNDOPackageCmdSetString, PackageIds.cmdidAddClass)]
8 ····internal sealed class AddPersistentClass : BaseCommand<AddPersistentClass>
9 ····{
10 ········protected override async Task ExecuteAsync(OleMenuCmdEventArgs e)
11 ········{
12 ············await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync();
13 ············System.Array solObjects = (Array) this.VisualStudioApplication.ActiveSolutionProjects;
14 ············if (solObjects.Length < 1)
15 ················return;
16
17 ············Project project = (Project) solObjects.GetValue( 0 );
18
19 ············if (!(CodeGenHelper.IsCsOrVbProject(project)))
20 ················return;
21
22 ············PersistentClassDialog pcd = new PersistentClassDialog();
23 ············pcd.ShowDialog();
24 ············if (pcd.Result == DialogResult.Cancel)
25 ················return;
26
27 ············SelectedItems selItems = VisualStudioApplication.SelectedItems;
28 ············ProjectItem parentItem = null;
29 ············if (selItems.Count == 1)
30 ············{
31 IEnumerator ienum = selItems. GetEnumerator( ) ;
32 ················ienum.MoveNext();
33 ················SelectedItem si = (SelectedItem) ienum.Current;
34 ················if (si.ProjectItem != null && si.ProjectItem.Kind == "{6BB5F8EF-4483-11D3-8BCF-00C04F8EC28C}") // Folder
35 ····················parentItem = si.ProjectItem;
36 ············}
37
38 ············if (CodeGenHelper.IsVbProject( project ))
39 ················new AddPersistentClassVb( project, pcd.ClassName, pcd.Serializable, parentItem ).DoIt();
40 ············else if (CodeGenHelper.IsCsProject( project ))
41 ················new AddPersistentClassCs( project, pcd.ClassName, pcd.Serializable, parentItem ).DoIt();
42 ········}
43 ············catch (Exception ex)
44 ············{
45 ················Debug.WriteLine(ex.ToString() );
46 ················MessageBox.Show(ex.Message, "Configure" );
47 ············}
48 }
49
50 ········protected override void BeforeQueryStatus(EventArgs e)
51 ········{
52 ············ThreadHelper.JoinableTaskFactory.Run(async () =>
53 ············{
54 ················var project = await VS.Solutions.GetActiveProjectAsync();
55 ················await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync();
56 ················var enabled = CodeGenHelper.IsCsOrVbProject(project);
57 ················Command.Enabled = enabled;
58 ············});
59 ········}
60 ····}
61 }
62