/// <summary> /// Adds an item hook from the provided method. /// </summary> public static BulkRequestEntityConfigBuilder <TRequest, TItem, TEntity> AddItemHook <TRequest, TItem, TEntity>( this BulkRequestEntityConfigBuilder <TRequest, TItem, TEntity> config, Func <TItem, TItem> hook) where TEntity : class { return(config.AddItemHook((_, item) => hook(item))); }
/// <summary> /// Adds an item hook from the provided method. /// </summary> public static BulkRequestEntityConfigBuilder <TRequest, TItem, TEntity> AddItemHook <TRequest, TItem, TEntity>( this BulkRequestEntityConfigBuilder <TRequest, TItem, TEntity> config, Func <TRequest, TItem, TItem> hook) where TEntity : class { return(config.AddItemHook(FunctionItemHookFactory.From(hook))); }
public static BulkRequestEntityConfigBuilder <TRequest, TItem, TEntity> UseKeys <TRequest, TItem, TEntity>( this BulkRequestEntityConfigBuilder <TRequest, TItem, TEntity> config, string itemKeyProperty, string entityKeyProperty) where TEntity : class { return(config .UseEntityKey(entityKeyProperty) .UseRequestItemKey(itemKeyProperty)); }
public static BulkRequestEntityConfigBuilder <TRequest, TItem, TEntity> UseKeys <TRequest, TItem, TEntity, TItemKey, TEntityKey>( this BulkRequestEntityConfigBuilder <TRequest, TItem, TEntity> config, Expression <Func <TItem, TItemKey> > requestItemKeyExpr, Expression <Func <TEntity, TEntityKey> > entityKeyExpr) where TEntity : class { return(config .UseEntityKey(entityKeyExpr) .UseRequestItemKey(requestItemKeyExpr)); }
/// <summary> /// Selects entities whose entityKey member is contained within the request's requestItems collection /// ie: Where(entity => request.requestItems.Contains(entity.entityKey)) /// </summary> public static BulkRequestEntityConfigBuilder <TRequest, TItem, TEntity> SelectBy <TRequest, TItem, TEntity>( this BulkRequestEntityConfigBuilder <TRequest, TItem, TEntity> config, Expression <Func <TRequest, ICollection <TItem> > > requestItems, string entityKey) where TEntity : class { var kEntity = Key.MakeKey <TEntity>(entityKey); var kItem = Key.Identity <TItem>(); var selector = SelectorHelpers.BuildCollection <TRequest, TItem, TEntity>(requestItems, kEntity, kItem); return(config.SetSelector(selector)); }
/// <summary> /// Begins a configuration for an entity type. /// See the docs for more information on configuring entities for requests. /// </summary> public BulkRequestEntityConfigBuilder <TRequest, TItem, TEntity> ForEntity <TEntity>() where TEntity : class { var builder = new BulkRequestEntityConfigBuilder <TRequest, TItem, TEntity>(); if (_defaultItemSource != null) { builder.UseRequestItems(_defaultItemSource); } _requestEntityBuilders[typeof(TEntity)] = builder; return(builder); }
/// <summary> /// Selects entities whose entityKey member is contained within the request's requestItems collection /// ie: Where(entity => request.requestItems.Contains(entity.entityKey)) /// </summary> public static BulkRequestEntityConfigBuilder <TRequest, TItem, TEntity> SelectBy <TRequest, TItem, TEntity>( this BulkRequestEntityConfigBuilder <TRequest, TItem, TEntity> config, Expression <Func <TRequest, ICollection <TItem> > > requestItems, Expression <Func <TEntity, TItem> > entityKey) where TEntity : class { var kEntity = Key.MakeKeys(entityKey); var kItem = Key.Identity <TItem>(); if (kEntity.Length > 1) { throw new BadConfigurationException($"Composite keys are not supported for bulk requests"); } var selector = SelectorHelpers.BuildCollection <TRequest, TItem, TEntity>(requestItems, kEntity[0], kItem); return(config.SetSelector(selector)); }
public static BulkRequestEntityConfigBuilder <TRequest, TItem, TEntity> UseKeys <TRequest, TItem, TEntity>( this BulkRequestEntityConfigBuilder <TRequest, TItem, TEntity> config, string keyProperty) where TEntity : class => config.UseKeys(keyProperty, keyProperty);