public static void CheckDataBlock(PropertyBlock block, CheckerEngine <PropertyRecord, Org.Neo4j.Consistency.report.ConsistencyReport_PropertyConsistencyReport> engine, RecordAccess records) { if (block.KeyIndexId < 0) { engine.Report().invalidPropertyKey(block); } else { engine.ComparativeCheck(records.PropertyKey(block.KeyIndexId), PropertyKey(block)); } PropertyType type = block.ForceGetType(); if (type == null) { engine.Report().invalidPropertyType(block); } else { switch (type.innerEnumValue) { case PropertyType.InnerEnum.STRING: engine.ComparativeCheck(records.String(block.SingleValueLong), DynamicReference.String(block)); break; case PropertyType.InnerEnum.ARRAY: engine.ComparativeCheck(records.Array(block.SingleValueLong), DynamicReference.Array(block)); break; default: try { type.value(block, null); } catch (Exception) { engine.Report().invalidPropertyValue(block); } break; } } }