private bool ImportXMLFile(string filename, SymbolCollection coll2load, bool ImportFromRepository)
{
bool retval = false;
SymbolTranslator st = new SymbolTranslator();
System.Data.DataTable dt = new System.Data.DataTable(Path.GetFileNameWithoutExtension(filename));
dt.Columns.Add("SYMBOLNAME");
dt.Columns.Add("SYMBOLNUMBER", Type.GetType("System.Int32"));
dt.Columns.Add("FLASHADDRESS", Type.GetType("System.Int32"));
dt.Columns.Add("DESCRIPTION");
if (ImportFromRepository)
{
byte[] allBytes = File.ReadAllBytes(filename);
string boschpartNumber = Tools.Instance.ExtractBoschPartnumber(allBytes);
partNumberConverter pnc = new partNumberConverter();
ECUInfo info = pnc.ConvertPartnumber(boschpartNumber, allBytes.Length);
string checkstring = boschpartNumber + "_" + info.SoftwareID;
string xmlfilename = Tools.Instance.GetWorkingDirectory() + "\\repository\\" + Path.GetFileNameWithoutExtension(filename) + File.GetCreationTime(filename).ToString("yyyyMMddHHmmss") + checkstring + ".xml";
if (!Directory.Exists(Tools.Instance.GetWorkingDirectory() + "\\repository"))
{
Directory.CreateDirectory(Tools.Instance.GetWorkingDirectory() + "\\repository");
}
if (File.Exists(xmlfilename))
{
dt.ReadXml(xmlfilename);
retval = true;
}
}
else
{
string binname = GetFileDescriptionFromFile(filename);
if (binname != string.Empty)
{
dt = new System.Data.DataTable(binname);
dt.Columns.Add("SYMBOLNAME");
dt.Columns.Add("SYMBOLNUMBER", Type.GetType("System.Int32"));
dt.Columns.Add("FLASHADDRESS", Type.GetType("System.Int32"));
dt.Columns.Add("DESCRIPTION");
if (File.Exists(filename))
{
dt.ReadXml(filename);
retval = true;
}
}
}
foreach (SymbolHelper sh in coll2load)
{
foreach (DataRow dr in dt.Rows)
{
try
{
//if (dr["SYMBOLNAME"].ToString() == sh.Varname)
{
if (sh.Flash_start_address == Convert.ToInt32(dr["FLASHADDRESS"]))
{
sh.Userdescription = dr["DESCRIPTION"].ToString();
break;
}
}
}
catch (Exception E)
{
Console.WriteLine(E.Message);
}
}
}
return retval;
}