using GalaSoft.MvvmLight.Command; using Install.Core; using Install.Core.Common; using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Shapes; namespace Install.View { /// /// PgDownload.xaml 的交互逻辑 /// public partial class WdDownload : Window { WdDownloadVm viewModel; public WdDownload() { InitializeComponent(); viewModel = new WdDownloadVm(); } public void Init() { viewModel.Init(); this.DataContext = viewModel; viewModel.DownloadNewestInstallZip(); } } public class WdDownloadVm : INotifyPropertyChanged { InstallWizard installWizard; public event PropertyChangedEventHandler PropertyChanged; public bool IsReady { get; private set; } = false; public string Msg { get; private set; } public InstallWizard InstallWizard => installWizard; public RelayCommand ExecCmd { get; set; } public RelayCommand CancelCmd { get; set; } public WdDownloadVm() { ExecCmd = new RelayCommand(Exec); CancelCmd = new RelayCommand(Cancel); } public void Init() { installWizard = App.Resolve(); Msg = $"下载 {installWizard.NewestInstallZipVersionInfo.InstallZipUrl}"; } public async void DownloadNewestInstallZip() { var ret = await installWizard.DownloadNewestInstallZip(); Msg = installWizard.DownloadInfo_ErrMsg; if (ret == true) { //解压 //获取当前 exe 目录 Msg = "开始解压......"; await Task.Factory.StartNew(() => { SeverZipExt.Uncompress(installWizard.NewestInstallZipPath + ".7z", installWizard.NewestInstallZipPath); }); Msg = "解压完成!!!"; IsReady = true; } } private void Cancel() { //关闭当前 Application.Current.Shutdown(); } private void Exec() { //关闭当前,进入新的安装包,运行 string exePath = System.IO.Path.Combine(installWizard.NewestInstallZipPath, "install.exe"); CMD.RunExe(exePath); Application.Current.Shutdown(); } } }