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(); services.AddScoped, InventoryHandler>(); services.AddScoped, InventoryHandler>(); services.AddScoped, InventoryHandler>(); services.AddScoped, InventoryHandler>(); services.AddScoped, InventoryHandler>(); services.AddValidatorsFromAssemblyContaining(); services.AddScoped, CreateFurnitureBaseValidator>(); services.AddValidatorsFromAssemblyContaining(); services.AddScoped, UpdateFurnitureBaseValidator>(); services.AddValidatorsFromAssemblyContaining(); services.AddScoped, ChangeFurnitureBaseStatusValidator>(); services.AddValidatorsFromAssemblyContaining(); services.AddScoped, GetFurnitureBaseByIdValidator>(); #endregion #region FurnitureVariant services.AddScoped(); services.AddScoped, InventoryHandler>(); services.AddScoped, InventoryHandler>(); services.AddScoped, InventoryHandler>(); services.AddScoped, InventoryHandler>(); services.AddScoped, InventoryHandler>(); services.AddScoped, InventoryHandler>(); services.AddScoped, InventoryHandler>(); services.AddValidatorsFromAssemblyContaining(); services.AddScoped, CreateFurnitureVariantValidator>(); services.AddValidatorsFromAssemblyContaining(); services.AddScoped, UpdateFurnitureVariantValidator>(); services.AddValidatorsFromAssemblyContaining(); services.AddScoped, ChangeFurnitureVariantStatusValidator>(); services.AddValidatorsFromAssemblyContaining(); services.AddScoped, GetFurnitureVariantByIdValidator>(); services.AddValidatorsFromAssemblyContaining(); services.AddScoped, GetAllFurnitureVariantsByModelIdValidator>(); services.AddValidatorsFromAssemblyContaining(); services.AddScoped, GetFurnitureVariantsByIdsValidator>(); #endregion #region TagType Services services.AddScoped(); services.AddScoped, TagTypeHandler>(); services.AddScoped, TagTypeHandler>(); services.AddValidatorsFromAssemblyContaining(); services.AddScoped, GetAllTagTypesByListValidator>(); services.AddScoped, TagTypeHandler>(); services.AddValidatorsFromAssemblyContaining(); services.AddScoped, CreateTagTypeValidator>(); services.AddScoped, TagTypeHandler>(); services.AddValidatorsFromAssemblyContaining(); services.AddScoped, UpdateTagTypeValidator>(); services.AddScoped, TagTypeHandler>(); services.AddValidatorsFromAssemblyContaining(); services.AddScoped, ChangeTagTypeStatusValidator>(); services.AddScoped, TagTypeHandler>(); #endregion #region Tag Services services.AddScoped(); services.AddScoped, TagHandler>(); services.AddScoped, TagHandler>(); services.AddValidatorsFromAssemblyContaining(); services.AddScoped, GetAllTagsByListValidator>(); services.AddScoped, TagHandler>(); services.AddValidatorsFromAssemblyContaining(); services.AddScoped, CreateTagValidator>(); services.AddScoped, TagHandler>(); services.AddValidatorsFromAssemblyContaining(); services.AddScoped, UpdateTagValidator>(); services.AddScoped, TagHandler>(); services.AddValidatorsFromAssemblyContaining(); services.AddScoped, ChangeTagStatusValidator>(); services.AddScoped, TagHandler>(); services.AddScoped, TagHandler>(); services.AddScoped, TagHandler>(); #endregion #region Product Services services.AddScoped(); services.AddScoped, ProductHandler>(); services.AddScoped, ProductHandler>(); services.AddValidatorsFromAssemblyContaining(); services.AddScoped, GetAllProductsByListValidator>(); services.AddScoped, ProductHandler>(); services.AddValidatorsFromAssemblyContaining(); services.AddScoped, CreateProductValidator>(); services.AddScoped, ProductHandler>(); services.AddValidatorsFromAssemblyContaining(); services.AddScoped, UpdateProductValidator>(); services.AddScoped, ProductHandler>(); services.AddValidatorsFromAssemblyContaining(); services.AddScoped, ChangeProductStatusValidator>(); services.AddScoped, ProductHandler>(); #endregion return services; } } }