void fillInfo(string fileName, patchFile pf)
{
if (pf.patchAction != "unzip")
{
pf.patchVersion = fileVersion(Path.Combine(tempExtractPath, fileName));
pf.patchSize = fileSize(Path.Combine(tempExtractPath, fileName));
}
// if patch file is a plugin
if (pf.patchLocation.ToLower().StartsWith("process") || pf.patchLocation.ToLower().StartsWith("windows"))
{
pf.destinationPath = Path.Combine(SkinInfo.mpPaths.pluginPath, pf.patchLocation);
pf.installedVersion = fileVersion(Path.Combine(pf.destinationPath, fileName));
pf.installedSize = fileSize(Path.Combine(pf.destinationPath, fileName));
}
if (pf.patchLocation.ToLower().StartsWith("mediaportal"))
{
pf.destinationPath = SkinInfo.mpPaths.sMPbaseDir;
pf.installedVersion = fileVersion(Path.Combine(pf.destinationPath, fileName));
pf.installedSize = fileSize(Path.Combine(pf.destinationPath, fileName));
}
if (pf.patchAction == "unzip")
pf.installedVersion = skInfo.skinVersion.ToString();
if (pf.installedVersion == "0.0.0.0" && pf.patchAction != "mandatoryinstall")
return;
patchFiles.Add(pf);
ListViewItem item = new ListViewItem(new[] { pf.patchFileName, pf.patchVersion, pf.installedVersion });
item.ImageIndex = 1;
Version patchVersion = new Version(pf.patchVersion);
Version installedVersion = new Version(pf.installedVersion);
if (patchVersion.CompareTo(installedVersion) < 0)
{
item.ImageIndex = 0;
}
else if (patchVersion.CompareTo(installedVersion) == 0)
{
// check filesize...we cant do modified date as embedded resource
// streams and writes a new file
if (pf.patchSize.CompareTo(pf.installedSize) <= 0)
item.ImageIndex = 0;
else
item.ImageIndex = 1;
}
else
item.ImageIndex = 1;
thePatches.Items.Add(item);
}