Skip to content

Instantly share code, notes, and snippets.

@dvhthomas
Created October 16, 2009 16:46
Show Gist options
  • Save dvhthomas/211889 to your computer and use it in GitHub Desktop.
Save dvhthomas/211889 to your computer and use it in GitHub Desktop.
/// <summary>
/// All of the dependencies for the core Cityworks processing
/// </summary>
public class CityworksCoreRegistry : Registry
{
public CityworksCoreRegistry()
{
ForRequestedType<ILogFactory>().TheDefaultIsConcreteType<NLogFactory>();
ISessionFactory cityworks = NHibernateHelper.SessionFactory(Resources.CityworksDatasource);
ISessionFactory wcs = NHibernateHelper.SessionFactory(Resources.WCSDatasource);
ForRequestedType<ISessionFactory>()
.AddInstances(x =>
{
x.IsThis(cityworks).WithName(Resources.CityworksDatasource);
x.IsThis(wcs).WithName(Resources.WCSDatasource);
})
.TheDefault.Is.TheInstanceNamed(Resources.CityworksDatasource);
ForRequestedType<IUnitOfWork>()
.AddInstances(x =>
{
x.OfConcreteType<UnitOfWork>()
.CtorDependency<ISessionFactory>("sessionFactory")
.Is(z => z.TheInstanceNamed(Resources.CityworksDatasource))
.WithName(Resources.CityworksDatasource);
x.OfConcreteType<UnitOfWork>()
.CtorDependency<ISessionFactory>("sessionFactory")
.Is(z => z.TheInstanceNamed(Resources.WCSDatasource))
.WithName(Resources.WCSDatasource);
})
.TheDefault.Is.TheInstanceNamed(Resources.CityworksDatasource);
ForRequestedType<ISpatialQuery>()
.TheDefaultIsConcreteType<ClientPlugin>();
ForRequestedType<IMessageProcessor>()
.TheDefaultIsConcreteType<CoreMessageProcessor>();
ForRequestedType<SystemConfiguration>()
.TheDefaultIsConcreteType<SystemConfiguration>();
ForRequestedType<IUserRoleRepository>()
.TheDefaultIsConcreteType<UserRoleRepository>();
ForRequestedType<ISettingRepository>()
.TheDefault.Is.OfConcreteType<ApplicationSettingRepository>()
.CtorDependency<IUnitOfWork>("unitOfWork")
.Is(u => u.TheInstanceNamed(Resources.WCSDatasource));
InstanceOf<IWorkorderRepository>().Is.OfConcreteType<WorkorderRepository>()
.CtorDependency<IUnitOfWork>("unitOfWork")
.Is(x => x.TheInstanceNamed(Resources.CityworksDatasource));
InstanceOf<IMessageRepository>().Is.OfConcreteType<MessageRepository>()
.CtorDependency<IUnitOfWork>("unitOfWork")
.Is(x => x.TheInstanceNamed(Resources.WCSDatasource));
InstanceOf<ISettingRepository>().Is.OfConcreteType<ApplicationSettingRepository>()
.CtorDependency<IUnitOfWork>("unitOfWork")
.Is(x => x.TheInstanceNamed(Resources.WCSDatasource));
InstanceOf<ICityworksRepository>().Is.OfConcreteType<CityworksMSSQL>()
.CtorDependency<IUnitOfWork>("unitOfWork")
.Is(x => x.TheInstanceNamed(Resources.CityworksDatasource));
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment