using Autofac;
using e_suite.API.Common;
using e_suite.DependencyInjection;
using e_suite.Service.SigmaImporter.GmgProfiles;
using e_suite.Service.SigmaImporter.Helpers;
using e_suite.Service.SigmaImporter.PrintSpecifications;
using e_suite.Service.SigmaImporter.Repository;

namespace e_suite.Service.SigmaImporter;

public class IocRegistration : IIocRegistration
{
    public void RegisterTypes(ContainerBuilder builder)
    {
        builder.RegisterType<SigmaImporter>().As<ISigmaImporter>().InstancePerLifetimeScope();
        builder.RegisterType<SigmaFileBrowserRepository>().As<ISigmaFileBrowserRepository>().InstancePerLifetimeScope();
        builder.RegisterType<SigmaFtpuRepository>().As<ISigmaFtpuRepository>().InstancePerLifetimeScope();
        builder.RegisterType<GmgProfileImporter>().As<IGmgProfileImporter>().InstancePerLifetimeScope();
        builder.RegisterType<PrintSpecificationImporter>().As<IPrintSpecificationImporter>().InstancePerLifetimeScope();
        builder.RegisterType<ImportGlossaryHelper>().As<IImportGlossaryHelper>().InstancePerLifetimeScope();
        builder.RegisterType<ImportCustomerFieldHelper>().As<IImportCustomFieldHelper>().InstancePerLifetimeScope();
        builder.RegisterType<SigmaRepository>().As<ISigmaRepository>().InstancePerLifetimeScope();
        builder.RegisterType<SigmaAirlockRepository>().As<ISigmaAirlockRepository>().InstancePerLifetimeScope();
        
    }
}