/// <summary> /// Synchronization column mapping. /// </summary> /// <returns>List of <see cref="SynchronizationColumnMapping"/></returns> protected virtual ICollection <SynchronizationColumnMapping> GetSynchronizationColumnMappings() { SynchronizationColumnComparator dateEqualComparator = EqualComparatorProvider.GetDateEqualComparator(); SynchronizationColumnComparator stringEqualComparator = EqualComparatorProvider.GetStringEqualComparator(); return(new List <SynchronizationColumnMapping> { new SynchronizationColumnMapping { SourceColumnName = "AddressTypeId", DestinationColumnName = "AddressTypeId" }, new SynchronizationColumnMapping { SourceColumnName = "CountryId", DestinationColumnName = "CountryId" }, new SynchronizationColumnMapping { SourceColumnName = "RegionId", DestinationColumnName = "RegionId" }, new SynchronizationColumnMapping { SourceColumnName = "CityId", DestinationColumnName = "CityId" }, new SynchronizationColumnMapping { SourceColumnName = "Address", DestinationColumnName = "Address", Comparator = stringEqualComparator }, new SynchronizationColumnMapping { SourceColumnName = "Zip", DestinationColumnName = "Zip", Comparator = stringEqualComparator } }); }
/// <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); } }
protected override ICollection <SynchronizationColumnMapping> GetSynchronizationColumnMappings() { SynchronizationColumnComparator stringEqualComparator = EqualComparatorProvider.GetStringEqualComparator(); var baseColumnMappings = base.GetSynchronizationColumnMappings(); baseColumnMappings.Add(new SynchronizationColumnMapping { SourceColumnName = "GPSN", DestinationColumnName = "GPSN", Comparator = stringEqualComparator }); baseColumnMappings.Add(new SynchronizationColumnMapping { SourceColumnName = "GPSE", DestinationColumnName = "GPSE", Comparator = stringEqualComparator }); return(baseColumnMappings); }