Taylohtio/GeneralApi/GeneralApi.IntegrationUtility/Infrastructure/IoCConfiguration.cs

62 lines
2.4 KiB
C#

using GeneralApi.IntegrationUtility.Common;
using log4net;
using log4net.Core;
using Microsoft.Practices.ServiceLocation;
using StructureMap;
using StructureMap.ServiceLocatorAdapter;
using Taloyhtio.GeneralApi.Common.DTO;
using Taloyhtio.GeneralApi.IntegrationUtility.Repositories;
using Taloyhtio.GeneralApi.IntegrationUtility.Repositories.Impl;
using Taloyhtio.GeneralApi.IntegrationUtility.Services;
using Taloyhtio.GeneralApi.IntegrationUtility.Services.Impl;
namespace GeneralApi.IntegrationUtility.Infrastructure
{
public class IoCConfiguration
{
public static void Configure()
{
ObjectFactory.Initialize(
x =>
{
x.ForRequestedType<ILog>()
.AsSingletons()
.TheDefault.Is.ConstructedBy(ctx => LogManager.GetLogger(Constants.Logger.LOGGER_NAME));
x.ForRequestedType<IFileRepository>()
.TheDefaultIsConcreteType<FileRepository>();
x.ForRequestedType<ISettingsProvider>()
.TheDefaultIsConcreteType<SettingsProvider>();
x.ForRequestedType<IFileParser<Condo>>()
.TheDefaultIsConcreteType<FileParser<Condo>>();
x.ForRequestedType<IFileParser<BoardMember>>()
.TheDefaultIsConcreteType<FileParser<BoardMember>>();
x.ForRequestedType<IFileProcessor<Condo>>()
.TheDefaultIsConcreteType<FileProcessor<Condo>>();
x.ForRequestedType<IFileProcessor<BoardMember>>()
.TheDefaultIsConcreteType<FileProcessor<BoardMember>>();
x.ForRequestedType<ISender<Condo>>()
.TheDefaultIsConcreteType<CondoSender>();
x.ForRequestedType<ISender<BoardMember>>()
.TheDefaultIsConcreteType<BoardMemberSender>();
x.ForRequestedType<IFileFilter>()
.TheDefaultIsConcreteType<FileFilter>();
x.ForRequestedType<IFileSorter>()
.TheDefaultIsConcreteType<FileSorter>();
});
var locator = new StructureMapServiceLocator(ObjectFactory.Container);
ServiceLocator.SetLocatorProvider(() => locator);
}
}
}