コード例 #1
0
 /// <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)));
 }
コード例 #2
0
 /// <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)));
 }
コード例 #3
0
 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));
 }
コード例 #4
0
 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));
 }
コード例 #5
0
        /// <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));
        }
コード例 #6
0
        /// <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);
        }
コード例 #7
0
        /// <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));
        }
コード例 #8
0
 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);