diff --git a/docs/en/Data-Filtering.md b/docs/en/Data-Filtering.md index 6df738cf18..dc237f6151 100644 --- a/docs/en/Data-Filtering.md +++ b/docs/en/Data-Filtering.md @@ -239,15 +239,25 @@ protected override Expression> CreateFilterExpression +[ExposeServices(typeof(IMongoDbRepositoryFilterer))] +public class BookMongoDbRepositoryFilterer : MongoDbRepositoryFilterer , ITransientDependency { - protected override void AddGlobalFilters(List> filters) + public BookMongoDbRepositoryFilterer( + IDataFilter dataFilter, + ICurrentTenant currentTenant) : + base(dataFilter, currentTenant) { + } + + public override void AddGlobalFilters(List> filters) + { + base.AddGlobalFilters(filters); + if (DataFilter.IsEnabled()) { filters.Add(Builders.Filter.Eq(e => ((IIsActive)e).IsActive, true)); @@ -256,7 +266,7 @@ public class BookRepository : MongoDbRepository : MongoDbRepository @@ -271,6 +281,8 @@ public abstract class MyMongoRepository : MongoD protected override void AddGlobalFilters(List> filters) { + base.AddGlobalFilters(filters); + if (typeof(IIsActive).IsAssignableFrom(typeof(TEntity)) && DataFilter.IsEnabled()) { @@ -278,6 +290,15 @@ public abstract class MyMongoRepository : MongoD } } } -```` -> See "Set Default Repository Classes" section of the [MongoDb Integration document](MongoDB.md) to learn how to replace default repository base with your custom class. \ No newline at end of file + +public class MyMongoDbModule : AbpModule +{ + public override void ConfigureServices(ServiceConfigurationContext context) + { + //....... + context.Services + .Replace(ServiceDescriptor.Transient(typeof(IMongoDbRepositoryFilterer<,>),typeof(MyMongoDbRepositoryFilterer<,>))); + } +} +```` \ No newline at end of file diff --git a/docs/en/Data-Transfer-Objects.md b/docs/en/Data-Transfer-Objects.md index bc81205b66..4d45570c1d 100644 --- a/docs/en/Data-Transfer-Objects.md +++ b/docs/en/Data-Transfer-Objects.md @@ -210,15 +210,15 @@ namespace AbpDemo { //Create the query var query = _productRepository - .OrderBy(input.Sorting) - .Skip(input.SkipCount) - .Take(input.MaxResultCount); + .OrderBy(input.Sorting); //Get total count from the repository var totalCount = await query.CountAsync(); //Get entities from the repository - List products = await query.ToListAsync(); + List products = await query + .Skip(input.SkipCount) + .Take(input.MaxResultCount).ToListAsync(); //Map entities to DTOs List productDtos = diff --git a/docs/en/Text-Templating-Scriban.md b/docs/en/Text-Templating-Scriban.md index 51b6c50f88..324fed7b14 100644 --- a/docs/en/Text-Templating-Scriban.md +++ b/docs/en/Text-Templating-Scriban.md @@ -1,4 +1,4 @@ -# Razor Integration +# Scriban Integration ## Installation diff --git a/docs/zh-Hans/Data-Filtering.md b/docs/zh-Hans/Data-Filtering.md index 45adcb6b05..74192cf426 100644 --- a/docs/zh-Hans/Data-Filtering.md +++ b/docs/zh-Hans/Data-Filtering.md @@ -188,15 +188,25 @@ protected override Expression> CreateFilterExpression +[ExposeServices(typeof(IMongoDbRepositoryFilterer))] +public class BookMongoDbRepositoryFilterer : MongoDbRepositoryFilterer , ITransientDependency { - protected override void AddGlobalFilters(List> filters) + public BookMongoDbRepositoryFilterer( + IDataFilter dataFilter, + ICurrentTenant currentTenant) : + base(dataFilter, currentTenant) { + } + + public override void AddGlobalFilters(List> filters) + { + base.AddGlobalFilters(filters); + if (DataFilter.IsEnabled()) { filters.Add(Builders.Filter.Eq(e => ((IIsActive)e).IsActive, true)); @@ -205,7 +215,7 @@ public class BookRepository : MongoDbRepository : MongoDbRepository @@ -220,6 +230,8 @@ public abstract class MyMongoRepository : MongoD protected override void AddGlobalFilters(List> filters) { + base.AddGlobalFilters(filters); + if (typeof(IIsActive).IsAssignableFrom(typeof(TEntity)) && DataFilter.IsEnabled()) { @@ -227,6 +239,17 @@ public abstract class MyMongoRepository : MongoD } } } + + +public class MyMongoDbModule : AbpModule +{ + public override void ConfigureServices(ServiceConfigurationContext context) + { + //....... + context.Services + .Replace(ServiceDescriptor.Transient(typeof(IMongoDbRepositoryFilterer<,>),typeof(MyMongoDbRepositoryFilterer<,>))); + } +} ```` > 参阅[MongoDb集成文档](MongoDB.md)的 "设置默认仓储" 部分了解如何使用自定义类替换默认仓储. \ No newline at end of file diff --git a/docs/zh-Hans/Data-Transfer-Objects.md b/docs/zh-Hans/Data-Transfer-Objects.md index eb844e7ea7..5f8a1bc527 100644 --- a/docs/zh-Hans/Data-Transfer-Objects.md +++ b/docs/zh-Hans/Data-Transfer-Objects.md @@ -210,15 +210,15 @@ namespace AbpDemo { //Create the query var query = _productRepository - .OrderBy(input.Sorting) - .Skip(input.SkipCount) - .Take(input.MaxResultCount); + .OrderBy(input.Sorting); //Get total count from the repository var totalCount = await query.CountAsync(); //Get entities from the repository - List products = await query.ToListAsync(); + List products = await query + .Skip(input.SkipCount) + .Take(input.MaxResultCount);.ToListAsync(); //Map entities to DTOs List productDtos = diff --git a/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/DynamicProxying/UrlBuilder.cs b/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/DynamicProxying/UrlBuilder.cs index 4d77423c7f..2a990c70d6 100644 --- a/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/DynamicProxying/UrlBuilder.cs +++ b/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/DynamicProxying/UrlBuilder.cs @@ -132,14 +132,14 @@ namespace Volo.Abp.Http.Client.DynamicProxying return true; } - private static string ConvertValueToString([NotNull] object value) + private static string ConvertValueToString([CanBeNull] object value) { if (value is DateTime dateTimeValue) { return dateTimeValue.ToUniversalTime().ToString("O"); } - return value.ToString(); + return value?.ToString(); } } }