/// <summary> /// Creates a new instance. /// </summary> /// <param name="keyProvider">Required. A function to return the value of the entity's primary key.</param> /// <param name="keyBinder">The binder for the entity id.</param> /// <param name="items">Required. The list of entities to pre-populate the current instance with.</param> public InMemoryRepository( IKeyProvider <TEntity, TKey> keyProvider, IKeyBinder <TEntity, TKey> keyBinder, IEnumerable <TEntity> items) : this(keyProvider, keyBinder, items, ObjectMapperManager.DefaultInstance) { }
public InMemoryRepository( IKeyProvider <TEntity, Guid> keyProvider, IKeyBinder <TEntity, Guid> keyBinder, IEnumerable <TEntity> items) : base(keyProvider, keyBinder, items) { }
/// <summary> /// Creates a new instance. /// </summary> /// <param name="keyProvider">Required. A function to return the value of the entity's primary key.</param> /// <param name="keyBinder">The binder of the entity's id.</param> /// <param name="items">Required. The list of entities to pre-populate the current instance with.</param> /// <param name="mapper">Object mapper manager instance</param> public InMemoryRepository( IKeyProvider <TEntity, TKey> keyProvider, IKeyBinder <TEntity, TKey> keyBinder, IEnumerable <TEntity> items, ObjectMapperManager mapper) { Guard.ArgumentNotNull(keyProvider, nameof(keyProvider)); Guard.ArgumentNotNull(keyBinder, nameof(keyBinder)); Guard.ArgumentNotNull(items, nameof(items)); Guard.ArgumentNotNull(mapper, nameof(mapper)); _keyProvider = keyProvider; _keyBinder = keyBinder; _mapper = mapper; _items = new ConcurrentDictionary <TKey, TEntity>( items.Select(i => new KeyValuePair <TKey, TEntity>(_keyBinder.Get(i), i))); }
/// <summary> /// Creates a new instance. /// </summary> /// <param name="keyProvider">Required. A function to return the value of the entity's primary key.</param> /// <param name="keyBinder">The binder for the entity id.</param> public InMemoryRepository( IKeyProvider <TEntity, TKey> keyProvider, IKeyBinder <TEntity, TKey> keyBinder) : this(keyProvider, keyBinder, Array.Empty <TEntity>(), ObjectMapperManager.DefaultInstance) { }
/// <summary> /// Creates a new instance using a given key generator and key binder. /// </summary> /// <param name="keyGenerator">The generator for keys for a given entity.</param> /// <param name="keyBinder">The key binder to use.</param> public KeyProvider(IKeyGenerator <TEntity, TKey> keyGenerator, IKeyBinder <TEntity, TKey> keyBinder) { _getKey = keyGenerator; _keyBinder = keyBinder; }
public KeyProviderNoOp(IKeyBinder <TEntity, TKey> binder) { Guard.ArgumentNotNull(binder, nameof(binder)); _binder = binder; }