From c759d587b96853ca3903a261acab357b074c5bff Mon Sep 17 00:00:00 2001 From: Engincan VESKE <43685404+EngincanV@users.noreply.github.com> Date: Fri, 1 Mar 2024 14:50:33 +0300 Subject: [PATCH 1/3] Create base application service classes for nolayers template. --- .../Services/MyProjectNameAppService.cs | 13 +++++++++++++ .../Services/MyProjectNameAppService.cs | 13 +++++++++++++ .../Services/MyProjectNameAppService.cs | 13 +++++++++++++ .../Server/Services/MyProjectNameAppService.cs | 13 +++++++++++++ .../Services/MyProjectNameAppService.cs | 13 +++++++++++++ .../Services/MyProjectNameAppService.cs | 13 +++++++++++++ .../Services/MyProjectNameAppService.cs | 13 +++++++++++++ .../Services/MyProjectNameAppService.cs | 13 +++++++++++++ 8 files changed, 104 insertions(+) create mode 100644 templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/Services/MyProjectNameAppService.cs create mode 100644 templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Services/MyProjectNameAppService.cs create mode 100644 templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/Services/MyProjectNameAppService.cs create mode 100644 templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/Services/MyProjectNameAppService.cs create mode 100644 templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/Services/MyProjectNameAppService.cs create mode 100644 templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Services/MyProjectNameAppService.cs create mode 100644 templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/Services/MyProjectNameAppService.cs create mode 100644 templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Services/MyProjectNameAppService.cs diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/Services/MyProjectNameAppService.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/Services/MyProjectNameAppService.cs new file mode 100644 index 0000000000..c211c514ac --- /dev/null +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/Services/MyProjectNameAppService.cs @@ -0,0 +1,13 @@ +using MyCompanyName.MyProjectName.Localization; +using Volo.Abp.Application.Services; + +namespace MyCompanyName.MyProjectName.Services; + +/* Inherit your application services from this class. */ +public abstract class MyProjectNameAppService : ApplicationService +{ + protected MyProjectNameAppService() + { + LocalizationResource = typeof(MyProjectNameResource); + } +} \ No newline at end of file diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Services/MyProjectNameAppService.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Services/MyProjectNameAppService.cs new file mode 100644 index 0000000000..c211c514ac --- /dev/null +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Services/MyProjectNameAppService.cs @@ -0,0 +1,13 @@ +using MyCompanyName.MyProjectName.Localization; +using Volo.Abp.Application.Services; + +namespace MyCompanyName.MyProjectName.Services; + +/* Inherit your application services from this class. */ +public abstract class MyProjectNameAppService : ApplicationService +{ + protected MyProjectNameAppService() + { + LocalizationResource = typeof(MyProjectNameResource); + } +} \ No newline at end of file diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/Services/MyProjectNameAppService.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/Services/MyProjectNameAppService.cs new file mode 100644 index 0000000000..c211c514ac --- /dev/null +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/Services/MyProjectNameAppService.cs @@ -0,0 +1,13 @@ +using MyCompanyName.MyProjectName.Localization; +using Volo.Abp.Application.Services; + +namespace MyCompanyName.MyProjectName.Services; + +/* Inherit your application services from this class. */ +public abstract class MyProjectNameAppService : ApplicationService +{ + protected MyProjectNameAppService() + { + LocalizationResource = typeof(MyProjectNameResource); + } +} \ No newline at end of file diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/Services/MyProjectNameAppService.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/Services/MyProjectNameAppService.cs new file mode 100644 index 0000000000..c211c514ac --- /dev/null +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/Services/MyProjectNameAppService.cs @@ -0,0 +1,13 @@ +using MyCompanyName.MyProjectName.Localization; +using Volo.Abp.Application.Services; + +namespace MyCompanyName.MyProjectName.Services; + +/* Inherit your application services from this class. */ +public abstract class MyProjectNameAppService : ApplicationService +{ + protected MyProjectNameAppService() + { + LocalizationResource = typeof(MyProjectNameResource); + } +} \ No newline at end of file diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/Services/MyProjectNameAppService.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/Services/MyProjectNameAppService.cs new file mode 100644 index 0000000000..c211c514ac --- /dev/null +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/Services/MyProjectNameAppService.cs @@ -0,0 +1,13 @@ +using MyCompanyName.MyProjectName.Localization; +using Volo.Abp.Application.Services; + +namespace MyCompanyName.MyProjectName.Services; + +/* Inherit your application services from this class. */ +public abstract class MyProjectNameAppService : ApplicationService +{ + protected MyProjectNameAppService() + { + LocalizationResource = typeof(MyProjectNameResource); + } +} \ No newline at end of file diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Services/MyProjectNameAppService.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Services/MyProjectNameAppService.cs new file mode 100644 index 0000000000..c211c514ac --- /dev/null +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Services/MyProjectNameAppService.cs @@ -0,0 +1,13 @@ +using MyCompanyName.MyProjectName.Localization; +using Volo.Abp.Application.Services; + +namespace MyCompanyName.MyProjectName.Services; + +/* Inherit your application services from this class. */ +public abstract class MyProjectNameAppService : ApplicationService +{ + protected MyProjectNameAppService() + { + LocalizationResource = typeof(MyProjectNameResource); + } +} \ No newline at end of file diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/Services/MyProjectNameAppService.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/Services/MyProjectNameAppService.cs new file mode 100644 index 0000000000..c211c514ac --- /dev/null +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/Services/MyProjectNameAppService.cs @@ -0,0 +1,13 @@ +using MyCompanyName.MyProjectName.Localization; +using Volo.Abp.Application.Services; + +namespace MyCompanyName.MyProjectName.Services; + +/* Inherit your application services from this class. */ +public abstract class MyProjectNameAppService : ApplicationService +{ + protected MyProjectNameAppService() + { + LocalizationResource = typeof(MyProjectNameResource); + } +} \ No newline at end of file diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Services/MyProjectNameAppService.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Services/MyProjectNameAppService.cs new file mode 100644 index 0000000000..c211c514ac --- /dev/null +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Services/MyProjectNameAppService.cs @@ -0,0 +1,13 @@ +using MyCompanyName.MyProjectName.Localization; +using Volo.Abp.Application.Services; + +namespace MyCompanyName.MyProjectName.Services; + +/* Inherit your application services from this class. */ +public abstract class MyProjectNameAppService : ApplicationService +{ + protected MyProjectNameAppService() + { + LocalizationResource = typeof(MyProjectNameResource); + } +} \ No newline at end of file From 4cbbd44dc103d6ec3b66603b912c995e3871c074 Mon Sep 17 00:00:00 2001 From: Engincan VESKE <43685404+EngincanV@users.noreply.github.com> Date: Fri, 1 Mar 2024 14:55:20 +0300 Subject: [PATCH 2/3] Update quick-start documentation for nolayers template. --- docs/en/Tutorials/Todo/Single-Layer/Index.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/en/Tutorials/Todo/Single-Layer/Index.md b/docs/en/Tutorials/Todo/Single-Layer/Index.md index 6c0bcc7055..b04080e635 100644 --- a/docs/en/Tutorials/Todo/Single-Layer/Index.md +++ b/docs/en/Tutorials/Todo/Single-Layer/Index.md @@ -327,8 +327,8 @@ public interface ITodoAppService : IApplicationService Create a `TodoAppService` class under the `Services` folder of {{if UI=="Blazor"}}your `TodoApp.Host` project{{else}}your project{{end}}, as shown below: ```csharp -{{if UI=="Blazor"}} using TodoApp.Services; +{{if UI=="Blazor"}} using TodoApp.Services.Dtos; using TodoApp.Entities; using Volo.Abp.Application.Services; @@ -341,7 +341,7 @@ using Volo.Abp.Domain.Repositories; namespace TodoApp.Services; -public class TodoAppService : ApplicationService{{if UI=="Blazor"}}, ITodoAppService{{end}} +public class TodoAppService : TodoAppAppService{{if UI=="Blazor"}}, ITodoAppService{{end}} { private readonly IRepository _todoItemRepository; @@ -354,7 +354,7 @@ public class TodoAppService : ApplicationService{{if UI=="Blazor"}}, ITodoAppSer } ``` -This class inherits from the `ApplicationService` class of the ABP Framework and implements our use-cases. ABP provides default generic [repositories](../../../Repositories.md) for the entities. We can use them to perform the fundamental database operations. This class [injects](../../../Dependency-Injection.md) `IRepository`, which is the default repository for the `TodoItem` entity. We will use it to implement our use cases. +This class inherits from the `TodoAppAppService`, which inherits from the `ApplicationService` class of the ABP Framework and implements our use-cases. ABP provides default generic [repositories](../../../Repositories.md) for the entities. We can use them to perform the fundamental database operations. This class [injects](../../../Dependency-Injection.md) `IRepository`, which is the default repository for the `TodoItem` entity. We will use it to implement our use cases. #### Getting the Todo Items From b5a365fb38f8a9824e317705e5ff83163c4a8850 Mon Sep 17 00:00:00 2001 From: maliming Date: Mon, 4 Mar 2024 20:17:28 +0800 Subject: [PATCH 3/3] Only `GetEntitiesAsync` on page 1. --- .../src/Volo.Abp.BlazoriseUI/AbpCrudPageBase.cs | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/framework/src/Volo.Abp.BlazoriseUI/AbpCrudPageBase.cs b/framework/src/Volo.Abp.BlazoriseUI/AbpCrudPageBase.cs index 58867d6e5d..a70c93f3ac 100644 --- a/framework/src/Volo.Abp.BlazoriseUI/AbpCrudPageBase.cs +++ b/framework/src/Volo.Abp.BlazoriseUI/AbpCrudPageBase.cs @@ -306,10 +306,12 @@ public abstract class AbpCrudPageBase< protected virtual async Task SearchEntitiesAsync() { + var currentPage = CurrentPage; CurrentPage = 1; - - await GetEntitiesAsync(); - + if (currentPage == 1) + { + await GetEntitiesAsync(); + } await InvokeAsync(StateHasChanged); } @@ -596,12 +598,12 @@ public abstract class AbpCrudPageBase< await SetEntityActionsAsync(); } - + protected virtual ValueTask SetEntityActionsAsync() { return ValueTask.CompletedTask; } - + private async ValueTask TrySetTableColumnsAsync() { if (IsDisposed) @@ -614,7 +616,7 @@ public abstract class AbpCrudPageBase< protected virtual ValueTask SetTableColumnsAsync() { - + return ValueTask.CompletedTask; }