private void CheckAuth(string pwOverride = null, Action <object> authCompletedCallback = null)
        {
            NamedBackgroundWorker nbw = new NamedBackgroundWorker(@"UpdaterServiceAuthCheck");

            nbw.DoWork += (a, b) =>
            {
                b.Result = false;
                string host     = @"ftp.me3tweaks.com";
                string username = Username;
                string password = pwOverride ?? Password_TextBox.Password;
                if (string.IsNullOrWhiteSpace(password))
                {
                    return;
                }

                using (SftpClient sftp = new SftpClient(host, username, password))
                {
                    string currentOp = @"Connecting";
                    try
                    {
                        sftp.Connect();
                        currentOp = M3L.GetString(M3L.string_checkingLZMAStorageDirectory);
                        sftp.ChangeDirectory(LZMAStoragePath);
                        currentOp = M3L.GetString(M3L.string_checkingManifestsStorageDirectory);
                        sftp.ChangeDirectory(ManifestStoragePath);
                        b.Result = true;
                    }
                    catch (Exception e)
                    {
                        Log.Information($@"Error logging in during operation '{currentOp}': " + e.Message);
                        b.Result = M3L.GetString(M3L.string_interp_errorValidatingSettingsXY, currentOp, e.Message);
                    }
                }
            };
            nbw.RunWorkerCompleted += (a, b) =>
            {
                Log.Information(@"Auth checked");
                OperationInProgress = false;
                authCompletedCallback?.Invoke(b.Result);
            };
            OperationInProgress = true;
            nbw.RunWorkerAsync();
        }
        private void LaunchTool(string localExecutable)
        {
            Action = M3L.GetString(M3L.string_interp_launching, tool);
            Analytics.TrackEvent(@"Launching tool", new Dictionary <string, string>()
            {
                { @"Tool name", Path.GetFileName(localExecutable) }
            });

            // Touchup for MEM LE versions
            if (Path.GetFileName(localExecutable) == @"MassEffectModderLE.exe")
            {
                localExecutable = Path.Combine(Directory.GetParent(localExecutable).FullName, @"MassEffectModder.exe");
            }
            if (Path.GetFileName(localExecutable) == @"MassEffectModderNoGuiLE.exe")
            {
                localExecutable = Path.Combine(Directory.GetParent(localExecutable).FullName, @"MassEffectModderNoGui.exe");
            }

            PercentVisibility = Visibility.Collapsed;
            PercentDownloaded = 0;
            Log.Information($@"Launching: {localExecutable} {arguments}");
            try
            {
                var psi = new ProcessStartInfo(localExecutable, arguments)
                {
                    WorkingDirectory = Directory.GetParent(localExecutable).FullName,
                };
                Process.Start(psi);
                Thread.Sleep(2500);
            }
            catch (Exception e)
            {
                Log.Error($@"Error launching tool {localExecutable}: {e.Message}");
                Action = M3L.GetString(M3L.string_interp_errorLaunchingToolX, e.Message);
                Thread.Sleep(6000);
            }

            OnClosing(DataEventArgs.Empty);
        }
Ejemplo n.º 3
0
        public override void OnPanelVisible()
        {
            lastPercentUpdateTime = DateTime.Now;
            NamedBackgroundWorker bw = new NamedBackgroundWorker(@"DeploymentValidation");

            bw.DoWork += (a, b) =>
            {
                ProgressIndeterminate = true;
                foreach (var checkItem in DeploymentChecklistItems)
                {
                    checkItem.ExecuteValidationFunction();
                }
            };
            bw.RunWorkerCompleted += (a, b) =>
            {
                PrecheckCompleted     = true;
                ProgressIndeterminate = false;
                OperationText         = M3L.GetString(M3L.string_verifyAboveItemsBeforeDeployment);
                CommandManager.InvalidateRequerySuggested();
            };
            bw.RunWorkerAsync();
        }