Files
PCK-Studio/MinecraftUSkinEditor/Classes/Update.cs
2022-02-21 23:57:35 -05:00

84 lines
3.3 KiB
C#

using System;
using System.Diagnostics;
using System.Threading;
using System.IO;
using System.Net;
using System.Windows.Forms;
namespace PckStudio.Classes
{
class Update
{
static string UpdateURL = "Download/setup/PCKStudio-Setup.msi";
static string BetaUpdateURL = "Download/setup/beta/PCKStudioBeta-Setup.msi";
public static void UpdateProgram(bool Beta)
{
Forms.FakeProgressBar fb = new Forms.FakeProgressBar();
Thread thr = new Thread(() =>
{
Thread.CurrentThread.IsBackground = true;
fb.ShowDialog();
});
if (Classes.Network.Portable)
{
UpdateURL = UpdateURL.Replace(".msi","Portable.msi");
BetaUpdateURL = BetaUpdateURL.Replace(".msi","Portable.msi");
}
string DLPath = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + "\\Temp\\";
try
{
switch (Beta)
{
case true:
thr.Start();
try
{
DownloadFile(DLPath + Path.GetFileName(Classes.Network.MainURL + BetaUpdateURL), Classes.Network.MainURL + BetaUpdateURL);
Process.Start(DLPath + Path.GetFileName(Classes.Network.MainURL + BetaUpdateURL));
Application.Exit();
}
catch(WebException ex)
{
Console.WriteLine(ex.Message);
DownloadFile(DLPath + Path.GetFileName(Classes.Network.BackURL + BetaUpdateURL), Classes.Network.BackURL + BetaUpdateURL);
Process.Start(DLPath + Path.GetFileName(Classes.Network.BackURL + BetaUpdateURL));
Application.Exit();
}
break;
case false:
thr.Start();
try
{
DownloadFile(DLPath + Path.GetFileName(Classes.Network.MainURL + UpdateURL), Classes.Network.MainURL + UpdateURL);
Process.Start(DLPath + Path.GetFileName(Classes.Network.MainURL + UpdateURL));
Application.Exit();
}
catch
{
DownloadFile(DLPath + Path.GetFileName(Classes.Network.BackURL + UpdateURL), Classes.Network.BackURL + UpdateURL);
Process.Start(DLPath + Path.GetFileName(Classes.Network.BackURL + UpdateURL));
Application.Exit();
}
break;
}
}
catch
{
thr.Abort();
MessageBox.Show("Could not update!");
}
}
static void DownloadFile(string FillePath, string URL)
{
string remoteUri = Path.GetDirectoryName(URL);
WebClient myWebClient = new WebClient();
//Console.WriteLine("myWebClient.DownloadFile("+URL+", "+FillePath+");");
myWebClient.DownloadFile(URL, FillePath);
}
}
}