public void Process(byte[] aixmlDocument)
{
Dictionary<string, dbTSFSignal> signalLookup = new Dictionary<string, dbTSFSignal>();
string xmlMapping = CreateSignalMappingXml( aixmlDocument );
SignalMapping mapping = XmlUtils.DeserializeObject<SignalMapping>(xmlMapping);
if (mapping != null)
{
string modelName = mapping.ModelLibrary;
string sourceType = mapping.SourceType;
_usedSignalsList.Clear();
dbTSFLibrary library = GetTestSignalLibrary( mapping.ModelLibrary );
foreach (var noun in mapping.AtlasNouns )
{
string nounName = noun.Name;
string tsfSignalName = noun.Tsf;
_usedSignalsList.Add( nounName );
SourceSignalMapBean mapBean = _signalMappingDao.GetMappedSignal(sourceType, nounName);
if (mapBean == null)
{
mapBean = new SourceSignalMapBean();
mapBean.DataState = BASEBean.eDataState.DS_ADD;
}
else
{
mapBean.DataState = BASEBean.eDataState.DS_EDIT;
}
mapBean.sourceName = nounName;
mapBean.sourceType = sourceType;
if (string.IsNullOrEmpty(mapBean.targetType))
mapBean.targetType = modelName;
if (string.IsNullOrEmpty(mapBean.targetName))
mapBean.targetName = tsfSignalName;
mapBean.save();
foreach (var modifier in noun.Modifiers)
{
SourceSignalAttributeMapBean attribute = _signalMappingDao.GetMappedSignalAttribute(
mapBean.id.ToString(), modifier.Name );
if (attribute == null)
{
attribute = new SourceSignalAttributeMapBean();
attribute.DataState = BASEBean.eDataState.DS_ADD;
attribute.mapId = mapBean.id;
attribute.sourceName = modifier.Name;
attribute.sourceSuffix = modifier.Suffix;
attribute.targetQualifier = modifier.Qualifier;
attribute.targetName = modifier.Attribute;
attribute.save();
}
else
{
attribute.DataState = BASEBean.eDataState.DS_EDIT;
}
}
if (!string.IsNullOrEmpty( tsfSignalName ))
{
List<TestSignalBean> signals = _signalDao.getTSFSignals( tsfSignalName );
foreach (TestSignalBean testSignalBean in signals)
{
}
}
}
if (library != null)
{
//--- Create a lookup map for all the signals in the library ---//
foreach (dbTSFSignal tsfSignal in library.Signals)
{
if( !signalLookup.ContainsKey( tsfSignal.signalName ) )
signalLookup.Add(tsfSignal.signalName, tsfSignal);
}
}
}
}