public static void AreEqual(ISOSpatialRow isoSpatialRow, SpatialRecord adaptSpatialRecord, List<WorkingData> meters)
{
foreach (var meter in meters)
{
var adaptValue = adaptSpatialRecord.GetMeterValue(meter);
if(adaptValue == null)
continue;
var isoValue = isoSpatialRow.SpatialValues.Single(v => v.Id == meter.Id.FindIntIsoId());
var adaptEnumeratedValue = adaptValue as EnumeratedValue;
if (adaptEnumeratedValue != null)
{
var representation = RepresentationManager.Instance.Representations.First(x => x.DomainId == adaptEnumeratedValue.Representation.Code);
Assert.AreEqual(representation.Ddi.GetValueOrDefault(), Convert.ToInt32(isoValue.Dlv.A, 16));
if(representation.Ddi == 141)
CompareWorkState(adaptEnumeratedValue, isoValue);
if (representation.Ddi == 157)
CompareConnectorType(adaptEnumeratedValue, isoValue);
if (representation.Ddi == 158)
ComparePrescriptionControl(adaptEnumeratedValue, isoValue);
if (representation.Ddi == 160)
CompareSectionControlState(adaptEnumeratedValue, isoValue);
if (representation.Ddi >= 161 && representation.Ddi <= 176)
CompareCondensedWorkState(adaptEnumeratedValue, isoValue);
if (representation.Ddi == 210)
CompareSkyConditions(adaptEnumeratedValue, isoValue);
if (representation.Ddi == 230)
CompareNetWeightState(adaptEnumeratedValue, isoValue);
if (representation.Ddi == 240)
CompareActualLoadingSystemStatus(adaptEnumeratedValue, isoValue);
if (representation.Ddi >= 290 && representation.Ddi < 305)
CompareCondensedWorkState(adaptEnumeratedValue, isoValue);
if (representation.Ddi >= 367 && representation.Ddi <= 382)
CompareCondensedSectionOverrideState(adaptEnumeratedValue, isoValue);
}
var adaptNumericValue = adaptValue as NumericRepresentationValue;
if (adaptNumericValue != null)
{
var representation = RepresentationManager.Instance.Representations.FirstOrDefault(x => x.DomainId == adaptNumericValue.Representation.Code);
if (representation != null)
Assert.AreEqual(representation.Ddi, Convert.ToInt32(isoValue.Dlv.A, 16));
Assert.AreEqual(adaptNumericValue.Value.Value, isoValue.Value);
}
}
}