public void JobPositionInPeriodTest() { Period period; JobPosition jobPosition; using (var session = PMSAdminSession.GetSession()) using (session.BeginTransaction()) { jobPosition = session.Query <JobPosition>().FirstOrDefault(); session.Transaction.Commit(); } using (var session = PMSSession.GetSession()) using (session.BeginTransaction()) { period = session.Query <Period>().FirstOrDefault(); var unitInPeriod = session.Query <Unit>().FirstOrDefault(); var jobInPeriod = session.Query <Job>().FirstOrDefault(); var sharedJobPosition = new SharedJobPosition(new SharedJobPositionId(jobPosition.Id.Id), jobPosition.Name, jobPosition.DictionaryName); var jobPositionInPeriod = new MITD.PMS.Domain.Model.JobPositions.JobPosition(period, sharedJobPosition, null, jobInPeriod, unitInPeriod); session.Save(jobPositionInPeriod); session.Transaction.Commit(); } }
private static void RegisterDataAccess(WindsorContainer container) { container.Register(Component.For <IConnectionProvider>() .UsingFactoryMethod(c => new ConnectionProvider(() => { var s = System.Configuration.ConfigurationManager. ConnectionStrings["PMSDBConnection"].ConnectionString; var res = new SqlConnection(s); res.Open(); return(res); })).LifestyleBoundTo <IService>()); DataAccessConfigHelper.ConfigureContainer <CustomFieldRepository>(container, () => { var session = PMSAdminSession.GetSession(container.Resolve <IConnectionProvider>().GetConnection()); return(session); }, "PMSAdmin"); DataAccessConfigHelper.ConfigureContainer <PeriodRepository>(container, () => { var session = PMSSession.GetSession(container.Resolve <IConnectionProvider>().GetConnection()); return(session); }, "PMS"); DataAccessConfigHelper.ConfigureContainer <RuleRepository>(container, () => { var session = RuleEngineSession.GetSession(container.Resolve <IConnectionProvider>().GetConnection()); return(session); }, "RuleEngine"); }
public static jobPms.SharedJob AddJob(string jobName, string jobDicName) { using (var session = PMSAdminSession.GetSession()) using (session.BeginTransaction()) { long jobSeqId = GetJobSequence(session); var job = new JobPmsAdmin.Job(new JobPmsAdmin.JobId(jobSeqId), jobName, jobDicName); session.Save(job); session.Transaction.Commit(); return(new jobPms.SharedJob(new jobPms.SharedJobId(job.Id.Id), job.Name, job.DictionaryName)); } }
private SharedUnit GetSharedUnit() { pmsAdminModel.Units.Unit unit; using (var session = PMSAdminSession.GetSession()) using (session.BeginTransaction()) { var unitRep = new UnitRepository(new NHUnitOfWork(session)); var id = unitRep.GetNextId(); unit = new PMSAdmin.Domain.Model.Units.Unit(id, Guid.NewGuid().ToString(), Guid.NewGuid().ToString()); session.Save(unit); session.Transaction.Commit(); } return(new SharedUnit(new SharedUnitId(unit.Id.Id), unit.Name, unit.DictionaryName)); }
private SharedJob GetSharedJob() { pmsAdminModel.Jobs.Job job; using (var session = PMSAdminSession.GetSession()) using (session.BeginTransaction()) { var jobRep = new PMSAdmin.Persistence.NH.JobRepository(new NHUnitOfWork(session)); var id = jobRep.GetNextId(); job = new PMSAdmin.Domain.Model.Jobs.Job(id, Guid.NewGuid().ToString(), Guid.NewGuid().ToString()); session.Save(job); session.Transaction.Commit(); } return(new SharedJob(new SharedJobId(job.Id.Id), job.Name, job.DictionaryName)); }
private SharedJobIndex getSharedJobIndex() { pmsAdminModel.JobIndices.JobIndex jobIndex; using (var session = PMSAdminSession.GetSession()) using (session.BeginTransaction()) { var jobIndexRep = new PMSAdmin.Persistence.NH.JobIndexRepository(new NHUnitOfWork(session)); var id = jobIndexRep.GetNextId(); jobIndex = new PMSAdmin.Domain.Model.JobIndices.JobIndex(id, jobIndexRep.GetJobIndexCategory(new PMSAdmin.Domain.Model.JobIndices.AbstractJobIndexId(1)), Guid.NewGuid().ToString(), Guid.NewGuid().ToString()); session.Save(jobIndex); session.Transaction.Commit(); } return(new SharedJobIndex(new SharedJobIndexId(jobIndex.Id.Id), jobIndex.Name, jobIndex.DictionaryName)); }
public void AssignJobPositionToEmployee() { using (var session = PMSSession.GetSession()) using (session.BeginTransaction()) { var period = session.Query <Period>().First(); var employee = new Employee(Guid.NewGuid().ToString(), period, Guid.NewGuid().ToString(), Guid.NewGuid().ToString()); SharedEmployeeCustomField sharedEmployeeCustomField; JobCustomField sharedJobCustomField; using (var adminSession = PMSAdminSession.GetSession()) using (adminSession.BeginTransaction()) { var employeeCustomFielType = adminSession.Query <CustomFieldType>().First(); sharedEmployeeCustomField = new SharedEmployeeCustomField(new SharedEmployeeCustomFieldId(employeeCustomFielType.Id.Id), Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 1, 1); //sharedJobCustomField = // new JobCustomField(new JobCustomFieldId(employeeCustomFielType.Id.Id), // Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 1, 1); } employee.AssignCustomFieldAndValue(sharedEmployeeCustomField, "30"); var jobposition = session.Query <JobPosition>().FirstOrDefault(); //employee.AssignJobPosition(jobposition, DateTime.Now.Date, DateTime.Now.Date, // new Dictionary<JobCustomField, string> {{sharedJobCustomField, "10"}}); session.Save(employee); session.Transaction.Commit(); using (session.BeginTransaction()) { var newEmployee = session.Query <Employee>() .FirstOrDefault( e => e.Id.EmployeeNo == employee.Id.EmployeeNo && e.Id.PeriodId == employee.Id.PeriodId); //newEmployee.AssignJobPositions(null, ); session.Update(newEmployee); session.Transaction.Commit(); } } }
public void AddUpdateEmployeeTest() { using (var session = PMSSession.GetSession()) using (session.BeginTransaction()) { var period = session.Query <Period>().First(); var employee = new Employee(Guid.NewGuid().ToString(), period, Guid.NewGuid().ToString(), Guid.NewGuid().ToString()); SharedEmployeeCustomField sharedEmployeeCustomField; using (var adminSession = PMSAdminSession.GetSession()) using (adminSession.BeginTransaction()) { var employeeCustomFielType = adminSession.Query <CustomFieldType>().First(); sharedEmployeeCustomField = new SharedEmployeeCustomField(new SharedEmployeeCustomFieldId(employeeCustomFielType.Id.Id), Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 1, 1); } employee.AssignCustomFieldAndValue(sharedEmployeeCustomField, "30"); session.Save(employee); session.Transaction.Commit(); using (session.BeginTransaction()) { var rep = new EmployeeRepository(new NHUnitOfWork(session)); var fs = new ListFetchStrategy <Employee>(Enums.FetchInUnitOfWorkOption.NoTracking); fs.WithPaging(10, 1); fs.OrderBy(c => c.Id); rep.Find(e => e.Id.PeriodId == new PeriodId(1), fs); var newEmployee = session.Query <Employee>() .FirstOrDefault( e => e.Id.EmployeeNo == employee.Id.EmployeeNo && e.Id.PeriodId == employee.Id.PeriodId); newEmployee.Update("ehsan", "mohammadi"); session.Update(newEmployee); session.Transaction.Commit(); } } }
public void JobIndexPointTest() { PMSAdmin.Domain.Model.JobIndices.JobIndex jobIndex; PMSAdmin.Domain.Model.JobPositions.JobPosition jobPosition; PMSAdmin.Domain.Model.Jobs.Job job; PMSAdmin.Domain.Model.Units.Unit unit; RuleEngineBasedPolicy policy; long x = 190; using (var tr = new TransactionScope()) using (var adminSession = PMSAdminSession.GetSession()) { policy = new RuleEngineBasedPolicy(new PolicyId(x), Guid.NewGuid().ToString(), Guid.NewGuid().ToString()); adminSession.Save(policy); var jobIndexCategory = new PMSAdmin.Domain.Model.JobIndices.JobIndexCategory( new PMSAdmin.Domain.Model.JobIndices.AbstractJobIndexId(x + 1), null, Guid.NewGuid().ToString(), Guid.NewGuid().ToString()); adminSession.Save(jobIndexCategory); jobIndex = new PMSAdmin.Domain.Model.JobIndices.JobIndex( new PMSAdmin.Domain.Model.JobIndices.AbstractJobIndexId(x + 2), jobIndexCategory, Guid.NewGuid().ToString(), Guid.NewGuid().ToString()); adminSession.Save(jobIndex); unit = new PMSAdmin.Domain.Model.Units.Unit(new PMSAdmin.Domain.Model.Units.UnitId(x + 3), Guid.NewGuid().ToString(), Guid.NewGuid().ToString()); adminSession.Save(unit); job = new PMSAdmin.Domain.Model.Jobs.Job(new PMSAdmin.Domain.Model.Jobs.JobId(x + 4), Guid.NewGuid().ToString(), Guid.NewGuid().ToString()); adminSession.Save(job); jobPosition = new JobPosition(new PMSAdmin.Domain.Model.JobPositions.JobPositionId(x + 5) , Guid.NewGuid().ToString(), Guid.NewGuid().ToString()); adminSession.Save(jobPosition); adminSession.Flush(); tr.Complete(); } long y = x - 4; Employee emp; using (var tr = new TransactionScope()) using (var session = PMSSession.GetSession()) { var policy2 = session.Get <MITD.PMS.Domain.Model.Policies.RuleEngineBasedPolicy>( new MITD.PMS.Domain.Model.Policies.PolicyId(policy.Id.Id)); var period = new Period(new PeriodId(y), Guid.NewGuid().ToString(), DateTime.Now, DateTime.Now, 91); //period.Activate(null); session.Save(period); emp = new Employee(Guid.NewGuid().ToString(), period, Guid.NewGuid().ToString(), Guid.NewGuid().ToString()); session.Save(emp); var calc = new Calculation(new CalculationId(y), period, policy2, Guid.NewGuid().ToString(), DateTime.Now, "1"); session.Save(calc); var jobIndexGroup = new JobIndexGroup(new AbstractJobIndexId(y), period, null, Guid.NewGuid().ToString(), Guid.NewGuid().ToString()); session.Save(jobIndexGroup); var ji = new JobIndex(new AbstractJobIndexId(y + 1), period, new SharedJobIndex( new SharedJobIndexId(jobIndex.Id.Id), jobIndex.Name, jobIndex.DictionaryName), jobIndexGroup, true); session.Save(ji); var j = new Job(period, new SharedJob(new SharedJobId(job.Id.Id), job.Name, job.DictionaryName)); session.Save(j); var u = new Unit(period, new SharedUnit(new SharedUnitId(unit.Id.Id), unit.Name, unit.DictionaryName), null); session.Save(u); var jp = new Domain.Model.JobPositions.JobPosition(period, new SharedJobPosition( new SharedJobPositionId(jobPosition.Id.Id), jobPosition.Name, jobPosition.DictionaryName), null, j, u); session.Save(jp); EmployeePoint p = new JobIndexPoint(new CalculationPointId(y), period, emp, calc, jp, ji, "hh", 10); session.Save(p); p = new SummaryEmployeePoint(new CalculationPointId(y + 1), period, emp, calc, "ff", 10); session.Save(p); session.Flush(); tr.Complete(); } using (var tr = new TransactionScope()) using (var session = PMSSession.GetSession()) { var lst = session.Query <EmployeePoint>().ToList(); session.Flush(); tr.Complete(); } }
public void JobIndexInPeriodTest() { long nextAbsIndexId; long jobIndexId; using (var session = PMSSession.GetSession()) using (session.BeginTransaction()) { var period = session.Query <Period>().FirstOrDefault(); nextAbsIndexId = session.CreateSQLQuery("Select next value for dbo.Periods_AbstractJobIndexSeq").UniqueResult <long>(); var rootJobIndexCat = new JobIndexGroup(new AbstractJobIndexId(nextAbsIndexId), period, null, Guid.NewGuid().ToString(), Guid.NewGuid().ToString()); session.Save((AbstractJobIndex)rootJobIndexCat); SharedJobIndex sharedJobIndex; SharedJobIndexCustomField sharedJobIndexCustomField; using (var sessionAdmin = PMSAdminSession.GetSession()) { var pmsAdminJobIndex = sessionAdmin.Query <MITD.PMSAdmin.Domain.Model.JobIndices.JobIndex>().FirstOrDefault(); sharedJobIndex = new SharedJobIndex(new SharedJobIndexId(pmsAdminJobIndex.Id.Id), pmsAdminJobIndex.Name, pmsAdminJobIndex.DictionaryName); var customFld = sessionAdmin.Query <CustomFieldType>().SingleOrDefault(); sharedJobIndexCustomField = new SharedJobIndexCustomField(new SharedJobIndexCustomFieldId(customFld.Id.Id), customFld.Name, customFld.DictionaryName, 1, 100); } nextAbsIndexId = session.CreateSQLQuery("Select next value for dbo.Periods_AbstractJobIndexSeq").UniqueResult <long>(); var jobIndex = new JobIndex(new AbstractJobIndexId(nextAbsIndexId), period, sharedJobIndex, rootJobIndexCat, true); jobIndex.UpdateCustomFields(new Dictionary <SharedJobIndexCustomField, string>() { { sharedJobIndexCustomField, "asdasdasdasd" } }); session.Save(jobIndex); session.Transaction.Commit(); } using (var session = PMSSession.GetSession()) using (session.BeginTransaction()) { var jobIndex = session.Query <JobIndex>().SingleOrDefault(j => j.Id == new AbstractJobIndexId(nextAbsIndexId)); // var rootJobIndexCat = session.Query<JobIndexCategory>().SingleOrDefault(p => p.Id == new AbstractJobIndexId(nextAbsIndexId)); // nextAbsIndexId = session.CreateSQLQuery("Select next value for dbo.AbstractJobIndexSeq").UniqueResult<long>(); // var jobIndexCat = new JobIndexCategory(new AbstractJobIndexId(nextAbsIndexId), rootJobIndexCat, Guid.NewGuid().ToString(), Guid.NewGuid().ToString()); // session.Save((AbstractJobIndex)jobIndexCat); // jobIndexId = session.CreateSQLQuery("Select next value for dbo.AbstractJobIndexSeq").UniqueResult<long>(); // var jobIndex = new JobIndex(new AbstractJobIndexId(jobIndexId), jobIndexCat, Guid.NewGuid().ToString(), Guid.NewGuid().ToString()); // session.Save((AbstractJobIndex)jobIndex); // session.Transaction.Commit(); } }
public void CalculationTest() { MITD.PMSAdmin.Domain.Model.Policies.PolicyId policyId; var empLst = string.Empty; PMSAdmin.Domain.Model.JobIndices.JobIndex sharedji; using (var transaction = new TransactionScope()) using (var puow = new NHUnitOfWork(PMSAdminSession.GetSession())) using (var reuow = new NHUnitOfWork(RuleEngineSession.GetSession())) { var ruleRep = new RuleRepository(reuow); var rfRep = new RuleFunctionRepository(reuow); var reConfigRep = new REConfigeRepository(reuow); var rebps = new RuleBasedPolicyEngineService(new LocatorProvider("PMSDb"), publisher); var policyRep = new MITD.PMSAdmin.Persistence.NH.PolicyRepository(puow); var rule = new Rule(new RuleId(ruleRep.GetNextId()), Guid.NewGuid().ToString(), @" RuleExecutionUtil.Res.Add( new RuleResult{Value = data.Data}); ", RuleType.PerCalculation, 1); ruleRep.Add(rule); var policy = new MITD.PMSAdmin.Domain.Model.Policies.RuleEngineBasedPolicy( policyRep.GetNextId(), Guid.NewGuid().ToString(), Guid.NewGuid().ToString()); policyId = policy.Id; policyRep.Add(policy); policy.AssignRule(rule); var jirep = new PMSAdmin.Persistence.NH.JobIndexRepository(puow); var ai = new PMSAdmin.Domain.Model.JobIndices.JobIndexCategory( jirep.GetNextId(), null, Guid.NewGuid().ToString(), Guid.NewGuid().ToString()); jirep.Add(ai); sharedji = new PMSAdmin.Domain.Model.JobIndices.JobIndex( jirep.GetNextId(), ai, Guid.NewGuid().ToString(), Guid.NewGuid().ToString()); jirep.Add(sharedji); reuow.Commit(); puow.Commit(); transaction.Complete(); } Calculation calc; var puows = new UnitOfWorkScope(new NHUnitOfWorkFactory(() => PMSAdminSession.GetSession())); var uows = new UnitOfWorkScope(new NHUnitOfWorkFactory(() => { var res = PMSSession.GetSession(); res.SetBatchSize(100); return(res); })); Period period; using (var transaction = new TransactionScope()) using (var puow = puows.CurrentUnitOfWork as NHUnitOfWork) using (var uow = uows.CurrentUnitOfWork as NHUnitOfWork) { var periodRep = new PeriodRepository(uow); period = new Period(new PeriodId(periodRep.GetNextId()), Guid.NewGuid().ToString(), DateTime.Now, DateTime.Now, 91); periodRep.Add(period); var sjiService = new PMS.ACL.PMSAdmin.PMSAdminService(null, null, null, null, new PMSAdmin.Application.JobIndexService(new PMSAdmin.Persistence.NH.JobIndexRepository(puow), new PMSAdmin.Persistence.NH.CustomFieldRepository(puow)) , new PMSAdmin.Application.UnitIndexService(new PMSAdmin.Persistence.NH.UnitIndexRepository(uows), new PMSAdmin.Persistence.NH.CustomFieldRepository(uows) ) ); var sji = sjiService.GetSharedJobIndex(new PMS.Domain.Model.JobIndices.SharedJobIndexId(sharedji.Id.Id)); var jiRep = new PMS.Persistence.NH.JobIndexRepository(uow); var jic = new PMS.Domain.Model.JobIndices.JobIndexGroup( jiRep.GetNextId(), period, null, Guid.NewGuid().ToString(), Guid.NewGuid().ToString()); jiRep.Add(jic); var ji = new PMS.Domain.Model.JobIndices.JobIndex( jiRep.GetNextId(), period, sji, jic, true); jiRep.Add(ji); uow.Commit(); transaction.Complete(); } for (int j = 0; j < 10; j++) { using (var transaction = new TransactionScope()) using (var uow = uows.CurrentUnitOfWork as NHUnitOfWork) { var empRep = new EmployeeRepository(uow); for (int i = 0; i < 500; i++) { var emp = new Employee(Guid.NewGuid().ToString(), period, Guid.NewGuid().ToString(), Guid.NewGuid().ToString()); empLst += emp.Id.EmployeeNo + ";"; empRep.Add(emp); } empLst = empLst.Remove(empLst.Length - 1); uow.Commit(); transaction.Complete(); } } using (var transaction = new TransactionScope()) using (var uow = uows.CurrentUnitOfWork as NHUnitOfWork) { var rebps = new RuleBasedPolicyEngineService(new LocatorProvider("PMSDb"), publisher); var calcRep = new CalculationRepository(uow); var policyRep = new MITD.PMS.Persistence.NH.PolicyRepository(uow, new PolicyConfigurator(rebps)); var policy = policyRep.GetById(new PolicyId(policyId.Id)); calc = new Calculation(calcRep.GetNextId(), period, policy, Guid.NewGuid().ToString(), DateTime.Now, empLst); calcRep.Add(calc); uow.Commit(); transaction.Complete(); } //var calculator = new JobIndexPointCalculator(publisher); //using (var transaction = new TransactionScope()) //using (var uow = new NHUnitOfWork(PMSSession.GetSession())) //{ // var calcRep = new CalculationRepository(uow); // calc = calcRep.GetById(calc.Id); // calc.Run(calculator); // uow.Commit(); // transaction.Complete(); //} //var t = Task.Factory.StartNew(() => // { // Thread.Sleep(1000); // using (var transaction = new TransactionScope()) // using (var uow = new NHUnitOfWork(PMSSession.GetSession())) // { // var calcRep = new CalculationRepository(uow); // calc = calcRep.GetById(calc.Id); // calc.Stop(calculator); // uow.Commit(); // transaction.Complete(); // } // }); //t.Wait(); }
public static void ConfigeLocator() { var container = new WindsorContainer(); container.Kernel.ComponentModelBuilder.RemoveContributor( container.Kernel.ComponentModelBuilder.Contributors.OfType <PropertiesDependenciesModelInspector>().Single()); container.Register( Component.For <IFacadeService>().Interceptors(InterceptorReference.ForType <Interception>()).Last, Component.For <Interception>()); RegisterDataAccess(container); container.Register( Classes.FromAssemblyContaining <CalculationMapper>() .BasedOn <IMapper>() .WithService.FromInterface() .LifestyleBoundToNearest <IService>(), Classes.FromAssemblyContaining <CalculationServiceFacade>() .BasedOn <IFacadeService>() .WithService.FromInterface() .LifestyleBoundTo <ApiController>(), Classes.FromThisAssembly().BasedOn <ApiController>().LifestyleTransient(), Classes.FromThisAssembly().BasedOn <Controller>().LifestyleTransient() ); //container.Register(Component.For<IFacadeService>() // .Interceptors(InterceptorReference.ForType<Interception>()).Anywhere, // Component.For<Interception>() // ); container.Register( Component.For <ILoggerService>().ImplementedBy <DbLoggerService>().Named("DB").LifeStyle.BoundTo <IService>(), Component.For <ILoggerService>().ImplementedBy <FileLoggerService>().Named("File").LifeStyle.BoundTo <IService>(), Component.For <ILoggerService>().ImplementedBy <WindowsEventsLoggerService>().Named("WindowsEvent").LifeStyle.BoundTo <IService>() ); container.Register ( Classes.FromAssemblyContaining <MITD.PMS.Application.JobService>() .BasedOn <IService>().If(c => c.Namespace == typeof(MITD.PMS.Application.JobService).Namespace && c.Name != typeof(MITD.PMS.Application.CalculatorEngine).Name && c.Name != typeof(MITD.PMS.Application.JobIndexPointCalculator).Name && c.Name != typeof(MITD.PMS.Application.CalculationDataProvider).Name ) .WithService.FromInterface() .LifestyleBoundToNearest <IService>(), Classes.FromAssemblyContaining <FunctionService>() .BasedOn <IService>().If(c => c.Namespace == typeof(FunctionService).Namespace) .WithService.FromInterface() .LifestyleBoundToNearest <IService>(), Classes.FromAssemblyContaining <MITD.PMS.Domain.Service.RuleBasedPolicyEngineService>() .BasedOn <IService>().OrBasedOn(typeof(IConfigurator)) .WithService.FromInterface() .LifestyleBoundToNearest <IService>(), Component.For <IRuleService>().ImplementedBy <RuleEngineService>() .LifestyleBoundToNearest <IService>(), Component.For <IServiceLocatorProvider>().ImplementedBy <LocatorProvider>() .DependsOn(new Hashtable { { "connectionName", "PMSDBConnection" } }) .LifeStyle.BoundTo <IService>(), Component.For <IEventPublisher>().ImplementedBy <EventPublisher>() .LifestyleBoundTo <IService>(), Component.For <ISecurityService>().ImplementedBy <SecurityService>() .LifestyleBoundToNearest <IService>(), Component.For <ISecurityCheckerService>().ImplementedBy <SecurityCheckerService>() .LifestyleBoundToNearest <IService>(), Component.For <ILogService>().ImplementedBy <LogService>() .LifestyleBoundToNearest <IService>(), Component.For <ILogManagerService>().ImplementedBy <LogManagerService>() .LifestyleBoundToNearest <IService>(), Component.For <ILoggerServiceFactory>().ImplementedBy <LoggerServiceFactory>() .LifestyleBoundToNearest <IService>() ); container.Register( Component.For <IInquiryJobIndexPointCreatorService>() .ImplementedBy <InquiryJobIndexPointCreatorService>() .LifeStyle.Transient); container.Register( Component.For <IPMSAdminService>().ImplementedBy <PMSAdminService>().LifestyleBoundTo <IService>()); container.Register( Component.For <IPMSSecurityService>().ImplementedBy <PMSSecurityService>().LifestyleBoundTo <IService>()); container.Register( Component.For <IJobPositionInquiryConfiguratorService>() .ImplementedBy <JobPositionInquiryConfiguratorService>() .LifestyleBoundTo <IService>()); container.Register( Component.For <IUnitInquiryConfiguratorService>() .ImplementedBy <UnitInquiryConfiguratorService>() .LifestyleBoundTo <IService>()); container.Register( Component.For <IJobIndexPointCalculatorProvider>() .ImplementedBy <JobIndexPointCalculatorProvider>() .LifeStyle.Singleton.IsDefault()); container.Register( Component.For <IInquiryConfiguratorService>() .ImplementedBy <InquiryConfiguratorService>() .LifeStyle.Singleton.IsDefault()); container.Register( Component.For <IPeriodBasicDataCopierService>() .ImplementedBy <PeriodBasicDataCopierService>() .LifeStyle.Singleton.IsDefault()); //container.Register( // Component.For<IEmployeePointCopierService>() // .ImplementedBy<EmployeePointCopierService>() // .LifestyleBoundToNearest<IService>()); container.Register( Component.For <ICalculatorEngine>().ImplementedBy <CalculatorEngine>() .LifeStyle.Transient); container.Register( Component.For <ISecurityServiceFacade>().ImplementedBy <SecurityServiceFacade>() .LifeStyle.Transient); container.Register( Component.For(typeof(IServiceLifeCycleManager <>)).ImplementedBy(typeof(ServiceLifeCycleManager <>)) .LifeStyle.Transient); //container.Register( // Component.For<IPeriodServiceFactory>().ImplementedBy<PeriodServiceFactory>() // .LifeStyle.Transient); container.Register( Component.For <ICalculationDataProvider>().ImplementedBy <CalculationDataProvider>() .LifeStyle.Transient); container.Register( Component.For <IJobIndexPointCalculator>().ImplementedBy <JobIndexPointCalculator>().LifeStyle.Transient); //container.Register( // Component.For<Castle.DynamicProxy.IInterceptor>().ImplementedBy<Interception>().LifestyleBoundTo<IService>()); container.Register( Component.For <IUserManagementService>().ImplementedBy <UserManagementService>().LifeStyle.Singleton); container.Register( Component.For <ICalculationEngineService>().ImplementedBy <CalculationEngineService>().LifestyleBoundTo <IService>()); container.Register( Component.For <IPeriodEngineService>().ImplementedBy <PeriodEngineService>().LifestyleBoundTo <IService>()); container.Register( Component.For <IFaultExceptionAdapter>().ImplementedBy <CalculationFaultExceptionAdapter>().LifeStyle.Singleton); container.Register( Component.For <AccessPermission>().LifeStyle.Singleton); container.Register( Component.For <IEmailManager>().ImplementedBy <EmailManager>().LifeStyle.Singleton); var locator = new WindsorServiceLocator(container); ServiceLocator.SetLocatorProvider(() => locator); //var accessPermissionSetup=new AccessPermissionSetup(); //accessPermissionSetup.Execute(ServiceLocator.Current.GetInstance<AccessPermission>(), // container.Kernel.GetAssignableHandlers(typeof (IFacadeService)).Count()); NHibernateInnerJoinSupport.Enable(); PMSAdminSession.GetSession(); PMSSession.GetSession(); PMSSecuritySession.GetSession(); RuleEngineSession.GetSession(); }
private static void configeLocator() { var container = new WindsorContainer(); container.AddFacility <WcfFacility>(); container.Kernel.ComponentModelBuilder.RemoveContributor( container.Kernel.ComponentModelBuilder.Contributors.OfType <PropertiesDependenciesModelInspector>() .Single()); RegisterDataAccess(container); container.Register( Component.For <ILoggerService>() .ImplementedBy <DbLoggerService>() .Named("DB") .LifeStyle.BoundTo <IService>(), Component.For <ILoggerService>() .ImplementedBy <FileLoggerService>() .Named("File") .LifeStyle.BoundTo <IService>(), Component.For <ILoggerService>() .ImplementedBy <WindowsEventsLoggerService>() .Named("WindowsEvent") .LifeStyle.BoundTo <IService>() ); container.Register ( Classes.FromAssemblyContaining <MITD.PMS.Application.JobService>() .BasedOn <IService>().If(c => c.Namespace == typeof(MITD.PMS.Application.JobService).Namespace && c.Name != typeof(MITD.PMS.Application.CalculatorEngine).Name && c.Name != typeof(MITD.PMS.Application.JobIndexPointCalculator).Name && c.Name != typeof(MITD.PMS.Application.CalculationDataProvider).Name ) .WithService.FromInterface() .LifestyleBoundToNearest <IService>(), Classes.FromAssemblyContaining <FunctionService>() .BasedOn <IService>().If(c => c.Namespace == typeof(FunctionService).Namespace) .WithService.FromInterface() .LifestyleBoundToNearest <IService>(), Classes.FromAssemblyContaining <MITD.PMS.Domain.Service.RuleBasedPolicyEngineService>() .BasedOn <IService>().OrBasedOn(typeof(IConfigurator)) .WithService.FromInterface() .LifestyleBoundToNearest <IService>(), Component.For <IRuleService>().ImplementedBy <RuleEngineService>() .LifestyleBoundToNearest <IService>(), Component.For <IServiceLocatorProvider>().ImplementedBy <LocatorProvider>() .DependsOn(new Hashtable { { "connectionName", "PMSDBConnection" } }) .LifeStyle.BoundTo <IService>() , Component.For <IEventPublisher>().ImplementedBy <EventPublisher>() .LifestyleBoundTo <IService>(), Component.For <ILogManagerService>().ImplementedBy <LogManagerService>() .LifestyleBoundToNearest <IService>(), Component.For <ILogService>().ImplementedBy <LogService>() .LifestyleBoundToNearest <IService>(), Component.For <ILoggerServiceFactory>().ImplementedBy <LoggerServiceFactory>() .LifestyleBoundToNearest <IService>() ); container.Register( Component.For <IInquiryJobIndexPointCreatorService>() .ImplementedBy <InquiryJobIndexPointCreatorService>() .LifeStyle.Transient); container.Register( Component.For <IPMSAdminService>().ImplementedBy <PMSAdminService>().LifestyleBoundTo <IService>()); container.Register( Component.For <IJobPositionInquiryConfiguratorService>() .ImplementedBy <JobPositionInquiryConfiguratorService>() .LifestyleBoundTo <IService>()); container.Register( Component.For <IUnitInquiryConfiguratorService>() .ImplementedBy <UnitInquiryConfiguratorService>() .LifestyleBoundTo <IService>()); container.Register( Component.For <IJobIndexPointCalculatorProvider>() .ImplementedBy <JobIndexPointCalculatorProvider>() .LifeStyle.Singleton.IsDefault()); container.Register( Component.For <IInquiryConfiguratorService>() .ImplementedBy <InquiryConfiguratorService>() .LifeStyle.Singleton.IsDefault()); container.Register( Component.For <IPeriodBasicDataCopierService>() .ImplementedBy <PeriodBasicDataCopierService>() .LifeStyle.Singleton.IsDefault()); //container.Register( // Component.For<IEmployeePointCopierService>() // .ImplementedBy<EmployeePointCopierService>() // .LifeStyle.Singleton.IsDefault()); container.Register( Component.For <ICalculatorEngine>().ImplementedBy <CalculatorEngine>() .LifeStyle.Transient); container.Register( Component.For(typeof(IServiceLifeCycleManager <>)).ImplementedBy(typeof(ServiceLifeCycleManager <>)) .LifeStyle.Transient); container.Register( Component.For <ICalculationDataProvider>().ImplementedBy <CalculationDataProvider>() .LifeStyle.Transient); container.Register( Component.For <IJobIndexPointCalculator>().ImplementedBy <JobIndexPointCalculator>().LifeStyle.Transient); container.Register( Component.For <IFaultExceptionAdapter>() .ImplementedBy <CalculationFaultExceptionAdapter>() .LifeStyle.Singleton); container.Register( Component.For <CalculationEngineService>().LifeStyle.PerWcfOperation()); var locator = new WindsorServiceLocator(container); ServiceLocator.SetLocatorProvider(() => locator); //NHibernateInnerJoinSupport.Enable(); PMSAdminSession.GetSession(); PMSSession.GetSession(); RuleEngineSession.GetSession(); registerExceptionConvertors(); }