private static void AddAssociation(dynamic rowData, List<TiplocCode> tiplocs, TiplocRepository tipRep, AssociationRepository aRep)
{
try
{
Association assoc = AssociationJsonMapper.ParseJsonAssociation(rowData.JsonAssociationV1, tiplocs);
switch (assoc.TransactionType)
{
case TransactionType.Create:
Trace.TraceInformation("Inserted Association From UID {0} -> {1}, Type {2}, Indicator {3}",
assoc.MainTrainUid, assoc.AssocTrainUid, assoc.AssociationType, assoc.STPIndicator);
break;
case TransactionType.Delete:
Trace.TraceInformation("Delete Association UID {0} For {1}",
assoc.MainTrainUid, assoc.StartDate);
break;
}
aRep.AddAssociation(assoc);
}
catch (TiplocNotFoundException tnfe)
{
TiplocCode t = new TiplocCode
{
Tiploc = tnfe.Code
};
t.TiplocId = tipRep.InsertTiploc(t.Tiploc);
tiplocs.Add(t);
AddAssociation(rowData, tiplocs, tipRep, aRep);
}
}