예제 #1
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));
        }
예제 #2
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));
        }