public bool MatchRecordStructureToRecord(IList<SubRecord> subs)
{
try
{
var records = GetStructures();
if (records == null)
return false;
RecordStructure rs;
if (!records.TryGetValue(Name, out rs))
{
return false;
}
var subrecords = new List<SubrecordStructure>();
var sss = rs.subrecordTree;
foreach (var sub in subs)
{
sub.DetachStructure();
}
var conditions = new Dictionary<int, Conditional>();
var context = new LoopContext(0, sss);
var result = this.InnerLoop(subs, conditions, context);
if (result == LoopContext.LoopEvalResult.Success && context.idx == subs.Count)
{
return true;
}
}
catch
{
}
return false;
}