/// <summary> /// Initializes a new instance of the <see cref="SystemWorkflowManager" /> class. /// </summary> /// <param name="workflowService">Gateway into the workflow subsystem.</param> /// <param name="formServiceGateway">Gateway into the forms subsystem.</param> /// <param name="dataAccess">The data access.</param> public SystemWorkflowManager(IWorkflowService workflowService, IFormServiceGateway formServiceGateway, IDataAccess dataAccess) { this.workflowService = workflowService; this.formServiceGateway = formServiceGateway; this.dataAccess = dataAccess; this.productCache = new Dictionary<string, ProductVersionList>(); }
/// <summary> /// Sets up the dependencies. /// </summary> private static void SetupDependencies() { IConfigurationSource config = ConfigurationSourceFactory.Create(); Logger.SetLogWriter(new LogWriterFactory(config).Create()); ExceptionPolicy.SetExceptionManager(new ExceptionPolicyFactory(config).CreateManager()); JsonConvert.DefaultSettings = () => new JsonSerializerSettings { Formatting = Formatting.None, Converters = new JsonConverter[] { new JsonKnownTypeConverter() } }; try { var container = new UnityContainer().LoadConfiguration(); container.AddNewExtension<SecurityDependencyContainer>(); container.AddNewExtension<WorflowDependencyContainer>(); var configuration = container.Resolve<EventHandlerConfiguration>(); dataAccess = container.Resolve<IDataAccess>(); formServiceGateway = container.Resolve<IFormServiceGateway>(); workbenchServiceGateway = container.Resolve<IWorkbenchServiceGateway>(); var securityServiceGateway = container.Resolve<ISecurityService>(); entitlementProvider = container.Resolve<IApplicationEntitlementProvider>(); workflowService = container.Resolve<IWorkflowService>(); evaluatorFactory = new TruthConditionEvaluatorFactory(); session = securityServiceGateway.CreateSession(configuration.EventHandlerServiceUser, configuration.EventHandlerServicePassword); SystemSettings settings = workbenchServiceGateway.GetSystemSettings(session.Token); container.RegisterInstance(settings); events = dataAccess.GetNewEvents(); container.RegisterInstance(workbenchServiceGateway.GetRoleList(session.Token)); container.RegisterInstance<Func<UserSearchCriteria, UserList>>(usc => workbenchServiceGateway.GetUserList(session.Token, usc)); container.RegisterInstance(workbenchServiceGateway.GetServiceEndpointList(session.Token, true)); responseHandlers = container.ResolveAll<IEventActionResponseHandler>(); } catch (Exception e) { bool rethrow = ExceptionPolicy.HandleException(e, "Default"); if (rethrow) { throw; } Console.WriteLine(ExceptionMessages.Generic); Environment.Exit(1); } }
/// <summary> /// Initializes a new instance of the <see cref="ApiManager" /> class. /// </summary> /// <param name="securityService">A gateway into the Security subsystem.</param> /// <param name="formGateway">A gateway into the Forms subsystem.</param> /// <param name="workbenchManager">An instance that manages Workbench operations.</param> /// <param name="migrationDataImporter">A data importer.</param> /// <param name="migrationDataValidator">An import data validator.</param> /// <param name="apiDataAccess">The API data access layer.</param> /// <param name="pdfWriterSettings">A PDF writer settings object.</param> /// <param name="pdfFilenameFormat">The PDF filename format.</param> /// <param name="stringFormatter">A string formatter.</param> public ApiManager( ISecurityService securityService, IFormServiceGateway formGateway, WorkbenchManager workbenchManager, MigrationDataImporter migrationDataImporter, MigrationDataValidator migrationDataValidator, IDataAccess apiDataAccess, PdfWriterSettings pdfWriterSettings, string pdfFilenameFormat, StringFormatter stringFormatter) { this.securityService = securityService; this.formGateway = formGateway; this.workbenchManager = workbenchManager; this.migrationDataImporter = migrationDataImporter; this.migrationDataValidator = migrationDataValidator; this.apiDataAccess = apiDataAccess; this.pdfWriterSettings = pdfWriterSettings; this.pdfFilenameFormat = pdfFilenameFormat; this.stringFormatter = stringFormatter; }