Files
Core.Inventory.Service/Core.Inventory.Service.API/Extensions/ServiceCollectionExtension.cs

163 lines
9.3 KiB
C#

using Core.Inventory.Application.UseCases.Inventory;
using Core.Inventory.Application.UseCases.Inventory.Adapter;
using Core.Inventory.Application.UseCases.Inventory.Input.Base;
using Core.Inventory.Application.UseCases.Inventory.Input.Variant;
using Core.Inventory.Application.UseCases.Inventory.Ports;
using Core.Inventory.Application.UseCases.Inventory.Validator.Base;
using Core.Inventory.Application.UseCases.Inventory.Validator.Variant;
using Core.Inventory.Application.UseCases.Product;
using Core.Inventory.Application.UseCases.Product.Adapter;
using Core.Inventory.Application.UseCases.Product.Input;
using Core.Inventory.Application.UseCases.Product.Ports;
using Core.Inventory.Application.UseCases.Product.Validator;
using Core.Inventory.Application.UseCases.Tag;
using Core.Inventory.Application.UseCases.Tag.Adapter;
using Core.Inventory.Application.UseCases.Tag.Input;
using Core.Inventory.Application.UseCases.Tag.Ports;
using Core.Inventory.Application.UseCases.Tag.Validator;
using Core.Inventory.Application.UseCases.TagType;
using Core.Inventory.Application.UseCases.TagType.Adapter;
using Core.Inventory.Application.UseCases.TagType.Input;
using Core.Inventory.Application.UseCases.TagType.Ports;
using Core.Inventory.Application.UseCases.TagType.Validator;
using FluentValidation;
using Lib.Architecture.BuildingBlocks;
namespace Core.Inventory.Service.API.Extensions
{
public static class ServiceCollectionExtension
{
public static IServiceCollection AddServiceConfigurationLayer(this IServiceCollection services)
{
#region FurnitureBase
services.AddScoped<IFurnitureBasePort, FurnitureBasePort>();
services.AddScoped<IComponentHandler<GetAllFurnitureBaseRequest>, InventoryHandler>();
services.AddScoped<IComponentHandler<GetFurnitureBaseByIdRequest>, InventoryHandler>();
services.AddScoped<IComponentHandler<CreateFurnitureBaseRequest>, InventoryHandler>();
services.AddScoped<IComponentHandler<UpdateFurnitureBaseRequest>, InventoryHandler>();
services.AddScoped<IComponentHandler<ChangeFurnitureBaseStatusRequest>, InventoryHandler>();
services.AddValidatorsFromAssemblyContaining<CreateFurnitureBaseValidator>();
services.AddScoped<IValidator<CreateFurnitureBaseRequest>, CreateFurnitureBaseValidator>();
services.AddValidatorsFromAssemblyContaining<UpdateFurnitureBaseValidator>();
services.AddScoped<IValidator<UpdateFurnitureBaseRequest>, UpdateFurnitureBaseValidator>();
services.AddValidatorsFromAssemblyContaining<ChangeFurnitureBaseStatusValidator>();
services.AddScoped<IValidator<ChangeFurnitureBaseStatusRequest>, ChangeFurnitureBaseStatusValidator>();
services.AddValidatorsFromAssemblyContaining<GetFurnitureBaseByIdValidator>();
services.AddScoped<IValidator<GetFurnitureBaseByIdRequest>, GetFurnitureBaseByIdValidator>();
#endregion
#region FurnitureVariant
services.AddScoped<IFurnitureVariantPort, FurnitureVariantPort>();
services.AddScoped<IComponentHandler<GetAllFurnitureVariantsByModelIdRequest>, InventoryHandler>();
services.AddScoped<IComponentHandler<GetFurnitureVariantByIdRequest>, InventoryHandler>();
services.AddScoped<IComponentHandler<CreateFurnitureVariantRequest>, InventoryHandler>();
services.AddScoped<IComponentHandler<UpdateFurnitureVariantRequest>, InventoryHandler>();
services.AddScoped<IComponentHandler<ChangeFurnitureVariantStatusRequest>, InventoryHandler>();
services.AddScoped<IComponentHandler<GetFurnitureVariantsByIdsRequest>, InventoryHandler>();
services.AddScoped<IComponentHandler<GetAllFurnitureVariantRequest>, InventoryHandler>();
services.AddValidatorsFromAssemblyContaining<CreateFurnitureVariantValidator>();
services.AddScoped<IValidator<CreateFurnitureVariantRequest>, CreateFurnitureVariantValidator>();
services.AddValidatorsFromAssemblyContaining<UpdateFurnitureVariantValidator>();
services.AddScoped<IValidator<UpdateFurnitureVariantRequest>, UpdateFurnitureVariantValidator>();
services.AddValidatorsFromAssemblyContaining<ChangeFurnitureVariantStatusValidator>();
services.AddScoped<IValidator<ChangeFurnitureVariantStatusRequest>, ChangeFurnitureVariantStatusValidator>();
services.AddValidatorsFromAssemblyContaining<GetFurnitureVariantByIdValidator>();
services.AddScoped<IValidator<GetFurnitureVariantByIdRequest>, GetFurnitureVariantByIdValidator>();
services.AddValidatorsFromAssemblyContaining<GetAllFurnitureVariantsByModelIdValidator>();
services.AddScoped<IValidator<GetAllFurnitureVariantsByModelIdRequest>, GetAllFurnitureVariantsByModelIdValidator>();
services.AddValidatorsFromAssemblyContaining<GetFurnitureVariantsByIdsValidator>();
services.AddScoped<IValidator<GetFurnitureVariantsByIdsRequest>, GetFurnitureVariantsByIdsValidator>();
#endregion
#region TagType Services
services.AddScoped<ITagTypePort, TagTypePort>();
services.AddScoped<IComponentHandler<GetAllTagTypesRequest>, TagTypeHandler>();
services.AddScoped<IComponentHandler<GetTagTypeRequest>, TagTypeHandler>();
services.AddValidatorsFromAssemblyContaining<GetAllTagTypesByListValidator>();
services.AddScoped<IValidator<GetAllTagTypesByListRequest>, GetAllTagTypesByListValidator>();
services.AddScoped<IComponentHandler<GetAllTagTypesByListRequest>, TagTypeHandler>();
services.AddValidatorsFromAssemblyContaining<CreateTagTypeValidator>();
services.AddScoped<IValidator<CreateTagTypeRequest>, CreateTagTypeValidator>();
services.AddScoped<IComponentHandler<CreateTagTypeRequest>, TagTypeHandler>();
services.AddValidatorsFromAssemblyContaining<UpdateTagTypeValidator>();
services.AddScoped<IValidator<UpdateTagTypeRequest>, UpdateTagTypeValidator>();
services.AddScoped<IComponentHandler<UpdateTagTypeRequest>, TagTypeHandler>();
services.AddValidatorsFromAssemblyContaining<ChangeTagTypeStatusValidator>();
services.AddScoped<IValidator<ChangeTagTypeStatusRequest>, ChangeTagTypeStatusValidator>();
services.AddScoped<IComponentHandler<ChangeTagTypeStatusRequest>, TagTypeHandler>();
#endregion
#region Tag Services
services.AddScoped<ITagPort, TagPort>();
services.AddScoped<IComponentHandler<GetAllTagsRequest>, TagHandler>();
services.AddScoped<IComponentHandler<GetTagRequest>, TagHandler>();
services.AddValidatorsFromAssemblyContaining<GetAllTagsByListValidator>();
services.AddScoped<IValidator<GetAllTagsByListRequest>, GetAllTagsByListValidator>();
services.AddScoped<IComponentHandler<GetAllTagsByListRequest>, TagHandler>();
services.AddValidatorsFromAssemblyContaining<CreateTagValidator>();
services.AddScoped<IValidator<CreateTagRequest>, CreateTagValidator>();
services.AddScoped<IComponentHandler<CreateTagRequest>, TagHandler>();
services.AddValidatorsFromAssemblyContaining<UpdateTagValidator>();
services.AddScoped<IValidator<UpdateTagRequest>, UpdateTagValidator>();
services.AddScoped<IComponentHandler<UpdateTagRequest>, TagHandler>();
services.AddValidatorsFromAssemblyContaining<ChangeTagStatusValidator>();
services.AddScoped<IValidator<ChangeTagStatusRequest>, ChangeTagStatusValidator>();
services.AddScoped<IComponentHandler<ChangeTagStatusRequest>, TagHandler>();
services.AddScoped<IComponentHandler<AddParentTagToTagRequest>, TagHandler>();
services.AddScoped<IComponentHandler<RemoveParentTagFromTagRequest>, TagHandler>();
#endregion
#region Product Services
services.AddScoped<IProductPort, ProductPort>();
services.AddScoped<IComponentHandler<GetAllProductsRequest>, ProductHandler>();
services.AddScoped<IComponentHandler<GetProductRequest>, ProductHandler>();
services.AddValidatorsFromAssemblyContaining<GetAllProductsByListValidator>();
services.AddScoped<IValidator<GetAllProductsByListRequest>, GetAllProductsByListValidator>();
services.AddScoped<IComponentHandler<GetAllProductsByListRequest>, ProductHandler>();
services.AddValidatorsFromAssemblyContaining<CreateProductValidator>();
services.AddScoped<IValidator<CreateProductRequest>, CreateProductValidator>();
services.AddScoped<IComponentHandler<CreateProductRequest>, ProductHandler>();
services.AddValidatorsFromAssemblyContaining<UpdateProductValidator>();
services.AddScoped<IValidator<UpdateProductRequest>, UpdateProductValidator>();
services.AddScoped<IComponentHandler<UpdateProductRequest>, ProductHandler>();
services.AddValidatorsFromAssemblyContaining<ChangeProductStatusValidator>();
services.AddScoped<IValidator<ChangeProductStatusRequest>, ChangeProductStatusValidator>();
services.AddScoped<IComponentHandler<ChangeProductStatusRequest>, ProductHandler>();
#endregion
return services;
}
}
}