| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- using Community.VisualStudio.Toolkit;
- using Microsoft.VisualStudio.Shell;
- using System.Drawing;
- using System.Threading.Tasks;
- using VberAdmin.Generating;
- using VberAdmin.Helpers;
- using VberAdmin.Models;
- using VberAdmin.WinForm;
- namespace VberAdmin.Commands;
- [Command(PackageIds.CmdV3)]
- internal sealed class CommandV3 : BaseCommand<CommandV3>
- {
- protected override async Task ExecuteAsync(OleMenuCmdEventArgs e)
- {
- await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync();
- var dte = await Package.GetServiceAsync(typeof(EnvDTE.DTE)) as EnvDTE.DTE;
- if (dte == null)
- {
- await VS.MessageBox.ShowWarningAsync("未发现 [DTE] !");
- return;
- }
- if (!await Helper.CheckFileAsync())
- {
- return;
- }
- var generate = new Generator(dte, new FileCreateV3());
- TemplateViewModel viewModel = generate.ViewModel;
- viewModel.WebName = viewModel.WebName.Replace(".Mvc", "");
- VberForm form = new VberForm(viewModel);
- form.SetVersion("V2.1.3", Color.Blue);
- form.Show();
- async void OnFormOnOnGeneratorCodeStart()
- {
- generate.ViewModel = form.ViewModel;
- dte.StatusBar.Text = "VberCodeGenerate:开始生成文件。";
- await generate.ExecuteAsync();
- dte.StatusBar.Text = "VberCodeGenerate:文件已成功添加到项目中。";
- form.Hide();
- form.Close();
- await VS.MessageBox.ShowAsync("操作成功", $"文件已成功自动生成。");
- }
- form.OnGeneratorCodeStart += OnFormOnOnGeneratorCodeStart;
- }
- }
|