mirror of
https://github.com/bitwarden/server.git
synced 2025-07-02 00:22:50 -05:00
batch events
This commit is contained in:
@ -65,6 +65,32 @@ namespace Bit.Core.Utilities
|
||||
return new Guid(guidArray);
|
||||
}
|
||||
|
||||
public static IEnumerable<IEnumerable<T>> Batch<T>(this IEnumerable<T> source, int size)
|
||||
{
|
||||
T[] bucket = null;
|
||||
var count = 0;
|
||||
foreach(var item in source)
|
||||
{
|
||||
if(bucket == null)
|
||||
{
|
||||
bucket = new T[size];
|
||||
}
|
||||
bucket[count++] = item;
|
||||
if(count != size)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
yield return bucket.Select(x => x);
|
||||
bucket = null;
|
||||
count = 0;
|
||||
}
|
||||
// Return the last bucket with all remaining elements
|
||||
if(bucket != null && count > 0)
|
||||
{
|
||||
yield return bucket.Take(count);
|
||||
}
|
||||
}
|
||||
|
||||
public static DataTable ToGuidIdArrayTVP(this IEnumerable<Guid> ids)
|
||||
{
|
||||
return ids.ToArrayTVP("GuidId");
|
||||
|
Reference in New Issue
Block a user