public Dictionary<SignalRequirementsSignalRequirement, ICollection<object>> Build(TestDescription testDescription)
{
var requiredSignals = new Dictionary<SignalRequirementsSignalRequirement, ICollection<object>>();
foreach (SignalRequirementsSignalRequirement signalRequirement in testDescription.SignalRequirements)
{
var attributes = new List<Tuple<string, object, string>>();
var dao = new InstrumentDAO();
TsfClass tsfClass = signalRequirement.TsfClass;
if (tsfClass.tsfClassName.Equals("SHORT"))
continue;
if (string.IsNullOrWhiteSpace(tsfClass.tsfClassName))
continue;
foreach (SignalRequirementsSignalRequirementTsfClassAttribute attribute in
signalRequirement.TsfClassAttribute)
{
TsfClassAttributeName name = attribute.Name;
if (attribute.Value != null)
{
if (attribute.Value.Item is DatumType)
{
DatumType datum = attribute.Value.Item as DatumType;
Object value = Datum.GetNominalDatumValue(datum);
if (value != null)
{
attributes.Add(new Tuple<string, object, string>(name.Value, value, datum.unitQualifier));
}
}
}
}
try
{
ICollection<object> capableEquipment = dao.FindCapableEquipment(attributes);
requiredSignals.Add(signalRequirement, capableEquipment );
}
catch (Exception e2)
{
LogManager.SourceError(ATMLAllocator.SOURCE, "Error In TSF Class: {0} - ERROR: {1}", tsfClass.tsfClassName, e2.Message );
LogManager.Debug( e2 );
foreach (var tuple in attributes)
{
LogManager.SourceError(ATMLAllocator.SOURCE, " {0} = {1}", tuple.Item1, tuple.Item2);
}
}
}
return requiredSignals;
}