2021-06-25 07:50:12 -04:00

45 lines
1.4 KiB
C#

using System.Diagnostics;
using Codice.Client.BaseCommands;
using Codice.Client.Common;
using Codice.Client.Common.Threading;
using PlasticGui;
using Unity.PlasticSCM.Editor.Tool;
using Unity.PlasticSCM.Editor.UI.Progress;
namespace Unity.PlasticSCM.Editor.Views.Welcome
{
static class ConfigurePlasticOperation
{
internal static void Run(
bool isGluonMode,
ProgressControlsForViews progressControls)
{
((IProgressControls)progressControls).ShowProgress(string.Empty);
IThreadWaiter waiter = ThreadWaiter.GetWaiter();
waiter.Execute(
/*threadOperationDelegate*/ delegate
{
Process plasticProcess = LaunchTool.OpenConfigurationForMode(isGluonMode);
if (plasticProcess != null)
plasticProcess.WaitForExit();
},
/*afterOperationDelegate*/ delegate
{
((IProgressControls)progressControls).HideProgress();
ClientConfig.Reset();
CmConnection.Reset();
ClientHandlers.Register();
if (waiter.Exception == null)
return;
((IProgressControls)progressControls).ShowError(
waiter.Exception.Message);
});
}
}
}