Anapher/Strive

View on GitHub
src/Services/ConferenceManagement/Strive.Infrastructure/InfrastructureModule.cs

Summary

Maintainability
A
0 mins
Test Coverage
using Autofac;
using Strive.Core.Interfaces.Services;
using Strive.Core.Services.ConferenceManagement.Gateways;
using Strive.Infrastructure.Auth;
using Strive.Infrastructure.Data;
using Strive.Infrastructure.Data.Repos;
using Strive.Infrastructure.KeyValue;
using Strive.Infrastructure.Scheduler;
using Strive.Infrastructure.Sfu;
using Strive.Infrastructure.Utilities;

namespace Strive.Infrastructure
{
    public class InfrastructureModule : Module
    {
        protected override void Load(ContainerBuilder builder)
        {
            builder.RegisterAssemblyTypes(ThisAssembly).AssignableTo<IKeyValueRepo>().AsImplementedInterfaces()
                .SingleInstance();

            builder.RegisterAssemblyTypes(ThisAssembly).AsClosedTypesOf(typeof(MongoRepo<>)).AsSelf()
                .AsImplementedInterfaces().InstancePerDependency();

            builder.RegisterType<CachedConferenceRepo>().As<IConferenceRepo>().InstancePerLifetimeScope();
            builder.RegisterType<ScheduledMediator>().As<IScheduledMediator>();
            builder.RegisterType<JwtSfuAuthTokenFactory>().AsImplementedInterfaces().SingleInstance();
            builder.RegisterType<TokenFactory>().AsImplementedInterfaces().SingleInstance();
            builder.RegisterType<CanvasActionUtils>().AsImplementedInterfaces().SingleInstance();
        }
    }
}