@@ -22,67 +22,64 @@ public partial class BulkDescriptor
2222
2323 private BulkDescriptor AddOperation ( IBulkOperation operation ) => Assign ( a => a . Operations . AddIfNotNull ( operation ) ) ;
2424
25- public BulkDescriptor Create < T > ( Func < BulkCreateDescriptor < T > , BulkCreateDescriptor < T > > bulkCreateSelector ) where T : class =>
25+ public BulkDescriptor Create < T > ( Func < BulkCreateDescriptor < T > , IBulkCreateOperation < T > > bulkCreateSelector ) where T : class =>
2626 Assign ( a => AddOperation ( bulkCreateSelector ? . Invoke ( new BulkCreateDescriptor < T > ( ) ) ) ) ;
2727
2828 /// <summary>
2929 /// CreateMany, convenience method to create many documents at once.
3030 /// </summary>
3131 /// <param name="objects">the objects to create</param>
3232 /// <param name="bulkCreateSelector">A func called on each object to describe the individual create operation</param>
33- public BulkDescriptor CreateMany < T > ( IEnumerable < T > @objects , Func < BulkCreateDescriptor < T > , T , BulkCreateDescriptor < T > > bulkCreateSelector = null ) where T : class =>
33+ public BulkDescriptor CreateMany < T > ( IEnumerable < T > @objects , Func < BulkCreateDescriptor < T > , T , IBulkCreateOperation < T > > bulkCreateSelector = null ) where T : class =>
3434 Assign ( a => @objects . ForEach ( o => AddOperation ( bulkCreateSelector . InvokeOrDefault ( new BulkCreateDescriptor < T > ( ) . Document ( o ) , o ) ) ) ) ;
35-
36- //public BulkDescriptor Index<T>(T obj, Func<BulkIndexDescriptor<T>, BulkIndexDescriptor<T>> bulkIndexSelector = null) where T : class =>
37- // Assign(a => AddOperation(bulkIndexSelector.InvokeOrDefault(new BulkIndexDescriptor<T>()).Document(obj)));
3835
39- public BulkDescriptor Index < T > ( Func < BulkIndexDescriptor < T > , BulkIndexDescriptor < T > > bulkIndexSelector ) where T : class =>
36+ public BulkDescriptor Index < T > ( Func < BulkIndexDescriptor < T > , IIndexOperation < T > > bulkIndexSelector ) where T : class =>
4037 Assign ( a => AddOperation ( bulkIndexSelector ? . Invoke ( new BulkIndexDescriptor < T > ( ) ) ) ) ;
4138
4239 /// <summary>
4340 /// IndexMany, convenience method to pass many objects at once.
4441 /// </summary>
4542 /// <param name="objects">the objects to index</param>
4643 /// <param name="bulkIndexSelector">A func called on each object to describe the individual index operation</param>
47- public BulkDescriptor IndexMany < T > ( IEnumerable < T > @objects , Func < BulkIndexDescriptor < T > , T , BulkIndexDescriptor < T > > bulkIndexSelector = null ) where T : class =>
44+ public BulkDescriptor IndexMany < T > ( IEnumerable < T > @objects , Func < BulkIndexDescriptor < T > , T , IIndexOperation < T > > bulkIndexSelector = null ) where T : class =>
4845 Assign ( a => @objects . ForEach ( o => AddOperation ( bulkIndexSelector . InvokeOrDefault ( new BulkIndexDescriptor < T > ( ) . Document ( o ) , o ) ) ) ) ;
4946
50- public BulkDescriptor Delete < T > ( T obj , Func < BulkDeleteDescriptor < T > , BulkDeleteDescriptor < T > > bulkDeleteSelector = null ) where T : class =>
47+ public BulkDescriptor Delete < T > ( T obj , Func < BulkDeleteDescriptor < T > , IBulkDeleteOperation < T > > bulkDeleteSelector = null ) where T : class =>
5148 Assign ( a => AddOperation ( bulkDeleteSelector . InvokeOrDefault ( new BulkDeleteDescriptor < T > ( ) . Document ( obj ) ) ) ) ;
5249
53- public BulkDescriptor Delete < T > ( Func < BulkDeleteDescriptor < T > , BulkDeleteDescriptor < T > > bulkDeleteSelector ) where T : class =>
50+ public BulkDescriptor Delete < T > ( Func < BulkDeleteDescriptor < T > , IBulkDeleteOperation < T > > bulkDeleteSelector ) where T : class =>
5451 Assign ( a => AddOperation ( bulkDeleteSelector ? . Invoke ( new BulkDeleteDescriptor < T > ( ) ) ) ) ;
5552
5653 /// <summary>
5754 /// DeleteMany, convenience method to delete many objects at once.
5855 /// </summary>
5956 /// <param name="objects">the objects to delete</param>
6057 /// <param name="bulkDeleteSelector">A func called on each object to describe the individual delete operation</param>
61- public BulkDescriptor DeleteMany < T > ( IEnumerable < T > @objects , Func < BulkDeleteDescriptor < T > , T , BulkDeleteDescriptor < T > > bulkDeleteSelector = null ) where T : class =>
58+ public BulkDescriptor DeleteMany < T > ( IEnumerable < T > @objects , Func < BulkDeleteDescriptor < T > , T , IBulkDeleteOperation < T > > bulkDeleteSelector = null ) where T : class =>
6259 Assign ( a => @objects . ForEach ( o => AddOperation ( bulkDeleteSelector . InvokeOrDefault ( new BulkDeleteDescriptor < T > ( ) . Document ( o ) , o ) ) ) ) ;
6360
6461 /// <summary>
6562 /// DeleteMany, convenience method to delete many objects at once.
6663 /// </summary>
6764 /// <param name="ids">Enumerable of string ids to delete</param>
6865 /// <param name="bulkDeleteSelector">A func called on each ids to describe the individual delete operation</param>
69- public BulkDescriptor DeleteMany < T > ( IEnumerable < string > ids , Func < BulkDeleteDescriptor < T > , string , BulkDeleteDescriptor < T > > bulkDeleteSelector = null ) where T : class =>
66+ public BulkDescriptor DeleteMany < T > ( IEnumerable < string > ids , Func < BulkDeleteDescriptor < T > , string , IBulkDeleteOperation < T > > bulkDeleteSelector = null ) where T : class =>
7067 Assign ( a => ids . ForEach ( o => AddOperation ( bulkDeleteSelector . InvokeOrDefault ( new BulkDeleteDescriptor < T > ( ) . Id ( o ) , o ) ) ) ) ;
7168
7269 /// <summary>
7370 /// DeleteMany, convenience method to delete many objects at once.
7471 /// </summary>
7572 /// <param name="ids">Enumerable of int ids to delete</param>
7673 /// <param name="bulkDeleteSelector">A func called on each ids to describe the individual delete operation</param>
77- public BulkDescriptor DeleteMany < T > ( IEnumerable < long > ids , Func < BulkDeleteDescriptor < T > , long , BulkDeleteDescriptor < T > > bulkDeleteSelector = null ) where T : class =>
74+ public BulkDescriptor DeleteMany < T > ( IEnumerable < long > ids , Func < BulkDeleteDescriptor < T > , long , IBulkDeleteOperation < T > > bulkDeleteSelector = null ) where T : class =>
7875 Assign ( a => ids . ForEach ( o => AddOperation ( bulkDeleteSelector . InvokeOrDefault ( new BulkDeleteDescriptor < T > ( ) . Id ( o ) , o ) ) ) ) ;
7976
80- public BulkDescriptor Update < T > ( Func < BulkUpdateDescriptor < T , T > , BulkUpdateDescriptor < T , T > > bulkUpdateSelector ) where T : class =>
77+ public BulkDescriptor Update < T > ( Func < BulkUpdateDescriptor < T , T > , IBulkUpdateOperation < T , T > > bulkUpdateSelector ) where T : class =>
8178 this . Update < T , T > ( bulkUpdateSelector ) ;
8279
83- public BulkDescriptor Update < T , K > ( Func < BulkUpdateDescriptor < T , K > , BulkUpdateDescriptor < T , K > > bulkUpdateSelector )
80+ public BulkDescriptor Update < T , TPartialDocument > ( Func < BulkUpdateDescriptor < T , TPartialDocument > , IBulkUpdateOperation < T , TPartialDocument > > bulkUpdateSelector )
8481 where T : class
85- where K : class =>
86- Assign ( a => AddOperation ( bulkUpdateSelector ? . Invoke ( new BulkUpdateDescriptor < T , K > ( ) ) ) ) ;
82+ where TPartialDocument : class =>
83+ Assign ( a => AddOperation ( bulkUpdateSelector ? . Invoke ( new BulkUpdateDescriptor < T , TPartialDocument > ( ) ) ) ) ;
8784 }
8885}
0 commit comments