aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Installer/MainWindow.xaml.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Installer/MainWindow.xaml.cs')
-rw-r--r--MediaBrowser.Installer/MainWindow.xaml.cs92
1 files changed, 92 insertions, 0 deletions
diff --git a/MediaBrowser.Installer/MainWindow.xaml.cs b/MediaBrowser.Installer/MainWindow.xaml.cs
new file mode 100644
index 000000000..5990becce
--- /dev/null
+++ b/MediaBrowser.Installer/MainWindow.xaml.cs
@@ -0,0 +1,92 @@
+using System;
+using System.Collections.Generic;
+using System.Net;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Web;
+using System.Linq;
+using MediaBrowser.Installer.Code;
+using ServiceStack.Text;
+using ServiceStack.Text.Json;
+
+namespace MediaBrowser.Installer
+{
+ /// <summary>
+ /// Interaction logic for MainWindow.xaml
+ /// </summary>
+ public partial class MainWindow : Window
+ {
+ protected PackageVersionClass PackageClass;
+ protected Version PackageVersion;
+ protected string PackageName = "MBServer";
+
+ public MainWindow()
+ {
+ GetArgs();
+ InitializeComponent();
+ StartInstall();
+ }
+
+ private void btnCancel_Click(object sender, RoutedEventArgs e)
+ {
+ this.Close();
+ }
+
+ protected override void OnClosing(System.ComponentModel.CancelEventArgs e)
+ {
+ if (MessageBox.Show("Cancel Installation - Are you sure?", "Cancel", MessageBoxButton.YesNo) == MessageBoxResult.No)
+ {
+ e.Cancel = true;
+ }
+ base.OnClosing(e);
+ }
+
+ protected void GetArgs()
+ {
+ var args = AppDomain.CurrentDomain.SetupInformation.ActivationArguments;
+
+ if (args == null || args.ActivationData == null || args.ActivationData.Length <= 0) return;
+ var url = new Uri(args.ActivationData[0], UriKind.Absolute);
+
+ var parameters = HttpUtility.ParseQueryString(url.Query);
+
+ // fill in our arguments if there
+ PackageName = parameters["package"] ?? "MBServer";
+ PackageClass = (PackageVersionClass)Enum.Parse(typeof(PackageVersionClass), parameters["class"] ?? "Release");
+ PackageVersion = new Version(parameters["version"].ValueOrDefault("0.0.0.1"));
+
+ }
+
+ protected async Task StartInstall()
+ {
+ lblStatus.Content = "Downloading Server Package...";
+ dlAnimation.StartAnimation();
+ prgProgress.Value = 0;
+ prgProgress.Visibility = Visibility.Visible;
+
+ var archive = await DownloadPackage();
+
+ }
+
+ protected async Task<string> DownloadPackage()
+ {
+ using (var client = new WebClient())
+ {
+ try
+ {
+ // get the package information for the server
+ var json = await client.DownloadStringTaskAsync("http://www.mb3admin.com/admin/service/package/retrieveAll?name="+PackageName);
+ var packages = JsonSerializer.DeserializeFromString<List<PackageInfo>>(json);
+
+ var version = packages[0].versions.Where(v => v.classification == PackageClass).OrderByDescending(v => v.version).FirstOrDefault();
+ }
+ catch (Exception e)
+ {
+ MessageBox.Show(e.Message);
+ }
+ }
+ return "";
+
+ }
+ }
+}