AvalonGUIConfig.updateFound.downloadChangeLog C# (CSharp) Method

downloadChangeLog() public static method

public static downloadChangeLog ( bool calledFromConfig ) : void
calledFromConfig bool
return void
        public static void downloadChangeLog(bool calledFromConfig)
        {
            // sort the list of patches with the newest first, this correctly display the change log
            updateCheck.patchList.Sort(delegate(updateCheck.patches p1, updateCheck.patches p2) { return p2.patchVersion.CompareTo(p1.patchVersion); });

            RichTextBox richTextBoxInput = new RichTextBox();
            RichTextBox richTextBoxOutput = new RichTextBox();
            //
            // Download the change logs
            //
            foreach (updateCheck.patches thePatch in updateCheck.patchList)
            {
                if (thePatch.patchChangeLog.StartsWith("C:\\"))
                {
                    System.IO.File.Copy(thePatch.patchChangeLog, Path.Combine(Path.GetTempPath(), "ChangeLog.rtf"), true);
                    return;
                }

                WebClient client = new WebClient();
                try
                {
                    client.DownloadFile(thePatch.patchChangeLog, Path.Combine(Path.GetTempPath(), "ChangeLog-" + thePatch.patchVersion.MinorRevision.ToString() + ".rtf"));
                }
                catch (Exception e)
                {
                    if (calledFromConfig)
                        MessageBox.Show("Unable to access ChangeLog-" + thePatch.patchVersion.MinorRevision.ToString() + ".rtf\n\n" + e.Message, "ChangeLog access issue");

                    //smcLog.WriteLog("Unable to access ChangeLog-" + thePatch.patchVersion.MinorRevision.ToString() + ".rtf > " + e.Message, LogLevel.Error);
                    return;
                }
               // smcLog.WriteLog("Downloaded File : " + Path.Combine(Path.GetTempPath(), "ChangeLog-" + thePatch.patchVersion.MinorRevision.ToString() + ".rtf"), LogLevel.Info);
            }
            //
            // And combine them into a single change log
            //
            if (File.Exists(Path.Combine(Path.GetTempPath(), "ChangeLog.rtf")))
                File.Delete(Path.Combine(Path.GetTempPath(), "ChangeLog.rtf"));

            //smcLog.WriteLog("Processing Change Log...", LogLevel.Info);

            try
            {
                // Add each file and save as ChangeLog.rtf
                int patchCnt = 1;
                AvalonGUIConfig.theRevisions = "Patch: ";
                foreach (updateCheck.patches thePatch in updateCheck.patchList)
                {
                    richTextBoxInput.LoadFile(Path.Combine(Path.GetTempPath(), "ChangeLog-" + thePatch.patchVersion.MinorRevision.ToString() + ".rtf"));
                    richTextBoxInput.SelectAll();
                    richTextBoxInput.Copy();
                    richTextBoxOutput.Paste();
                    System.IO.File.Delete(Path.Combine(Path.GetTempPath(), "ChangeLog-" + thePatch.patchVersion.MinorRevision.ToString() + ".rtf"));
                    if (patchCnt < updateCheck.patchList.Count)
                        AvalonGUIConfig.theRevisions = AvalonGUIConfig.theRevisions + thePatch.patchVersion.ToString() + " / ";
                    else
                        AvalonGUIConfig.theRevisions = AvalonGUIConfig.theRevisions + thePatch.patchVersion.ToString();
                    patchCnt++;
                }
                richTextBoxOutput.SaveFile(Path.Combine(Path.GetTempPath(), "ChangeLog.rtf"));
                richTextBoxInput.Dispose();
                richTextBoxOutput.Dispose();
            }
            catch (Exception ex)
            {
               Log.Error("Exception Reading Change Logs: " + ex.Message + "\\n" + ex.StackTrace);
            }
        }