/// <summary> /// Matches <paramref name="columnMapping"> source column value and <paramref name="columnMapping"> /// destination value. If they are equal skips them. Fills <paramref name="columnMapping"> destination otherwise. /// </summary> /// <param name="source">Source entity.</param> /// <param name="destination">Destination entity.</param> /// <param name="columnMapping">Column mapping.</param> private void SynchronizeColumns(Entity source, Entity destination, SynchronizationColumnMapping columnMapping) { object sourceValue = source.GetColumnValue(columnMapping.SourceColumnName); object destinationValue = destination.GetColumnValue(columnMapping.DestinationColumnName); SynchronizationColumnComparator equalComparator = columnMapping.Comparator ?? EqualComparator; if (!equalComparator(sourceValue, destinationValue)) { destination.SetColumnValue(columnMapping.DestinationColumnName, sourceValue); } }
/// <summary> /// Fills <paramref name="columnMapping"> destination with <paramref name="columnMapping"> source column value. /// </summary> /// <param name="source">Source entity.</param> /// <param name="destination">Destination entity.</param> /// <param name="columnMapping">Column mapping.</param> private void FillColumn(Entity source, Entity destination, SynchronizationColumnMapping columnMapping) { destination.SetColumnValue(columnMapping.DestinationColumnName, source.GetColumnValue(columnMapping.SourceColumnName)); }