C# code fragment of the week
Posted by jpluimers on 2012/07/24
Please don’t do your code like this:
internal bool blnMDACResult = true;
internal bool CheckMDACisOK(string eenMDAC, string strAdoDllPath)
{
FileVersionInfo AdoVersionInfo;
try
{
AdoVersionInfo = FileVersionInfo.GetVersionInfo(strAdoDllPath);
AdoDllVersion = new Version(AdoVersionInfo.ProductMajorPart, AdoVersionInfo.ProductMinorPart, AdoVersionInfo.ProductBuildPart, AdoVersionInfo.ProductPrivatePart);
switch (eenMDAC)
{
case "2.6":
case "2,6":
// MDAC 2.6 - 2.60.6526.0
Version MinimumVersion = new Version(2, 60, 6526, 0);
blnMDACResult = AdoDllVersion.CompareTo(MinimumVersion) >= 0;
break;
case "2.7":
case "2,7":
// MDAC 2.7 - 2.70.7713.0
Version MinimumVersion = new Version(2, 70, 7713, 0);
blnMDACResult = AdoDllVersion.CompareTo(MinimumVersion) >= 0;
break;
case "2.8":
case "2,8":
// MDAC 2.8 - 2.80.1022.0
Version MinimumVersion = new Version(2, 80, 1022, 0);
blnMDACResult = AdoDllVersion.CompareTo(MinimumVersion) >= 0;
break;
default:
// 2.9 and up
string numberDecimalSeparator = Thread.CurrentThread.CurrentCulture.NumberFormat.NumberDecimalSeparator;
double dMinVersion = ConvertAppl.ToDouble(eenMDAC.Replace(".", numberDecimalSeparator));
double dVersion = ConvertAppl.ToDouble(AdoDllVersion.Major + ".".Replace(".", numberDecimalSeparator) + AdoDllVersion.Minor);
if (dVersion > dMinVersion)
blnMDACResult = true;
else
blnMDACResult = false;
break;
}
}
catch
{
// Something went wrong, let's assume the version is ok. (trial on error)
blnMDACResult = true;
return blnMDACResult;
}
return blnMDACResult;
}
–jeroen






Leave a comment