MainWindow.xaml.cs 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Net;
  4. using System.Threading.Tasks;
  5. using System.Windows;
  6. using System.Web;
  7. using System.Linq;
  8. using MediaBrowser.Installer.Code;
  9. using ServiceStack.Text;
  10. using ServiceStack.Text.Json;
  11. namespace MediaBrowser.Installer
  12. {
  13. /// <summary>
  14. /// Interaction logic for MainWindow.xaml
  15. /// </summary>
  16. public partial class MainWindow : Window
  17. {
  18. protected PackageVersionClass PackageClass;
  19. protected Version PackageVersion;
  20. protected string PackageName = "MBServer";
  21. public MainWindow()
  22. {
  23. GetArgs();
  24. InitializeComponent();
  25. StartInstall();
  26. }
  27. private void btnCancel_Click(object sender, RoutedEventArgs e)
  28. {
  29. this.Close();
  30. }
  31. protected override void OnClosing(System.ComponentModel.CancelEventArgs e)
  32. {
  33. if (MessageBox.Show("Cancel Installation - Are you sure?", "Cancel", MessageBoxButton.YesNo) == MessageBoxResult.No)
  34. {
  35. e.Cancel = true;
  36. }
  37. base.OnClosing(e);
  38. }
  39. protected void GetArgs()
  40. {
  41. var args = AppDomain.CurrentDomain.SetupInformation.ActivationArguments;
  42. if (args == null || args.ActivationData == null || args.ActivationData.Length <= 0) return;
  43. var url = new Uri(args.ActivationData[0], UriKind.Absolute);
  44. var parameters = HttpUtility.ParseQueryString(url.Query);
  45. // fill in our arguments if there
  46. PackageName = parameters["package"] ?? "MBServer";
  47. PackageClass = (PackageVersionClass)Enum.Parse(typeof(PackageVersionClass), parameters["class"] ?? "Release");
  48. PackageVersion = new Version(parameters["version"].ValueOrDefault("0.0.0.1"));
  49. }
  50. protected async Task StartInstall()
  51. {
  52. lblStatus.Content = "Downloading Server Package...";
  53. dlAnimation.StartAnimation();
  54. prgProgress.Value = 0;
  55. prgProgress.Visibility = Visibility.Visible;
  56. var archive = await DownloadPackage();
  57. }
  58. protected async Task<string> DownloadPackage()
  59. {
  60. using (var client = new WebClient())
  61. {
  62. try
  63. {
  64. // get the package information for the server
  65. var json = await client.DownloadStringTaskAsync("http://www.mb3admin.com/admin/service/package/retrieveAll?name="+PackageName);
  66. var packages = JsonSerializer.DeserializeFromString<List<PackageInfo>>(json);
  67. var version = packages[0].versions.Where(v => v.classification == PackageClass).OrderByDescending(v => v.version).FirstOrDefault();
  68. }
  69. catch (Exception e)
  70. {
  71. MessageBox.Show(e.Message);
  72. }
  73. }
  74. return "";
  75. }
  76. }
  77. }