Files
BeWoPlaner/BeWoLauncher/View/Frames/UninstallProgressInfoFrame.cs
2022-12-02 13:00:27 +01:00

70 lines
1.9 KiB
C#

using BeWoLauncher.Logic.Controller;
using BS.SharedLauncher.Update;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace BeWoLauncher.View.Frames
{
public class UninstallProgressInfoFrame : GenericProgressInfo
{
public event EventHandler UninstallSuccessful;
public UninstallProgressInfoFrame()
{
Bar1Deactivate();
Bar2Hide();
}
public override void Start()
{
Worker.DoWork += worker_DoWork;
Worker.ProgressChanged += worker_ProgressChanged;
Worker.RunWorkerCompleted += worker_completed;
Worker.WorkerReportsProgress = true;
Worker.RunWorkerAsync();
}
void worker_DoWork(object sender, DoWorkEventArgs e)
{
BackgroundWorker worker = sender as BackgroundWorker;
DownloadController.Manager.StartUninstall(worker.ReportProgress);
}
private void worker_completed(object sender, RunWorkerCompletedEventArgs e)
{
if (e.Error != null)
{
ViewController.ViewBehavior.UninstallFailed(e.Error);
}
else
{
UninstallSuccessful.Invoke(this, new EventArgs());
}
}
private void worker_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
if (e.ProgressPercentage == 3)
{
Bar1Deactivate();
Message = "Alte Dateien werden entfernt.";
SubMessage = "";
}
else if (e.ProgressPercentage == 4)
{
var args = e.UserState as string;
SubMessage = $"{args} wurde entfernt!";
}
}
}
}