Wednesday, October 14, 2015

Sample Setup for Strucutremap 3+



Download Strucutremap and related packages from nugget

Install-Package StructureMap -version 3.1.6.186Install-Package StructureMap.MVC4 -version 3.0.2.115
Install-Package StructureMap.Web -version 3.1.6.186


Goto App Start Strucutremap.mvc

Replace the iniliaslizer line with this to use the Default JCDC initializer
IContainer container = StructureMapIoC.Initialize<DefaultRegistry>();

Comment out IOC.Cs in Dependency resolver

 
Put the following in DefaultRegistry.cs



// --------------------------------------------------------------------------------------------------------------------

// <copyright file="DefaultRegistry.cs" company="Web Advanced">

// Copyright 2012 Web Advanced (www.webadvanced.com)

// Licensed under the Apache License, Version 2.0 (the "License");

// you may not use this file except in compliance with the License.

// You may obtain a copy of the License at

//

// http://www.apache.org/licenses/LICENSE-2.0
 
 




// Unless required by applicable law or agreed to in writing, software

// distributed under the License is distributed on an "AS IS" BASIS,

// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

// See the License for the specific language governing permissions and

// limitations under the License.

// </copyright>

// --------------------------------------------------------------------------------------------------------------------
 
 




 
 
 
using JCDCTools.AdoAccess.BusinessObjects;

using JCDCTools.AdoAccess.Interfaces;

using JCDCTools.Core.Logging.Interfaces;

using JCDCTools.Core.User.BusinessObjects;

using JCDCTools.Core.User.Interfaces;

using JCDCTools.Core.Utilities;

using JCDCTools.Core.Utilities.BusinessObjects;

using JCDCTools.Core.Utilities.Interfaces;

using JCDCTools.NhAccess.BusinessObjects;

using JCDCTools.NhAccess.Interfaces;

using JCDCTools.Users.Bll.Interfaces;

using JCDCTools.Users.DAL.Interfaces;

using JCDCTools.Utilities.Bll.Interfaces;

using StructureMap.Pipeline;

using StructureMap.Web.Pipeline;

using TacToolsTest.BLL.Interfaces;

using TacToolsTest.DAL.Interfaces;

using TacToolsTest.Jcdc.EO;

using TacToolsTest.Jcdc.Map;

using TacToolsTest.Reporting;

namespace TACAdmin3G.DependencyResolution




{
 
 
public class DefaultRegistry : JcdcRegistry




{
 
 
#region Constructors and Destructors

public DefaultRegistry()




{

Scan(
 
 
scan =>




{
 
 
scan.AssemblyContainingType< ICenterBLL >(); // TacToolsTest BLL

scan.AssemblyContainingType< IEpmsContractsBLL >(); // TacToolsTest BLL

scan.AssemblyContainingType< ICenterDAL >(); // TacToolsTest DAL

scan.AssemblyContainingType< IWebAccess >(); // JCDCTools.Core

scan.AssemblyContainingType< IUserMaintBLL >(); // JCDCTools.Users

scan.AssemblyContainingType< IAdoHelper >(); // JcdcTools.AdoAccess

scan.AssemblyContainingType< INHFactory >(); // JcdcToools.NhAccess

scan.AssemblyContainingType<IEncryption>(); // JcdcTools.Utilities

scan.AssemblyContainingType< ISSOAuthenticationUserDataBLL >();

scan.AssemblyContainingType< ISSOAuthenticationUserDataDAL >();

scan.AssemblyContainingType< IReportGenerator >();

//scan.AssemblyContainingType<IETA640DAL>();

scan.AssemblyContainingType<IAdoHelper>();

scan.AssemblyContainingType<INetLog>();

scan.LookForRegistries();

scan.WithDefaultConventions();




});
 
 
// For<IWebAccess>().LifecycleIs<HybridLifecycle>().Use<WebAccess>().Named( "default" );
 
 
For<IWebAccess>().LifecycleIs<HybridLifecycle>().Use<WinFormAccess>().Named( "default" );




 
 
 
For<INetLog>()

//.LifecycleIs<HybridLifecycle>()

.Use<JCDCTools.Core.Logging.BusinessObjects.NetLog>().Singleton();

For<IAdoHelper>().Use<SybaseHelper>()

.Named( "JCDC" )

.Ctor<string>( "ConnectStringName" ).Is( "SybaseDB" )

.Ctor<string>( "TimeOutStringName" ).Is( "SybaseDBCommandTimeout" );

For<IAdoHelper>().Use<SybaseHelper>()

.Named( "SPAMIS" )

.Ctor<string>( "ConnectStringName" ).Is( "SpamisDB" )

.Ctor<string>( "TimeOutStringName" ).Is( "SybaseDBCommandTimeout" );

For<IUser>()

.LifecycleIs<HybridLifecycle>()

.Use<UserByMock>();

For<INHFactory>().Use<NHFactory>()

.Named( "JCDC" )

.LifecycleIs<SingletonLifecycle>()

.Singleton();

For<INHSession>().Use<NHSession>()

.Named( "JCDC" )

.LifecycleIs<HybridLifecycle>()

.Ctor<string>( "ConnectStringName" ).Is( "XXXXX" )

.Ctor<string>( "TimeOutStringName" ).Is( "SybaseDBCommandTimeout" )

.Ctor<string>( "DBNameAndHasTran " ).Is( "XXXXX" );

For<INHFactory>().Use<NHFactory>()

.Named( "JCDC_HasTrans" )

.LifecycleIs<SingletonLifecycle>()

.Singleton();

For<INHSession>().Use<NHSession>()

.Named( "JCDC_HasTrans" )

.LifecycleIs<HybridLifecycle>()

.Ctor<string>( "ConnectStringName" ).Is( "XXX" )

.Ctor<string>( "TimeOutStringName" ).Is( "SybaseDBCommandTimeout" )

.Ctor<string>( "DBNameAndHasTran " ).Is( "XX" );

For<INHFactory>().Use<NHFactory>()

.Named( "JCDC_HasNoTrans" )

.LifecycleIs<SingletonLifecycle>()

.Singleton();

For<INHSession>().Use<NHSession>()

.Named( "JCDC_HasNoTrans" )

.LifecycleIs<HybridLifecycle>()

.Ctor<string>( "ConnectStringName" ).Is( "SybaseDB" )

.Ctor<string>( "TimeOutStringName" ).Is( "SybaseDBCommandTimeout" )

.Ctor<string>( "DBNameAndHasTran " ).Is( "JCDC_HasTrans" );




 

 
 
 
For<INHFactory>().Use<NHFactory>()

.Named( "SPAMIS_HasTrans" )

.LifecycleIs<SingletonLifecycle>()

.Singleton();

For<INHSession>().Use<NHSession>()

.Named( "SPAMIS_HasTrans" )

.LifecycleIs<HybridLifecycle>()

.Ctor<string>( "ConnectStringName" ).Is( "XXXXX" )

.Ctor<string>( "TimeOutStringName" ).Is( "SybaseDBCommandTimeout" )

.Ctor<string>( "DBNameAndHasTran " ).Is( "XXXXXX" );




}

 
 
 
/// <summary>

/// Initializes the objects after the Structuremap configure method has finished, this is because only then can you get objects from the container - EWB.

/// </summary>

/// <Programmer>Brown.ericw</Programmer>

/// <CreateDate>10/7/2015-11:46 AM</CreateDate>

public override void InitObjectsPostConfigure()




{
 
 
INHFactory jcdcFactory;

jcdcFactory = JcdcObjectFactory.GetNamedInstance<INHFactory>( "XXXXX" );

jcdcFactory.BuildFactoryByConfigFile<StudentEO, StudentEOMap>( "~/
XXXXX.config" );

jcdcFactory = JcdcObjectFactory.GetNamedInstance<INHFactory>( "
XXXXX_HasTrans" );

jcdcFactory.BuildFactoryByConfigFile<StudentEO, StudentEOMap>( "~/
XXXXX.config" );

jcdcFactory = JcdcObjectFactory.GetNamedInstance<INHFactory>( "
XXXXX_HasNoTrans" );

jcdcFactory.BuildFactoryByConfigFile<StudentEO, StudentEOMap>( "~/
XXXXXb.config" );




}
 
 
#endregion
 
 
}

}