/// <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); } }