internal static ITranslationRule <TStoreObject, TEntity> MapTo <TStoreObject, TEntity, TValue>(this IStoragePropertyAccessor <TStoreObject, TValue> storageAccessor, EntityPropertyAccessor <TEntity, TValue> entityAccessor) where TEntity : IPropertyChangeTracker <Microsoft.Exchange.Entities.DataModel.PropertyBags.PropertyDefinition> { return(new PassThruPropertyTranslationRule <TStoreObject, TEntity, Microsoft.Exchange.Data.PropertyDefinition, TValue>(storageAccessor, entityAccessor)); }
internal static ITranslationRule <TStoreObject, TEntity> MapTo <TStoreObject, TEntity>(this IStoragePropertyAccessor <TStoreObject, ExDateTime> storageTimeAccessor, IStoragePropertyAccessor <TStoreObject, ExTimeZone> storageTimeZoneAccessor, EntityPropertyAccessor <TEntity, ExDateTime> entityTimeAccessor, EntityPropertyAccessor <TEntity, string> entityIntendedTimeZoneIdAccessor, DateTimeHelper dateTimeHelper) where TStoreObject : IStoreObject where TEntity : IPropertyChangeTracker <Microsoft.Exchange.Entities.DataModel.PropertyBags.PropertyDefinition> { return(new StorageTimeZoneSensitiveTimeTranslationRule <TStoreObject, TEntity>(storageTimeAccessor, storageTimeZoneAccessor, entityTimeAccessor, entityIntendedTimeZoneIdAccessor, dateTimeHelper)); }
internal static ITranslationRule <TStoreObject, TEntity> MapTo <TStoreObject, TEntity, TStorageValue, TEntityValue, TConverter>(this IStoragePropertyAccessor <TStoreObject, TStorageValue> storageAccessor, EntityPropertyAccessor <TEntity, TEntityValue> entityAccessor, TConverter converter) where TStoreObject : IStoreObject where TEntity : IPropertyChangeTracker <Microsoft.Exchange.Entities.DataModel.PropertyBags.PropertyDefinition> { IConverter <TStorageValue, TEntityValue> storageToEntityConverter = converter as IConverter <TStorageValue, TEntityValue>; IConverter <TEntityValue, TStorageValue> entityToStorageConverter = converter as IConverter <TEntityValue, TStorageValue>; return(storageAccessor.MapTo(entityAccessor, storageToEntityConverter, entityToStorageConverter)); }