public void Show(AppDetails param)
        {
            _downloadApp = DependencyService.Get <IDownloadApp>();

            bool success = _downloadApp.DownloadApplication(param.UrlAndroid, param.Name);

            if (success)
            {
                Application.Current.MainPage.DisplayAlert("Success", param.Name + " has been downloaded and will be installed shortly", "OK");
            }
        }
        public async Task When_installing_winget_cli()
        {
            IDownloadApp capturedDownloadApp = null !;

            GetMock <IDownloadAppInstaller>().Setup(x => x.InstallAsync(IsAny <IDownloadApp>()))
            .Callback <IDownloadApp>(downloadApp => capturedDownloadApp = downloadApp);

            await BecauseAsync(() => ClassUnderTest.InstallAsync());

            It("installs", () =>
            {
                capturedDownloadApp.ShouldBe(WingetCliInstaller.WingetCliApp);
            });

            It("accepts all source agreements", () =>
            {
                GetMock <IPowerShell>().Verify(x => x.ExecuteAsync("winget list winget --accept-source-agreements"));
            });
        }
        public async Task InstallAsync(IDownloadApp app)
        {
            consoleLogger.Info($"Installing '{app.AppId}'");

            IDownloader downloader = downloaderFactory.GetDownloader(app.Downloader);

            var downloadedFilePath = await downloader.DownloadAsync(app.DownloaderArgs.ToString() !);

            var installScript = $"{app.InstallScript} {downloadedFilePath}";

            if (app.VerificationScript == null)
            {
                await powerShell.ExecuteAsync(installScript);
            }
            else
            {
                await powerShell.ExecuteAsync(installScript, app.VerificationScript);
            }

            consoleLogger.Result($"Installed '{app.AppId}'");
        }
Example #4
0
 public LoginViewModel()
 {
     _downloadApp = DependencyService.Get <IDownloadApp>();
     LoginCommand = new Command(CheckLogin);
 }