public bool GetDevices(string directory)
{
try
{
string[] files = Directory.GetFiles(directory);
//Parallel.ForEach(
// files, f =>
foreach (var f in files)
{
try
{
ECUMetaData d = new ECUMetaData(this, f);
if (d.isBase)
{
d.Populate();
}
lock (DefDictionary)
{
if (DefDictionary.ContainsKey(d.calibrationlId))
{
Trace.WriteLine("Duplicate definition found for: " + d.calibrationlId + " in file: " + f + " Check the definitions!!");
Trace.WriteLine("Definition was previously found in file: " + DefDictionary[d.calibrationlId].filePath);
}
else
{
DefDictionary.Add(d.calibrationlId, d);
lock (IdentList)
{
IdentList.Add(d.calibrationlId);
DeviceCount++;
}
}
}
}
catch (System.Exception excpt)
{
Trace.WriteLine("Error reading XML file " + f);
Trace.WriteLine(excpt.Message);
}
}
//});
List <string> directories = Directory.GetDirectories(directory).ToList();
//Parallel.ForEach(
// directories, d =>
foreach (var d in directories)
{
if (!GetDevices(d))
{
return(false);
}
} // });
return(true);
}
catch (System.Exception excpt)
{
Trace.WriteLine(excpt.Message);
}
return(false);
}