From af319eb4a7d4e46bc122c5b0c608c1d3a2ea453e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Thu, 29 Aug 2024 18:56:36 +0300 Subject: [PATCH] Implemented the application service --- .../visual-studio-application-contracts.png | Bin 0 -> 13175 bytes docs/en/tutorials/modular-crm/part-03.md | 91 +++++++++++++++++- 2 files changed, 90 insertions(+), 1 deletion(-) create mode 100644 docs/en/tutorials/modular-crm/images/visual-studio-application-contracts.png diff --git a/docs/en/tutorials/modular-crm/images/visual-studio-application-contracts.png b/docs/en/tutorials/modular-crm/images/visual-studio-application-contracts.png new file mode 100644 index 0000000000000000000000000000000000000000..e7fc6829d9c3764d506ab7a3f7a33b27ffc6a352 GIT binary patch literal 13175 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 _productRepository; + + public ProductAppService(IRepository productRepository) + { + _productRepository = productRepository; + } + + public async Task CreateAsync(ProductCreationDto input) + { + var product = new Product + { + Name = input.Name, + StockCount = input.StockCount + }; + + await _productRepository.InsertAsync(product); + } +} +```` + + + +... \ No newline at end of file