public virtual async Task Intercept_connection_with_multiple_interceptors(bool async) { var interceptor1 = new TransactionInterceptor(); var interceptor2 = new WrappingTransactionInterceptor(); var interceptor3 = new TransactionInterceptor(); var interceptor4 = new WrappingTransactionInterceptor(); using (var context = CreateContext( new IInterceptor[] { new NoOpTransactionInterceptor(), interceptor1, interceptor2 }, new IInterceptor[] { interceptor3, interceptor4, new NoOpTransactionInterceptor() })) { using (var contextTransaction = async ? await context.Database.BeginTransactionAsync() : context.Database.BeginTransaction()) { Assert.IsType <WrappedDbTransaction>(contextTransaction.GetDbTransaction()); AssertBeginTransaction(context, interceptor1, async); AssertBeginTransaction(context, interceptor2, async); AssertBeginTransaction(context, interceptor3, async); AssertBeginTransaction(context, interceptor4, async); } } }
public void ShouldAbortTransactionIfExceptionThrown() { Thrower instance = new Thrower() { ShouldThrowException = true }; TransactionStatus status = TransactionStatus.InDoubt; instance.Completed = (obj, e) => { status = e.Transaction.TransactionInformation.Status; }; IInvocation invocation = Substitute.For<IInvocation>(); invocation.Request.Target.Returns(instance); MethodInfo method = typeof(Thrower).GetMethod("DoSomething"); invocation.Request.Method.Returns(method); invocation.When(i => i.Proceed()).Do(i => instance.DoSomething()); try { TransactionInterceptor interceptor = new TransactionInterceptor(); interceptor.Intercept(invocation); Assert.Fail("An exception should have been thrown."); } catch (Exception) { Assert.AreEqual(TransactionStatus.Aborted, status, "The transaction was not abandoned."); } }
public void ShouldCommitTransactionIfExceptionNotThrown() { Thrower instance = new Thrower() { ShouldThrowException = false }; TransactionStatus status = TransactionStatus.InDoubt; instance.Completed = (obj, e) => { status = e.Transaction.TransactionInformation.Status; }; IInvocation invocation = Substitute.For <IInvocation>(); invocation.Request.Target.Returns(instance); MethodInfo method = typeof(Thrower).GetMethod("DoSomething"); invocation.Request.Method.Returns(method); invocation.When(i => i.Proceed()).Do(i => instance.DoSomething()); TransactionInterceptor interceptor = new TransactionInterceptor(); interceptor.Intercept(invocation); Assert.AreEqual(TransactionStatus.Committed, status, "The transaction was not committed."); }
public void ShouldAbortTransactionIfExceptionThrown() { Thrower instance = new Thrower() { ShouldThrowException = true }; TransactionStatus status = TransactionStatus.InDoubt; instance.Completed = (obj, e) => { status = e.Transaction.TransactionInformation.Status; }; IInvocation invocation = Substitute.For <IInvocation>(); invocation.Request.Target.Returns(instance); MethodInfo method = typeof(Thrower).GetMethod("DoSomething"); invocation.Request.Method.Returns(method); invocation.When(i => i.Proceed()).Do(i => instance.DoSomething()); try { TransactionInterceptor interceptor = new TransactionInterceptor(); interceptor.Intercept(invocation); Assert.Fail("An exception should have been thrown."); } catch (Exception) { Assert.AreEqual(TransactionStatus.Aborted, status, "The transaction was not abandoned."); } }
private static void AssertError( DbContext context, TransactionInterceptor interceptor, bool async) { Assert.Equal(async, interceptor.AsyncCalled); Assert.NotEqual(async, interceptor.SyncCalled); Assert.NotEqual(interceptor.AsyncCalled, interceptor.SyncCalled); Assert.True(interceptor.FailedCalled); Assert.Same(context, interceptor.Context); }
public void CheckAutoTransaction_DecoratedIsNotTransactional_NotWrappedInATransaction() { var interceptor = new TransactionInterceptor(); var invocation = Substitute.For <IInvocation>(); invocation.InvocationTarget.Returns(new SqlComponent()); invocation.MethodInvocationTarget.Returns(typeof(SqlComponent).GetMethod("ExecuteNonQuery")); invocation.Method.Returns(typeof(SqlComponent).GetMethod("ExecuteNonQuery")); invocation.When(e => e.Proceed()).Do(e => Nothing()); interceptor.Intercept(invocation); Assert.IsFalse(interceptor.WasTransactional); }
public void CheckAutoTransaction_NotDecoratedIsTransactional_WrappedInATransaction() { var interceptor = new TransactionInterceptor(); var invocation = Substitute.For <IInvocation>(); invocation.InvocationTarget.Returns(new AdministrationComponent()); invocation.MethodInvocationTarget.Returns(typeof(AdministrationComponent).GetMethod("GetAllDrugs")); invocation.Method.Returns(typeof(AdministrationComponent).GetMethod("GetAllDrugs")); invocation.When(e => e.Proceed()).Do(e => Nothing()); interceptor.Intercept(invocation); Assert.IsTrue(interceptor.WasTransactional); }
protected void Application_Start() { GlobalConfiguration.Configure(WebApiConfig.Register); ObjectFactory.Configure(x => { x.For <IReportAuthentication>().Use <ReportAuthentication>(); x.For <IBusinessAuthentication>().Use <BusinessAuthentication>(); x.For <IAuthenticationRepository>().Use <AuthenticationRepository>(); var proxyGenerator = new ProxyGenerator(); var transactionInterceptor = new TransactionInterceptor(); x.For <IBusinessAuthentication>().EnrichAllWith(instance => proxyGenerator.CreateInterfaceProxyWithTarget(instance, transactionInterceptor)); }); ObjectFactory.Configure(x => { x.For <IBusinessRegistration>().Use <BusinessRegistration>(); x.For <IRegistrationRepository>().Use <RegistrationRepository>(); var proxyGenerator = new ProxyGenerator(); var transactionInterceptor = new TransactionInterceptor(); x.For <IBusinessRegistration>().EnrichAllWith(instance => proxyGenerator.CreateInterfaceProxyWithTarget(instance, transactionInterceptor)); }); #region Enquiry ObjectFactory.Configure(x => { x.For <IEnquiryReport>().Use <EnquiryReport>(); x.For <IEnquiryRepository>().Use <EnquiryRepository>(); var proxyGenerator = new ProxyGenerator(); var transactionInterceptor = new TransactionInterceptor(); x.For <IEnquiryReport>().EnrichAllWith(instance => proxyGenerator.CreateInterfaceProxyWithTarget(instance, transactionInterceptor)); }); #endregion #region CDSS ObjectFactory.Configure(x => { x.For <IBusinessPOImporting>().Use <BusinessPOImporting>(); x.For <IPoImportingRepository>().Use <PoImportingRepository>(); var proxyGenerator = new ProxyGenerator(); var transactionInterceptor = new TransactionInterceptor(); x.For <IBusinessPOImporting>().EnrichAllWith(instance => proxyGenerator.CreateInterfaceProxyWithTarget(instance, transactionInterceptor)); }); #endregion }
public void ShouldNotCreateTransactionIfMissingAttribute() { NoAttribute instance = new NoAttribute(); IInvocation invocation = Substitute.For<IInvocation>(); invocation.Request.Target.Returns(instance); MethodInfo method = typeof(NoAttribute).GetMethod("DoSomething"); invocation.Request.Method.Returns(method); invocation.When(i => i.Proceed()).Do(i => instance.DoSomething()); TransactionInterceptor interceptor = new TransactionInterceptor(); interceptor.Intercept(invocation); Assert.IsFalse(instance.HadTransaction, "There should be no active transaction."); }
private static void AssertBeginTransaction(DbContext context, TransactionInterceptor interceptor, bool async) { Assert.Equal(async, interceptor.AsyncCalled); Assert.NotEqual(async, interceptor.SyncCalled); Assert.NotEqual(interceptor.AsyncCalled, interceptor.SyncCalled); Assert.True(interceptor.StartingCalled); Assert.True(interceptor.StartedCalled); Assert.False(interceptor.UsedCalled); Assert.False(interceptor.CommittingCalled); Assert.False(interceptor.CommittedCalled); Assert.False(interceptor.RollingBackCalled); Assert.False(interceptor.RolledBackCalled); Assert.False(interceptor.FailedCalled); Assert.Same(context, interceptor.Context); }
public void RollbackRules() { TransactionInterceptor txInterceptor = ctx.GetObject("txRollbackAdvice") as TransactionInterceptor; Assert.IsNotNull(txInterceptor); MethodInfo getDescriptionMethod = typeof(ITestObject).GetMethod("GetDescription"); MethodInfo exceptionalMethod = typeof(ITestObject).GetMethod("Exceptional"); ITransactionAttributeSource txAttrSource = txInterceptor.TransactionAttributeSource; ITransactionAttribute txAttr = txAttrSource.ReturnTransactionAttribute(getDescriptionMethod, typeof(ITestObject)); Assert.IsTrue(txAttr.RollbackOn(new System.ApplicationException())); txAttr = txAttrSource.ReturnTransactionAttribute(exceptionalMethod, typeof(ITestObject)); Assert.IsFalse(txAttr.RollbackOn(new System.ArithmeticException())); }
public void ShouldNotCreateTransactionIfMissingAttribute() { NoAttribute instance = new NoAttribute(); IInvocation invocation = Substitute.For <IInvocation>(); invocation.Request.Target.Returns(instance); MethodInfo method = typeof(NoAttribute).GetMethod("DoSomething"); invocation.Request.Method.Returns(method); invocation.When(i => i.Proceed()).Do(i => instance.DoSomething()); TransactionInterceptor interceptor = new TransactionInterceptor(); interceptor.Intercept(invocation); Assert.IsFalse(instance.HadTransaction, "There should be no active transaction."); }
public async Task RunBeforeAnyTests() { Setup(); await ClearExisting(); await AddTestData(); var serviceCollection = new ServiceCollection() .AddSingleton <DataStore>(DataStore) .AddSingleton <InterceptService>(); serviceCollection.AddEnhancedServiceProvider(provider => { var interceptor = new TransactionInterceptor(DataStore); provider.AddInterceptor <TransactionRequiredAttribute>(interceptor.Interceptor); }); serviceProvider = serviceCollection.BuildServiceProvider(); }
public void ShouldCommitTransactionIfExceptionNotThrown() { Thrower instance = new Thrower() { ShouldThrowException = false }; TransactionStatus status = TransactionStatus.InDoubt; instance.Completed = (obj, e) => { status = e.Transaction.TransactionInformation.Status; }; IInvocation invocation = Substitute.For<IInvocation>(); invocation.Request.Target.Returns(instance); MethodInfo method = typeof(Thrower).GetMethod("DoSomething"); invocation.Request.Method.Returns(method); invocation.When(i => i.Proceed()).Do(i => instance.DoSomething()); TransactionInterceptor interceptor = new TransactionInterceptor(); interceptor.Intercept(invocation); Assert.AreEqual(TransactionStatus.Committed, status, "The transaction was not committed."); }
static InterfaceFactoryConfig() { ObjectFactory.Configure(x => { x.For <IBusinessRegistration>().Use <BusinessRegistration>(); x.For <IRegistrationRepository>().Use <RegistrationRepository>(); var proxyGenerator = new ProxyGenerator(); var transactionInterceptor = new TransactionInterceptor(); x.For <IBusinessRegistration>().EnrichAllWith(instance => proxyGenerator.CreateInterfaceProxyWithTarget(instance, transactionInterceptor)); }); ObjectFactory.Configure(x => { x.For <IReportAuthentication>().Use <ReportAuthentication>(); x.For <IAuthenticationRepository>().Use <AuthenticationRepository>(); var proxyGenerator = new ProxyGenerator(); var transactionInterceptor = new TransactionInterceptor(); x.For <IBusinessRegistration>().EnrichAllWith(instance => proxyGenerator.CreateInterfaceProxyWithTarget(instance, transactionInterceptor)); }); ObjectFactory.Configure(x => x.For <IInterfaceFactory>().Use <ControllerFactory>()); ////x.For<IInterfaceFactory>().Use<GatewayFactory>(); }
public virtual async Task Intercept_connection_with_multiple_interceptors(bool async) { var interceptor1 = new TransactionInterceptor(); var interceptor2 = new WrappingTransactionInterceptor(); var interceptor3 = new TransactionInterceptor(); var interceptor4 = new WrappingTransactionInterceptor(); using var context = CreateContext( new IInterceptor[] { new NoOpTransactionInterceptor(), interceptor1, interceptor2 }, new IInterceptor[] { interceptor3, interceptor4, new NoOpTransactionInterceptor() }); using var listener = Fixture.SubscribeToDiagnosticListener(context.ContextId); using var contextTransaction = async ? await context.Database.BeginTransactionAsync() : context.Database.BeginTransaction(); Assert.IsType <WrappedDbTransaction>(contextTransaction.GetDbTransaction()); AssertBeginTransaction(context, interceptor1, async); AssertBeginTransaction(context, interceptor2, async); AssertBeginTransaction(context, interceptor3, async); AssertBeginTransaction(context, interceptor4, async); AssertBeginTransactionEvents(listener); }
protected void Application_Start() { GlobalConfiguration.Configure(WebApiConfig.Register); ObjectFactory.Configure(x => { x.For <IReportAuthentication>().Use <ReportAuthentication>(); x.For <IBusinessAuthentication>().Use <BusinessAuthentication>(); x.For <IAuthenticationRepository>().Use <AuthenticationRepository>(); var proxyGenerator = new ProxyGenerator(); var transactionInterceptor = new TransactionInterceptor(); x.For <IBusinessAuthentication>().EnrichAllWith(instance => proxyGenerator.CreateInterfaceProxyWithTarget(instance, transactionInterceptor)); }); ObjectFactory.Configure(x => { x.For <IBusinessRegistration>().Use <BusinessRegistration>(); x.For <IRegistrationRepository>().Use <RegistrationRepository>(); var proxyGenerator = new ProxyGenerator(); var transactionInterceptor = new TransactionInterceptor(); x.For <IBusinessRegistration>().EnrichAllWith(instance => proxyGenerator.CreateInterfaceProxyWithTarget(instance, transactionInterceptor)); }); ObjectFactory.Configure(x => { x.For <IReportVendorMaster>().Use <ReportVendorMaster>(); x.For <IBusinessVendorMaster>().Use <BusinessVendorMaster>(); x.For <IVendorMasterRepository>().Use <VendorMasterRepository>(); var proxyGenerator = new ProxyGenerator(); var transactionInterceptor = new TransactionInterceptor(); x.For <IBusinessVendorMaster>().EnrichAllWith(instance => proxyGenerator.CreateInterfaceProxyWithTarget(instance, transactionInterceptor)); }); ObjectFactory.Configure(x => { x.For <IBusinessCompanyMaster>().Use <BusinessCompanyMaster>(); x.For <IReportCompanyMaster>().Use <ReportCompanyMaster>(); x.For <ICompanyMastersRepository>().Use <CompanyMastersRepository>(); var proxyGenerator = new ProxyGenerator(); var transactionInterceptor = new TransactionInterceptor(); x.For <IBusinessCompanyMaster>().EnrichAllWith(instance => proxyGenerator.CreateInterfaceProxyWithTarget(instance, transactionInterceptor)); }); ObjectFactory.Configure(x => { x.For <IReportCategoryMaster>().Use <ReportCategoryMaster>(); x.For <ICategoryMasterRepository>().Use <CategoryMasterRepository>(); var proxyGenerator = new ProxyGenerator(); var transactionInterceptor = new TransactionInterceptor(); x.For <IReportCategoryMaster>().EnrichAllWith(instance => proxyGenerator.CreateInterfaceProxyWithTarget(instance, transactionInterceptor)); }); ObjectFactory.Configure(x => { x.For <IReportMaterialMaster>().Use <ReportMaterialMaster>(); x.For <IBusinessMaterialMaster>().Use <BusinessMaterialMaster>(); x.For <IMaterialMasterRepository>().Use <MaterialMasterRepository>(); var proxyGenerator = new ProxyGenerator(); var transactionInterceptor = new TransactionInterceptor(); x.For <IBusinessMaterialMaster>().EnrichAllWith(instance => proxyGenerator.CreateInterfaceProxyWithTarget(instance, transactionInterceptor)); }); ObjectFactory.Configure(x => { x.For <IReportOperationMaster>().Use <ReportOperationMaster>(); x.For <IBusinessOperationMaster>().Use <BusinessOperationMaster>(); x.For <IOperationMasterRepository>().Use <OperationMasterRepository>(); var proxyGenerator = new ProxyGenerator(); var transactionInterceptor = new TransactionInterceptor(); x.For <IBusinessOperationMaster>().EnrichAllWith(instance => proxyGenerator.CreateInterfaceProxyWithTarget(instance, transactionInterceptor)); }); ObjectFactory.Configure(x => { x.For <IReportToolsMaster>().Use <ReportToolsMaster>(); x.For <IBusinessToolsMaster>().Use <BusinessToolsMaster>(); x.For <IToolsMasterRepository>().Use <ToolsMasterRepository>(); var proxyGenerator = new ProxyGenerator(); var transactionInterceptor = new TransactionInterceptor(); x.For <IBusinessToolsMaster>().EnrichAllWith(instance => proxyGenerator.CreateInterfaceProxyWithTarget(instance, transactionInterceptor)); }); ObjectFactory.Configure(x => { x.For <IReportJigsMaster>().Use <ReportJigsMaster>(); x.For <IBusinessJigsMaster>().Use <BusinessJigsMaster>(); x.For <IJigsMasterRepository>().Use <JigsMasterRepository>(); var proxyGenerator = new ProxyGenerator(); var transactionInterceptor = new TransactionInterceptor(); x.For <IBusinessJigsMaster>().EnrichAllWith(instance => proxyGenerator.CreateInterfaceProxyWithTarget(instance, transactionInterceptor)); }); ObjectFactory.Configure(x => { x.For <IReportParameterMaster>().Use <ReportParameterMaster>(); x.For <IBusinessParameterMaster>().Use <BusinessParameterMaster>(); x.For <IParameterMasterRepository>().Use <ParameterMasterRepository>(); var proxyGenerator = new ProxyGenerator(); var transactionInterceptor = new TransactionInterceptor(); x.For <IBusinessParameterMaster>().EnrichAllWith(instance => proxyGenerator.CreateInterfaceProxyWithTarget(instance, transactionInterceptor)); }); ObjectFactory.Configure(x => { x.For <IReportSubcontractProcessMaster>().Use <ReportSubcontractProcessMaster>(); x.For <IBusinessSubcontractProcessMaster>().Use <BusinessSubcontractProcessMaster>(); x.For <ISubcontractProcessMasterRepository>().Use <SubcontractProcessMasterRepository>(); var proxyGenerator = new ProxyGenerator(); var transactionInterceptor = new TransactionInterceptor(); x.For <IBusinessSubcontractProcessMaster>().EnrichAllWith(instance => proxyGenerator.CreateInterfaceProxyWithTarget(instance, transactionInterceptor)); }); ObjectFactory.Configure(x => { x.For <IReportSymbolMaster>().Use <ReportSymbolMaster>(); x.For <IBusinessSymbolMaster>().Use <BusinessSymbolMaster>(); x.For <ISymbolMasterRepository>().Use <SymbolMasterRepository>(); var proxyGenerator = new ProxyGenerator(); var transactionInterceptor = new TransactionInterceptor(); x.For <IBusinessSymbolMaster>().EnrichAllWith(instance => proxyGenerator.CreateInterfaceProxyWithTarget(instance, transactionInterceptor)); }); ObjectFactory.Configure(x => { x.For <IReportPartMaster>().Use <ReportPartMaster>(); x.For <IBusinessPartMaster>().Use <BusinessPartMaster>(); x.For <IPartMasterRepository>().Use <PartMasterRepository>(); var proxyGenerator = new ProxyGenerator(); var transactionInterceptor = new TransactionInterceptor(); x.For <IBusinessPartMaster>().EnrichAllWith(instance => proxyGenerator.CreateInterfaceProxyWithTarget(instance, transactionInterceptor)); }); ObjectFactory.Configure(x => { x.For <IReportMachineMaster>().Use <ReportMachineMaster>(); x.For <IBusinessMachineMaster>().Use <BusinessMachineMaster>(); x.For <IMachineMasterRepository>().Use <MachineMasterRepository>(); var proxyGenerator = new ProxyGenerator(); var transactionInterceptor = new TransactionInterceptor(); x.For <IBusinessMachineMaster>().EnrichAllWith(instance => proxyGenerator.CreateInterfaceProxyWithTarget(instance, transactionInterceptor)); }); ObjectFactory.Configure(x => { x.For <IReportInstrumentMaster>().Use <ReportInstrumentMaster>(); x.For <IBusinessInstrumentMaster>().Use <BusinessInstrumentMaster>(); x.For <IInstrumentMasterRepository>().Use <InstrumentMasterRepository>(); var proxyGenerator = new ProxyGenerator(); var transactionInterceptor = new TransactionInterceptor(); x.For <IBusinessInstrumentMaster>().EnrichAllWith(instance => proxyGenerator.CreateInterfaceProxyWithTarget(instance, transactionInterceptor)); }); #region Sales ObjectFactory.Configure(x => { x.For <IReportWorkOrder>().Use <ReportWorkOrder>(); x.For <IBusinessWorkOrder>().Use <BusinessWorkOrder>(); x.For <IWorkOrderRepository>().Use <WorkOrderRepository>(); var proxyGenerator = new ProxyGenerator(); var transactionInterceptor = new TransactionInterceptor(); x.For <IReportWorkOrder>().EnrichAllWith(instance => proxyGenerator.CreateInterfaceProxyWithTarget(instance, transactionInterceptor)); }); #endregion #region Despatch ObjectFactory.Configure(x => { x.For <IReportDeliveryChallan>().Use <ReportDeliveryChallan>(); x.For <IBusinessDeliveryChallan>().Use <BusinessDeliveryChallan>(); x.For <IDeliveryChallanRepository>().Use <DeliveryChallanRepository>(); var proxyGenerator = new ProxyGenerator(); var transactionInterceptor = new TransactionInterceptor(); x.For <IReportDeliveryChallan>().EnrichAllWith(instance => proxyGenerator.CreateInterfaceProxyWithTarget(instance, transactionInterceptor)); }); ObjectFactory.Configure(x => { x.For <IReportInvoice>().Use <ReportInvoice>(); x.For <IBusinessInvoice>().Use <BusinessInvoice>(); x.For <IInvoiceRepository>().Use <InvoiceRepository>(); var proxyGenerator = new ProxyGenerator(); var transactionInterceptor = new TransactionInterceptor(); //x.For<IReportInvoice>().EnrichAllWith(instance => proxyGenerator.CreateInterfaceProxyWithTarget(instance, transactionInterceptor)); x.For <IBusinessInvoice>().EnrichAllWith(instance => proxyGenerator.CreateInterfaceProxyWithTarget(instance, transactionInterceptor)); }); #endregion #region Prodution ObjectFactory.Configure(x => { x.For <IReportProcessCard>().Use <ReportProcessCard>(); x.For <IBusinessProcessCard>().Use <BusinessProcessCard>(); x.For <IProcessCardRepository>().Use <ProcessCardRepository>(); var proxyGenerator = new ProxyGenerator(); var transactionInterceptor = new TransactionInterceptor(); x.For <IReportProcessCard>().EnrichAllWith(instance => proxyGenerator.CreateInterfaceProxyWithTarget(instance, transactionInterceptor)); }); ObjectFactory.Configure(x => { x.For <IReportJobCardGeneration>().Use <ReportJobCardGeneration>(); x.For <IBusinessJobCardGeneration>().Use <BusinessJobCardGeneration>(); x.For <IJobCardGenerationRepository>().Use <JobCardGenerationRepository>(); var proxyGenerator = new ProxyGenerator(); var transactionInterceptor = new TransactionInterceptor(); //x.For<IReportJobCardGeneration>().EnrichAllWith(instance => proxyGenerator.CreateInterfaceProxyWithTarget(instance, transactionInterceptor)); x.For <IBusinessJobCardGeneration>().EnrichAllWith(instance => proxyGenerator.CreateInterfaceProxyWithTarget(instance, transactionInterceptor)); }); ObjectFactory.Configure(x => { x.For <IReportEmployeeMaster>().Use <ReportEmployeeMaster>(); x.For <IEmployeeMasterRepository>().Use <EmployeeMasterRepository>(); var proxyGenerator = new ProxyGenerator(); var transactionInterceptor = new TransactionInterceptor(); x.For <IReportEmployeeMaster>().EnrichAllWith(instance => proxyGenerator.CreateInterfaceProxyWithTarget(instance, transactionInterceptor)); }); #endregion #region Sub Contract ObjectFactory.Configure(x => { x.For <IReportSubContract>().Use <ReportSubContract>(); x.For <IBusinessSubContract>().Use <BusinessSubContract>(); x.For <ISubContractRepository>().Use <SubContractRepository>(); var proxyGenerator = new ProxyGenerator(); var transactionInterceptor = new TransactionInterceptor(); x.For <IReportSubContract>().EnrichAllWith(instance => proxyGenerator.CreateInterfaceProxyWithTarget(instance, transactionInterceptor)); }); #endregion #region Enquiry ObjectFactory.Configure(x => { x.For <IEnquiryReport>().Use <EnquiryReport>(); x.For <IEnquiryRepository>().Use <EnquiryRepository>(); var proxyGenerator = new ProxyGenerator(); var transactionInterceptor = new TransactionInterceptor(); x.For <IEnquiryReport>().EnrichAllWith(instance => proxyGenerator.CreateInterfaceProxyWithTarget(instance, transactionInterceptor)); }); #endregion #region Stores ObjectFactory.Configure(x => { x.For <IReportGatePass>().Use <ReportGatePass>(); x.For <IBusinessGatePass>().Use <BusinessGatePass>(); x.For <IGatePassRepository>().Use <GatePassRepository>(); var proxyGenerator = new ProxyGenerator(); var transactionInterceptor = new TransactionInterceptor(); x.For <IBusinessGatePass>().EnrichAllWith(instance => proxyGenerator.CreateInterfaceProxyWithTarget(instance, transactionInterceptor)); }); #endregion }
public AboutController(TransactionInterceptor transactionInterceptor) { _transactionInterceptor = transactionInterceptor; }