private void PopulateMetadataFromCollection(MongoContext context, string collectionName, ResourceSet resourceSet)
{
var collection = context.Database.GetCollection(collectionName);
const string naturalSort = "$natural";
var sortOrder = this.Configuration.FetchPosition == MongoConfiguration.FetchPosition.End
? SortBy.Descending(naturalSort)
: SortBy.Ascending(naturalSort);
var documents = collection.FindAll().SetSortOrder(sortOrder);
int rowCount = 0;
foreach (var document in documents)
{
if (resourceSet == null)
{
resourceSet = AddResourceSet(context, collectionName, document);
}
else
{
UpdateResourceSet(context, resourceSet, document);
}
++rowCount;
if (this.Configuration.PrefetchRows >= 0 && rowCount >= this.Configuration.PrefetchRows)
break;
}
}