public async Task<MasterDataEntityMasterDataProvider> GetProvider()
var options = new InMemoryDatabaseCreationOptions(repositories =>
repositories.Add<MasterDataOrderByEntityRepository>(),
typeof(MasterDataOrderByEntityClassMap));
var services = new ServiceCollection();
new MasterDataOrderByEntity() { FirstName = "Alice", LastName = "" },
new MasterDataOrderByEntity() { FirstName = "Bob", LastName = "" },
new MasterDataOrderByEntity() { FirstName = "Carlos", LastName = "" },
new MasterDataOrderByEntity() { FirstName = "Denise", LastName = "" },
using (var dataScope = InMemoryDataScopeFactory.CreateStatefulInMemoryDataScope(services, options))
var repository = dataScope.CreateRepository<MasterDataOrderByEntityRepository>();
await repository.QueryNoPerimeter().DeleteAsync(CancellationToken.None);
foreach (var entry in data)
await repository.SaveOrUpdateAsync(entry);
await dataScope.Session.FlushAsync();
var provider = new MasterDataEntityMasterDataProvider(
dataScope.ServiceProvider.GetRequiredService<ISessionAdapterFactory>(),
new FrenchEnglishCulturesServiceStub(),
dataScope.ServiceProvider.GetRequiredService<IRepositoryFactory>());
var sortingParameters = new MasterDataProviderGetModelsParameters(null, null,
new OrderByParameter[] { new OrderByParameter(nameof(MasterDataOrderByEntity.FirstName), false) }, new CultureInfo("fr-FR"));
var dataFromProvider = await provider.GetModelsAsync(sortingParameters);
var sortedArrayName = dataFromProvider.Select(e => e.Name).ToArray();
var sortedArrayData = data.OrderByDescending(x => x.FirstName).Select(x => x.FirstName).ToArray();
CollectionAssert.AreEqual(sortedArrayName, sortedArrayData);