CM3D2.MaidFiddler.Plugin.Gui.TranslationSelectionGUI.OpenTranslationDownloadGithub C# (CSharp) Method

OpenTranslationDownloadGithub() private method

private OpenTranslationDownloadGithub ( object sender, EventArgs e ) : void
sender object
e System.EventArgs
return void
        private void OpenTranslationDownloadGithub(object sender, EventArgs e)
        {
            string list = string.Empty;
            LoadingBarGUI loadingBarGui = new LoadingBarGUI(
            Translation.GetTranslation("LOADING"),
            Translation.GetTranslation("TL_LIST_LOADING"),
            true,
            g =>
            {
                HttpWebRequest webRequest =
                (HttpWebRequest)
                WebRequest.Create($"{MaidFiddler.RESOURCE_URL}/Resources/Translations/translation_list.txt");
                g.Timer.Start();
                Debugger.WriteLine(LogLevel.Info, "Getting translation list...");
                webRequest.BeginGetResponse(
                ar =>
                {
                    try
                    {
                        HttpWebResponse response = (HttpWebResponse) webRequest.EndGetResponse(ar);
                        Debugger.WriteLine(LogLevel.Info, "Got response!");
                        Debugger.WriteLine(LogLevel.Info, $"Response: {response.StatusCode}");
                        if (response.StatusCode == HttpStatusCode.NotFound)
                        {
                            MessageBox.Show(
                            "Failed to retreive translation list: List not found.",
                            "Boop!",
                            MessageBoxButtons.OK,
                            MessageBoxIcon.Error);
                        }
                        Stream s = response.GetResponseStream();
                        Debugger.WriteLine(LogLevel.Info, "Reading response");
                        StringBuilder sb = new StringBuilder();
                        byte[] responseBuffer = new byte[1024];
                        int read;
                        do
                        {
                            read = s.Read(responseBuffer, 0, responseBuffer.Length);
                            sb.Append(Encoding.UTF8.GetString(responseBuffer, 0, read));
                        } while (read > 0);
                        list = sb.ToString();
                        g.DialogResult = DialogResult.OK;
                    }
                    catch (WebException we)
                    {
                        MessageBox.Show(
                        $"Failed to retreive translation list.\nResponse: {we.Message}",
                        "Boop!",
                        MessageBoxButtons.OK,
                        MessageBoxIcon.Error);
                        g.DialogResult = DialogResult.Abort;
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(
                        $"Unknown error occurred.\nInfo: {ex.ToString()}",
                        "Boop!",
                        MessageBoxButtons.OK,
                        MessageBoxIcon.Error);
                        g.DialogResult = DialogResult.Abort;
                    }
                    finally
                    {
                        g.Timer.Stop();
                        g.Close();
                    }
                },
                null);
            });
            DialogResult result = loadingBarGui.ShowDialog(this);
            loadingBarGui.Dispose();
            if (result != DialogResult.OK)
                return;
            GithubTranslationsGUI tlGui = new GithubTranslationsGUI(list.Remove(0, 1));
            tlGui.ShowDialog(this);
            tlGui.Dispose();
            LoadTranslations(Translation.CurrentTranslationFile);
        }