Example #1
0
        private async Task <bool> Run(IcyWindVersionJson json, bool install)
        {
            if (install)
            {
                await Dispatcher.BeginInvoke(DispatcherPriority.Render, (Action)(() =>
                {
                    TextPanel.Children.Add(new Label
                    {
                        Content = "Starting IcyWind Installer",
                        HorizontalContentAlignment = HorizontalAlignment.Center
                    });
                }));
            }
            else
            {
                Title = "IcyWind - Updating";
                await Dispatcher.BeginInvoke(DispatcherPriority.Render, (Action)(() =>
                {
                    TextPanel.Children.Add(new Label
                    {
                        Content = "Starting IcyWind Updater",
                        HorizontalContentAlignment = HorizontalAlignment.Center
                    });
                }));

                //If files exist delete them
                if (Directory.Exists(Path.Combine(Environment.CurrentDirectory, "IcyWindAssets")))
                {
                    Directory.Delete(Path.Combine(Environment.CurrentDirectory, "IcyWindAssets"), true);
                }

                if (Directory.Exists(Path.Combine(Environment.CurrentDirectory, "core")))
                {
                    Directory.Delete(Path.Combine(Environment.CurrentDirectory, "core"), true);
                }
            }

            using (var client = new WebClient())
            {
                //If files exist delete them
                if (File.Exists(Path.Combine(Environment.CurrentDirectory, "assists.zip")))
                {
                    File.Delete(Path.Combine(Environment.CurrentDirectory, "assists.zip"));
                }

                if (File.Exists(Path.Combine(Environment.CurrentDirectory, "core.zip")))
                {
                    File.Delete(Path.Combine(Environment.CurrentDirectory, "core.zip"));
                }

                await Dispatcher.BeginInvoke(DispatcherPriority.Render, (Action)(() =>
                {
                    TextPanel.Children.Add(new Label
                    {
                        Content = "Downloading assists.zip",
                        HorizontalContentAlignment = HorizontalAlignment.Center
                    });
                }));

                client.DownloadFile("https://cdn.icywindclient.com/" + json.Latest.Assists,
                                    Path.Combine(Environment.CurrentDirectory, "assists.zip"));


                await Dispatcher.BeginInvoke(DispatcherPriority.Render, (Action)(() =>
                {
                    TextPanel.Children.Add(new Label
                    {
                        Content = "Downloading core.zip",
                        HorizontalContentAlignment = HorizontalAlignment.Center
                    });
                }));

                client.DownloadFile("https://cdn.icywindclient.com/" + json.Latest.Core,
                                    Path.Combine(Environment.CurrentDirectory, "core.zip"));


                await Dispatcher.BeginInvoke(DispatcherPriority.Render, (Action)(() =>
                {
                    TextPanel.Children.Add(new Label
                    {
                        Content = "Extracting assists.zip",
                        HorizontalContentAlignment = HorizontalAlignment.Center
                    });
                }));

                ExtractZipContent(Path.Combine(Environment.CurrentDirectory, "assists.zip"), null,
                                  Environment.CurrentDirectory);


                await Dispatcher.BeginInvoke(DispatcherPriority.Render, (Action)(() =>
                {
                    TextPanel.Children.Add(new Label
                    {
                        Content = "Extracting core.zip",
                        HorizontalContentAlignment = HorizontalAlignment.Center
                    });
                }));

                ExtractZipContent(Path.Combine(Environment.CurrentDirectory, "core.zip"), null,
                                  Environment.CurrentDirectory);

                await Dispatcher.BeginInvoke(DispatcherPriority.Render, (Action)(() =>
                {
                    TextPanel.Children.Add(new Label
                    {
                        Content = "Cleaning up files",
                        HorizontalContentAlignment = HorizontalAlignment.Center
                    });
                }));

                File.Delete(Path.Combine(Environment.CurrentDirectory, "assists.zip"));
                File.Delete(Path.Combine(Environment.CurrentDirectory, "core.zip"));

                await Dispatcher.BeginInvoke(DispatcherPriority.Render, (Action)(() =>
                {
                    TextPanel.Children.Add(new Label
                    {
                        Content = "Starting up...",
                        HorizontalContentAlignment = HorizontalAlignment.Center
                    });
                    Close();
                }));
            }

            return(true);
        }
Example #2
0
 public Task <bool> Load(IcyWindVersionJson json, bool install)
 {
     return(Run(json, install));
 }