From 65f8425aa020f61f114aaea95c30031eb620cb9c Mon Sep 17 00:00:00 2001 From: ahmetfarukulu Date: Wed, 20 Nov 2024 11:22:11 +0300 Subject: [PATCH] Add part-05 of microservice tutorial detailing application service creation for the Ordering module --- .../images/vs-ordering-contracts.png | Bin 0 -> 41242 bytes docs/en/tutorials/microservice/part-05.md | 67 ++++++++++++++++++ 2 files changed, 67 insertions(+) create mode 100644 docs/en/tutorials/microservice/images/vs-ordering-contracts.png diff --git a/docs/en/tutorials/microservice/images/vs-ordering-contracts.png b/docs/en/tutorials/microservice/images/vs-ordering-contracts.png new file mode 100644 index 0000000000000000000000000000000000000000..062453b3b7635f9eae0dfd135fff79b4924fadde GIT binary patch literal 41242 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 literal 0 HcmV?d00001 diff --git a/docs/en/tutorials/microservice/part-05.md b/docs/en/tutorials/microservice/part-05.md index c4c484a16f..681b9370b7 100644 --- a/docs/en/tutorials/microservice/part-05.md +++ b/docs/en/tutorials/microservice/part-05.md @@ -139,3 +139,70 @@ Now, you can return to ABP Studio, right-click the `CloudCrm.OrderingService` pr After the operation completes, you can check your database to see the new `Orders` table has been created: ![sql-server-orders-database-table](images/sql-server-orders-database-table.png) + +## Creating the Application Service + +Now, we will create the application service to manage the `Order` entity. + +### Defining the Application Service Contract + +First, we need to define the application service contract under the `CloudCrm.OrderingService.Contracts` project. Return to your IDE, open the `CloudCrm.OrderingService` module's .NET solution and create an `IOrderAppService` interface under the `Services` folder for the `CloudCrm.OrderingService.Contracts` project: + +```csharp +using System.Collections.Generic; +using System.Threading.Tasks; +using Volo.Abp.Application.Services; + +namespace CloudCrm.OrderingService.Services; + +public interface IOrderAppService : IApplicationService +{ + Task> GetListAsync(); + Task CreateAsync(OrderCreationDto input); +} +``` + +### Defining the Data Transfer Objects + +Next, we need to define the data transfer objects (DTOs) for the `Order` entity. The `GetListAsync` and `CreateAsync` methods will use these DTOs to communicate with the client applications. + +Create a `OrderCreationDto` class under the `Services` folder in the `CloudCrm.OrderingService.Contracts` project: + +```csharp +using System; +using System.ComponentModel.DataAnnotations; + +namespace CloudCrm.OrderingService.Services; + +public class OrderCreationDto +{ + [Required] + [StringLength(150)] + public string CustomerName { get; set; } + + [Required] + public Guid ProductId { get; set; } +} +``` + +Create a `OrderDto` class under the `Services` folder in the `CloudCrm.OrderingService.Contracts` project: + +```csharp +using System; +using CloudCrm.OrderingService.Enums; + +namespace CloudCrm.OrderingService.Services; + +public class OrderDto +{ + public Guid Id { get; set; } + public string CustomerName { get; set; } + public Guid ProductId { get; set; } + public OrderState State { get; set; } +} +``` + +The final solution structure should look like this: + +![vs-ordering-contracts](images/vs-ordering-contracts.png) +