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);
}
}