From f7c84a1147e19832119f5322f7ca792ab1ec6b1f Mon Sep 17 00:00:00 2001 From: lumijiez <59575049+lumijiez@users.noreply.github.com> Date: Fri, 6 Jun 2025 19:43:51 +0300 Subject: [PATCH] Restructure mediator files --- .../Imprink.Application.csproj | 6 ++++++ .../Products/Commands/CreateCategoryCommand.cs | 14 -------------- .../Products/Commands/CreateProductCommand.cs | 15 --------------- .../Commands/CreateProductVariantCommand.cs | 16 ---------------- .../Products/Commands/DeleteCategoryCommand.cs | 8 -------- .../Products/Commands/DeleteProductCommand.cs | 8 -------- .../Commands/DeleteProductVariantCommand.cs | 8 -------- .../CreateCategoryHandler.cs | 13 +++++++++++-- .../{Handlers => Create}/CreateProductHandler.cs | 14 ++++++++++++-- .../CreateProductVariantHandler.cs | 15 +++++++++++++-- .../DeleteCategoryHandler.cs | 8 ++++++-- .../{Handlers => Delete}/DeleteProductHandler.cs | 8 ++++++-- .../DeleteProductVariantHandler.cs | 8 ++++++-- .../Products/Queries/GetCategoriesQuery.cs | 10 ---------- .../Products/Queries/GetProductVariantsQuery.cs | 11 ----------- .../Products/Queries/GetProductsQuery.cs | 10 ---------- .../{Handlers => Query}/GetCategoriesHandler.cs | 9 +++++++-- .../GetProductVariantsHandler.cs | 10 ++++++++-- .../{Handlers => Query}/GetProductsHandler.cs | 9 +++++++-- .../Controllers/CategoriesController.cs | 5 +++-- .../Controllers/ProductVariantsController.cs | 5 +++-- .../Controllers/ProductsController.cs | 5 +++-- src/Imprink.WebApi/Startup.cs | 2 +- 23 files changed, 92 insertions(+), 125 deletions(-) delete mode 100644 src/Imprink.Application/Products/Commands/CreateCategoryCommand.cs delete mode 100644 src/Imprink.Application/Products/Commands/CreateProductCommand.cs delete mode 100644 src/Imprink.Application/Products/Commands/CreateProductVariantCommand.cs delete mode 100644 src/Imprink.Application/Products/Commands/DeleteCategoryCommand.cs delete mode 100644 src/Imprink.Application/Products/Commands/DeleteProductCommand.cs delete mode 100644 src/Imprink.Application/Products/Commands/DeleteProductVariantCommand.cs rename src/Imprink.Application/Products/{Handlers => Create}/CreateCategoryHandler.cs (81%) rename src/Imprink.Application/Products/{Handlers => Create}/CreateProductHandler.cs (85%) rename src/Imprink.Application/Products/{Handlers => Create}/CreateProductVariantHandler.cs (80%) rename src/Imprink.Application/Products/{Handlers => Delete}/DeleteCategoryHandler.cs (87%) rename src/Imprink.Application/Products/{Handlers => Delete}/DeleteProductHandler.cs (87%) rename src/Imprink.Application/Products/{Handlers => Delete}/DeleteProductVariantHandler.cs (87%) delete mode 100644 src/Imprink.Application/Products/Queries/GetCategoriesQuery.cs delete mode 100644 src/Imprink.Application/Products/Queries/GetProductVariantsQuery.cs delete mode 100644 src/Imprink.Application/Products/Queries/GetProductsQuery.cs rename src/Imprink.Application/Products/{Handlers => Query}/GetCategoriesHandler.cs (85%) rename src/Imprink.Application/Products/{Handlers => Query}/GetProductVariantsHandler.cs (89%) rename src/Imprink.Application/Products/{Handlers => Query}/GetProductsHandler.cs (87%) diff --git a/src/Imprink.Application/Imprink.Application.csproj b/src/Imprink.Application/Imprink.Application.csproj index 7d1c2ec..892e1ef 100644 --- a/src/Imprink.Application/Imprink.Application.csproj +++ b/src/Imprink.Application/Imprink.Application.csproj @@ -17,4 +17,10 @@ + + + + + + diff --git a/src/Imprink.Application/Products/Commands/CreateCategoryCommand.cs b/src/Imprink.Application/Products/Commands/CreateCategoryCommand.cs deleted file mode 100644 index 3ffbc28..0000000 --- a/src/Imprink.Application/Products/Commands/CreateCategoryCommand.cs +++ /dev/null @@ -1,14 +0,0 @@ -using Imprink.Application.Products.Dtos; -using MediatR; - -namespace Imprink.Application.Products.Commands; - -public class CreateCategoryCommand : IRequest -{ - public string Name { get; set; } = null!; - public string Description { get; set; } = null!; - public string? ImageUrl { get; set; } - public int SortOrder { get; set; } - public bool IsActive { get; set; } = true; - public Guid? ParentCategoryId { get; set; } -} \ No newline at end of file diff --git a/src/Imprink.Application/Products/Commands/CreateProductCommand.cs b/src/Imprink.Application/Products/Commands/CreateProductCommand.cs deleted file mode 100644 index 4233044..0000000 --- a/src/Imprink.Application/Products/Commands/CreateProductCommand.cs +++ /dev/null @@ -1,15 +0,0 @@ -using Imprink.Application.Products.Dtos; -using MediatR; - -namespace Imprink.Application.Products.Commands; - -public class CreateProductCommand : IRequest -{ - public string Name { get; set; } = null!; - public string? Description { get; set; } - public decimal BasePrice { get; set; } - public bool IsCustomizable { get; set; } - public bool IsActive { get; set; } = true; - public string? ImageUrl { get; set; } - public Guid? CategoryId { get; set; } -} \ No newline at end of file diff --git a/src/Imprink.Application/Products/Commands/CreateProductVariantCommand.cs b/src/Imprink.Application/Products/Commands/CreateProductVariantCommand.cs deleted file mode 100644 index f6edcfd..0000000 --- a/src/Imprink.Application/Products/Commands/CreateProductVariantCommand.cs +++ /dev/null @@ -1,16 +0,0 @@ -using Imprink.Application.Products.Dtos; -using MediatR; - -namespace Imprink.Application.Products.Commands; - -public class CreateProductVariantCommand : IRequest -{ - public Guid ProductId { get; set; } - public string Size { get; set; } = null!; - public string? Color { get; set; } - public decimal Price { get; set; } - public string? ImageUrl { get; set; } - public string Sku { get; set; } = null!; - public int StockQuantity { get; set; } - public bool IsActive { get; set; } = true; -} \ No newline at end of file diff --git a/src/Imprink.Application/Products/Commands/DeleteCategoryCommand.cs b/src/Imprink.Application/Products/Commands/DeleteCategoryCommand.cs deleted file mode 100644 index 28f3694..0000000 --- a/src/Imprink.Application/Products/Commands/DeleteCategoryCommand.cs +++ /dev/null @@ -1,8 +0,0 @@ -using MediatR; - -namespace Imprink.Application.Products.Commands; - -public class DeleteCategoryCommand : IRequest -{ - public Guid Id { get; set; } -} \ No newline at end of file diff --git a/src/Imprink.Application/Products/Commands/DeleteProductCommand.cs b/src/Imprink.Application/Products/Commands/DeleteProductCommand.cs deleted file mode 100644 index a40687f..0000000 --- a/src/Imprink.Application/Products/Commands/DeleteProductCommand.cs +++ /dev/null @@ -1,8 +0,0 @@ -using MediatR; - -namespace Imprink.Application.Products.Commands; - -public class DeleteProductCommand : IRequest -{ - public Guid Id { get; set; } -} \ No newline at end of file diff --git a/src/Imprink.Application/Products/Commands/DeleteProductVariantCommand.cs b/src/Imprink.Application/Products/Commands/DeleteProductVariantCommand.cs deleted file mode 100644 index df13945..0000000 --- a/src/Imprink.Application/Products/Commands/DeleteProductVariantCommand.cs +++ /dev/null @@ -1,8 +0,0 @@ -using MediatR; - -namespace Imprink.Application.Products.Commands; - -public class DeleteProductVariantCommand : IRequest -{ - public Guid Id { get; set; } -} diff --git a/src/Imprink.Application/Products/Handlers/CreateCategoryHandler.cs b/src/Imprink.Application/Products/Create/CreateCategoryHandler.cs similarity index 81% rename from src/Imprink.Application/Products/Handlers/CreateCategoryHandler.cs rename to src/Imprink.Application/Products/Create/CreateCategoryHandler.cs index 1d3c136..6b3cda4 100644 --- a/src/Imprink.Application/Products/Handlers/CreateCategoryHandler.cs +++ b/src/Imprink.Application/Products/Create/CreateCategoryHandler.cs @@ -1,9 +1,18 @@ -using Imprink.Application.Products.Commands; using Imprink.Application.Products.Dtos; using Imprink.Domain.Entities.Product; using MediatR; -namespace Imprink.Application.Products.Handlers; +namespace Imprink.Application.Products.Create; + +public class CreateCategoryCommand : IRequest +{ + public string Name { get; set; } = null!; + public string Description { get; set; } = null!; + public string? ImageUrl { get; set; } + public int SortOrder { get; set; } + public bool IsActive { get; set; } = true; + public Guid? ParentCategoryId { get; set; } +} public class CreateCategoryHandler(IUnitOfWork unitOfWork) : IRequestHandler { diff --git a/src/Imprink.Application/Products/Handlers/CreateProductHandler.cs b/src/Imprink.Application/Products/Create/CreateProductHandler.cs similarity index 85% rename from src/Imprink.Application/Products/Handlers/CreateProductHandler.cs rename to src/Imprink.Application/Products/Create/CreateProductHandler.cs index ba353eb..8cdce4c 100644 --- a/src/Imprink.Application/Products/Handlers/CreateProductHandler.cs +++ b/src/Imprink.Application/Products/Create/CreateProductHandler.cs @@ -1,9 +1,19 @@ -using Imprink.Application.Products.Commands; using Imprink.Application.Products.Dtos; using Imprink.Domain.Entities.Product; using MediatR; -namespace Imprink.Application.Products.Handlers; +namespace Imprink.Application.Products.Create; + +public class CreateProductCommand : IRequest +{ + public string Name { get; set; } = null!; + public string? Description { get; set; } + public decimal BasePrice { get; set; } + public bool IsCustomizable { get; set; } + public bool IsActive { get; set; } = true; + public string? ImageUrl { get; set; } + public Guid? CategoryId { get; set; } +} public class CreateProductHandler(IUnitOfWork unitOfWork) : IRequestHandler { diff --git a/src/Imprink.Application/Products/Handlers/CreateProductVariantHandler.cs b/src/Imprink.Application/Products/Create/CreateProductVariantHandler.cs similarity index 80% rename from src/Imprink.Application/Products/Handlers/CreateProductVariantHandler.cs rename to src/Imprink.Application/Products/Create/CreateProductVariantHandler.cs index f02bc88..c01eacd 100644 --- a/src/Imprink.Application/Products/Handlers/CreateProductVariantHandler.cs +++ b/src/Imprink.Application/Products/Create/CreateProductVariantHandler.cs @@ -1,9 +1,20 @@ -using Imprink.Application.Products.Commands; using Imprink.Application.Products.Dtos; using Imprink.Domain.Entities.Product; using MediatR; -namespace Imprink.Application.Products.Handlers; +namespace Imprink.Application.Products.Create; + +public class CreateProductVariantCommand : IRequest +{ + public Guid ProductId { get; set; } + public string Size { get; set; } = null!; + public string? Color { get; set; } + public decimal Price { get; set; } + public string? ImageUrl { get; set; } + public string Sku { get; set; } = null!; + public int StockQuantity { get; set; } + public bool IsActive { get; set; } = true; +} public class CreateProductVariantHandler(IUnitOfWork unitOfWork) : IRequestHandler diff --git a/src/Imprink.Application/Products/Handlers/DeleteCategoryHandler.cs b/src/Imprink.Application/Products/Delete/DeleteCategoryHandler.cs similarity index 87% rename from src/Imprink.Application/Products/Handlers/DeleteCategoryHandler.cs rename to src/Imprink.Application/Products/Delete/DeleteCategoryHandler.cs index 4b93917..fe6dfc2 100644 --- a/src/Imprink.Application/Products/Handlers/DeleteCategoryHandler.cs +++ b/src/Imprink.Application/Products/Delete/DeleteCategoryHandler.cs @@ -1,7 +1,11 @@ -using Imprink.Application.Products.Commands; using MediatR; -namespace Imprink.Application.Products.Handlers; +namespace Imprink.Application.Products.Delete; + +public class DeleteCategoryCommand : IRequest +{ + public Guid Id { get; set; } +} public class DeleteCategoryHandler(IUnitOfWork unitOfWork) : IRequestHandler { diff --git a/src/Imprink.Application/Products/Handlers/DeleteProductHandler.cs b/src/Imprink.Application/Products/Delete/DeleteProductHandler.cs similarity index 87% rename from src/Imprink.Application/Products/Handlers/DeleteProductHandler.cs rename to src/Imprink.Application/Products/Delete/DeleteProductHandler.cs index 29de5c2..70edc5a 100644 --- a/src/Imprink.Application/Products/Handlers/DeleteProductHandler.cs +++ b/src/Imprink.Application/Products/Delete/DeleteProductHandler.cs @@ -1,7 +1,11 @@ -using Imprink.Application.Products.Commands; using MediatR; -namespace Imprink.Application.Products.Handlers; +namespace Imprink.Application.Products.Delete; + +public class DeleteProductCommand : IRequest +{ + public Guid Id { get; set; } +} public class DeleteProductHandler(IUnitOfWork unitOfWork) : IRequestHandler { diff --git a/src/Imprink.Application/Products/Handlers/DeleteProductVariantHandler.cs b/src/Imprink.Application/Products/Delete/DeleteProductVariantHandler.cs similarity index 87% rename from src/Imprink.Application/Products/Handlers/DeleteProductVariantHandler.cs rename to src/Imprink.Application/Products/Delete/DeleteProductVariantHandler.cs index d39a6f6..410fb3a 100644 --- a/src/Imprink.Application/Products/Handlers/DeleteProductVariantHandler.cs +++ b/src/Imprink.Application/Products/Delete/DeleteProductVariantHandler.cs @@ -1,7 +1,11 @@ -using Imprink.Application.Products.Commands; using MediatR; -namespace Imprink.Application.Products.Handlers; +namespace Imprink.Application.Products.Delete; + +public class DeleteProductVariantCommand : IRequest +{ + public Guid Id { get; set; } +} public class DeleteProductVariantHandler(IUnitOfWork unitOfWork) : IRequestHandler { diff --git a/src/Imprink.Application/Products/Queries/GetCategoriesQuery.cs b/src/Imprink.Application/Products/Queries/GetCategoriesQuery.cs deleted file mode 100644 index dff7db6..0000000 --- a/src/Imprink.Application/Products/Queries/GetCategoriesQuery.cs +++ /dev/null @@ -1,10 +0,0 @@ -using Imprink.Application.Products.Dtos; -using MediatR; - -namespace Imprink.Application.Products.Queries; - -public class GetCategoriesQuery : IRequest> -{ - public bool? IsActive { get; set; } - public bool RootCategoriesOnly { get; set; } = false; -} \ No newline at end of file diff --git a/src/Imprink.Application/Products/Queries/GetProductVariantsQuery.cs b/src/Imprink.Application/Products/Queries/GetProductVariantsQuery.cs deleted file mode 100644 index c150d32..0000000 --- a/src/Imprink.Application/Products/Queries/GetProductVariantsQuery.cs +++ /dev/null @@ -1,11 +0,0 @@ -using Imprink.Application.Products.Dtos; -using MediatR; - -namespace Imprink.Application.Products.Queries; - -public class GetProductVariantsQuery : IRequest> -{ - public Guid? ProductId { get; set; } - public bool? IsActive { get; set; } - public bool InStockOnly { get; set; } = false; -} \ No newline at end of file diff --git a/src/Imprink.Application/Products/Queries/GetProductsQuery.cs b/src/Imprink.Application/Products/Queries/GetProductsQuery.cs deleted file mode 100644 index 7329b15..0000000 --- a/src/Imprink.Application/Products/Queries/GetProductsQuery.cs +++ /dev/null @@ -1,10 +0,0 @@ -using Imprink.Application.Products.Dtos; -using Imprink.Domain.Common.Models; -using MediatR; - -namespace Imprink.Application.Products.Queries; - -public class GetProductsQuery : IRequest> -{ - public ProductFilterParameters FilterParameters { get; set; } = new(); -} \ No newline at end of file diff --git a/src/Imprink.Application/Products/Handlers/GetCategoriesHandler.cs b/src/Imprink.Application/Products/Query/GetCategoriesHandler.cs similarity index 85% rename from src/Imprink.Application/Products/Handlers/GetCategoriesHandler.cs rename to src/Imprink.Application/Products/Query/GetCategoriesHandler.cs index 8bb0985..0baf581 100644 --- a/src/Imprink.Application/Products/Handlers/GetCategoriesHandler.cs +++ b/src/Imprink.Application/Products/Query/GetCategoriesHandler.cs @@ -1,9 +1,14 @@ using Imprink.Application.Products.Dtos; -using Imprink.Application.Products.Queries; using Imprink.Domain.Entities.Product; using MediatR; -namespace Imprink.Application.Products.Handlers; +namespace Imprink.Application.Products.Query; + +public class GetCategoriesQuery : IRequest> +{ + public bool? IsActive { get; set; } + public bool RootCategoriesOnly { get; set; } = false; +} public class GetCategoriesHandler(IUnitOfWork unitOfWork) : IRequestHandler> diff --git a/src/Imprink.Application/Products/Handlers/GetProductVariantsHandler.cs b/src/Imprink.Application/Products/Query/GetProductVariantsHandler.cs similarity index 89% rename from src/Imprink.Application/Products/Handlers/GetProductVariantsHandler.cs rename to src/Imprink.Application/Products/Query/GetProductVariantsHandler.cs index cddae77..adfa831 100644 --- a/src/Imprink.Application/Products/Handlers/GetProductVariantsHandler.cs +++ b/src/Imprink.Application/Products/Query/GetProductVariantsHandler.cs @@ -1,9 +1,15 @@ using Imprink.Application.Products.Dtos; -using Imprink.Application.Products.Queries; using Imprink.Domain.Entities.Product; using MediatR; -namespace Imprink.Application.Products.Handlers; +namespace Imprink.Application.Products.Query; + +public class GetProductVariantsQuery : IRequest> +{ + public Guid? ProductId { get; set; } + public bool? IsActive { get; set; } + public bool InStockOnly { get; set; } = false; +} public class GetProductVariantsHandler(IUnitOfWork unitOfWork) : IRequestHandler> diff --git a/src/Imprink.Application/Products/Handlers/GetProductsHandler.cs b/src/Imprink.Application/Products/Query/GetProductsHandler.cs similarity index 87% rename from src/Imprink.Application/Products/Handlers/GetProductsHandler.cs rename to src/Imprink.Application/Products/Query/GetProductsHandler.cs index 4116892..de8cfaa 100644 --- a/src/Imprink.Application/Products/Handlers/GetProductsHandler.cs +++ b/src/Imprink.Application/Products/Query/GetProductsHandler.cs @@ -1,8 +1,13 @@ using Imprink.Application.Products.Dtos; -using Imprink.Application.Products.Queries; +using Imprink.Domain.Common.Models; using MediatR; -namespace Imprink.Application.Products.Handlers; +namespace Imprink.Application.Products.Query; + +public class GetProductsQuery : IRequest> +{ + public ProductFilterParameters FilterParameters { get; set; } = new(); +} public class GetProductsHandler(IUnitOfWork unitOfWork) : IRequestHandler> { diff --git a/src/Imprink.WebApi/Controllers/CategoriesController.cs b/src/Imprink.WebApi/Controllers/CategoriesController.cs index 557f8e2..fb6d872 100644 --- a/src/Imprink.WebApi/Controllers/CategoriesController.cs +++ b/src/Imprink.WebApi/Controllers/CategoriesController.cs @@ -1,6 +1,7 @@ -using Imprink.Application.Products.Commands; +using Imprink.Application.Products.Create; +using Imprink.Application.Products.Delete; using Imprink.Application.Products.Dtos; -using Imprink.Application.Products.Queries; +using Imprink.Application.Products.Query; using MediatR; using Microsoft.AspNetCore.Mvc; diff --git a/src/Imprink.WebApi/Controllers/ProductVariantsController.cs b/src/Imprink.WebApi/Controllers/ProductVariantsController.cs index 1454e3e..7f2835b 100644 --- a/src/Imprink.WebApi/Controllers/ProductVariantsController.cs +++ b/src/Imprink.WebApi/Controllers/ProductVariantsController.cs @@ -1,6 +1,7 @@ -using Imprink.Application.Products.Commands; +using Imprink.Application.Products.Create; +using Imprink.Application.Products.Delete; using Imprink.Application.Products.Dtos; -using Imprink.Application.Products.Queries; +using Imprink.Application.Products.Query; using MediatR; using Microsoft.AspNetCore.Mvc; diff --git a/src/Imprink.WebApi/Controllers/ProductsController.cs b/src/Imprink.WebApi/Controllers/ProductsController.cs index 5a7d74b..00024ea 100644 --- a/src/Imprink.WebApi/Controllers/ProductsController.cs +++ b/src/Imprink.WebApi/Controllers/ProductsController.cs @@ -1,6 +1,7 @@ -using Imprink.Application.Products.Commands; +using Imprink.Application.Products.Create; +using Imprink.Application.Products.Delete; using Imprink.Application.Products.Dtos; -using Imprink.Application.Products.Queries; +using Imprink.Application.Products.Query; using Imprink.Domain.Common.Models; using MediatR; using Microsoft.AspNetCore.Mvc; diff --git a/src/Imprink.WebApi/Startup.cs b/src/Imprink.WebApi/Startup.cs index 683a413..18bcfa4 100644 --- a/src/Imprink.WebApi/Startup.cs +++ b/src/Imprink.WebApi/Startup.cs @@ -1,5 +1,5 @@ using Imprink.Application; -using Imprink.Application.Products.Handlers; +using Imprink.Application.Products.Create; using Imprink.Domain.Repositories; using Imprink.Infrastructure; using Imprink.Infrastructure.Database;