Example #1
0
        public void CanUseContainerToResolveFactoryParameters()
        {
            bool factoryWasCalled = false;
            string connectionString = "Northwind";

            IUnityContainer container = new UnityContainer();

            container.AddNewExtension<StaticFactoryExtension>()
                .Configure<IStaticFactoryConfiguration>()
                    .RegisterFactory<MockDatabase>(c =>
                    {
                        Assert.AreSame(container, c);
                        factoryWasCalled = true;
                        string cs = c.Resolve<string>("connectionString");
                        return MockDatabase.Create(cs);
                    })
                    .Container
                .RegisterInstance<string>("connectionString", connectionString);

            MockDatabase db = container.Resolve<MockDatabase>();

            Assert.IsTrue(factoryWasCalled);
            Assert.IsNotNull(db);
            Assert.AreEqual(connectionString, db.ConnectionString);
        }
        public void CanSetUpAPolicyWithExternallyConfiguredRulesAndHandlers()
        {
            IUnityContainer container = new UnityContainer();
            container.AddNewExtension<Interception>();

            container
                .Configure<Interception>()
                    .AddPolicy("policy1")
                        .AddMatchingRule("rule1")
                        .AddCallHandler("handler1")
                        .AddCallHandler("handler2").Interception.Container
                .RegisterType<IMatchingRule, AlwaysMatchingRule>("rule1")
                .RegisterType<ICallHandler, GlobalCountCallHandler>(
                    "handler1",
                    new InjectionConstructor("handler1"))
                .RegisterType<ICallHandler, GlobalCountCallHandler>(
                    "handler2",
                    new InjectionConstructor("handler2"),
                    new InjectionProperty("Order", 10));

            GlobalCountCallHandler.Calls.Clear();

            container
                .Configure<Interception>()
                    .SetInterceptorFor<Wrappable>("wrappable", new VirtualMethodInterceptor());

            Wrappable wrappable1 = container.Resolve<Wrappable>("wrappable");
            wrappable1.Method2();

            Assert.AreEqual(1, GlobalCountCallHandler.Calls["handler1"]);
            Assert.AreEqual(1, GlobalCountCallHandler.Calls["handler2"]);
        }
        public static IUnityContainer GetContainer(FrontEndUnityContainerAvailable containerSelected)
        {
            IUnityContainer result = new UnityContainer();
            result.RegisterType(typeof(IAuthenticationProxy), typeof(AuthenticationProxy), new InjectionMember[0]);
            result.RegisterType(typeof(IMembershipProxy), typeof(MembershipProxy), new InjectionMember[0]);
            result.RegisterType(typeof(IRoleManagerProxy), typeof(RoleManagerProxy), new InjectionMember[0]);
            result.RegisterType(typeof(IRolesProxy), typeof(RolesProxy), new InjectionMember[0]);
            result.RegisterType(typeof(IProfileProxy), typeof(ProfileProxy), new InjectionMember[0]);
            result.RegisterType(typeof(ILoggingProxy), typeof(LoggingProxy), new InjectionMember[0]);
            result.RegisterType(typeof(ISyndicationProxy), typeof(SyndicationProxy), new InjectionMember[0]);
            result.RegisterType(typeof(IUserRequestContextFrontEnd), typeof(UserRequestContextFrontEnd), new InjectionMember[0]);
            result.RegisterType(typeof(IUserSessionModel), typeof(UserSessionAtHttpCookies), new InjectionMember[0]);

            switch (containerSelected)
            {
                case FrontEndUnityContainerAvailable.ProxiesToCustomHost:
                    result.RegisterType(typeof(IClientChannelInitializer<>), typeof(ClientChannelCustomHostInitializer<>), new InjectionMember[0]);
                    break;
                case FrontEndUnityContainerAvailable.ProxiesToAzure:
                    result.RegisterType(typeof(IClientChannelInitializer<>), typeof(ClientChannelAzureInternalRoleInitializer<>), new InjectionMember[0]);
                    break;
                default:
                    throw new Exception("IUnityContainer does not exist in the list of available providers");
            }

            return result;
        }
        public void StaticMethodsShouldNotBeInjected()
        {
            IUnityContainer container = new UnityContainer();

            GuineaPig pig = container.Resolve<GuineaPig>();
            Assert.IsFalse(GuineaPig.StaticMethodWasCalled);
        }
Example #5
0
        public override void Configure(Container container)
        {
            var unityContainer = new UnityContainer()
              .AddNewExtension<BuildTracking>()
              .AddNewExtension<LogCreation>();

            var userRepository = new InMemoryAuthRepository();

            this.Plugins.Add(new AuthFeature(() => new AuthUserSession(),
              new IAuthProvider[] { new BasicAuthProvider()}));

            this.Plugins.Add(new RegistrationFeature());

            unityContainer.RegisterInstance<ICacheClient>(new MemoryCacheClient());
            unityContainer.RegisterInstance<IUserAuthRepository>(userRepository);

            unityContainer.RegisterInstance<IDbConnectionFactory>(new OrmLiteConnectionFactory("~/Database/SmartDom.db".MapServerPath(),
                SqliteOrmLiteDialectProvider.Instance));

            unityContainer.RegisterType<IOrmWrapper, OrmWrapper>();
            unityContainer.RegisterType<IConfigurationRepository, AppConfigRepository>();
            unityContainer.RegisterType<MediaAdapterAbstractFactory<SerialPort>, SerialPortAdapterFactory>(new ContainerControlledLifetimeManager());
            unityContainer.RegisterType<ModbusMasterAbstractFactory<SerialPort>, RtuSerialModbusMasterFactory>(new ContainerControlledLifetimeManager());
            unityContainer.RegisterType<IGenericRepository<Device>, DeviceDbRepository>(new ContainerControlledLifetimeManager(),
                new InjectionMethod("Initialize"));
            unityContainer.RegisterType<IDeviceAccessLayer, SerialAccessLayer>(new ContainerControlledLifetimeManager());
            unityContainer.RegisterType<IMessageDecoder, MessageDecoder>();
            unityContainer.RegisterType<IDeviceManager, DeviceManager>();

            var unityAdapter = new UnityContainerAdapter(unityContainer);
            container.Adapter = unityAdapter;

            AddUser(userRepository);
        }
 public void CanAddExtensionWithNonDefaultConstructor()
 {
     IUnityContainer container = new UnityContainer();
     container.AddNewExtension<ContainerExtensionWithNonDefaultConstructor>();
     var extension = container.Configure(typeof (ContainerExtensionWithNonDefaultConstructor));
     Assert.IsNotNull(extension);
 }
 public void ContainerThrowsWhenConfiguringStaticMethodForInjection()
 {
     IUnityContainer container = new UnityContainer()
         .RegisterType<GuineaPig>(
                new InjectionMethod("ShouldntBeCalled"));
     Assert.Fail("Should not get here");
 }
Example #8
0
        public void DoesNotRegisterTypeWithNoLifetimeOrInjectionMembers()
        {
            var container = new UnityContainer();
            container.RegisterTypes(new[] { typeof(MockLogger) }, getName: t => "name");

            Assert.IsFalse(container.Registrations.Any(r => r.MappedToType == typeof(MockLogger)));
        }
        public void ContainerControlledLifetimeReturnsSameInstanceFromMultipleThreads()
        {
            IUnityContainer container = new UnityContainer()
                .AddExtension(new SpyExtension(new DelayStrategy(), UnityBuildStage.Lifetime))
                .RegisterType<object>(new ContainerControlledLifetimeManager());

            object result1 = null;
            object result2 = null;

            Thread thread1 = new Thread(delegate()
            {
                result1 = container.Resolve<object>();
            });

            Thread thread2 = new Thread(delegate()
            {
                result2 = container.Resolve<object>();
            });

            thread1.Start();
            thread2.Start();

            thread2.Join();
            thread1.Join();

            Assert.IsNotNull(result1);
            Assert.AreSame(result1, result2);
        }
        public void CanConfigureRemotingInterceptionOnInterface()
        {
            IUnityContainer container = new UnityContainer();
            container.AddNewExtension<Interception>();

            container.Configure<Interception>().SetInterceptorFor<Interface>(new TransparentProxyInterceptor());
        }
        public void When_getting_controller_attributes_then_builds_up_instance()
        {
            using (var container = new UnityContainer())
            {
                // Arrange
                var someInstance = new SomeClass();
                container.RegisterInstance<ISomeInterface>(someInstance);
                container.RegisterType<TestFilterAttribute>(new InjectionProperty("Some"));

                var context = new ControllerContext { Controller = new ControllerWithTypeAttribute() };
                var controllerDescriptor = new ReflectedControllerDescriptor(context.Controller.GetType());
                var action = context.Controller.GetType().GetMethod("MyActionMethod");
                var actionDescriptor = new ReflectedActionDescriptor(action, "MyActionMethod", controllerDescriptor);
                var provider = new UnityFilterAttributeFilterProvider(container);

                // Act
                Filter filter = provider.GetFilters(context, actionDescriptor).Single();

                // Assert
                TestFilterAttribute attrib = filter.Instance as TestFilterAttribute;
                Assert.IsNotNull(attrib);
                Assert.AreEqual(FilterScope.Controller, filter.Scope);
                Assert.AreEqual(1234, filter.Order);
                Assert.AreSame(someInstance, attrib.Some);
            }
        }
 protected virtual void Arrange()
 {
     Container =
         new UnityContainer()
             .RegisterType<BaseClass, DerivedClass>("derived",
                 new Interceptor<TransparentProxyInterceptor>(),
                 new InterceptionBehavior<PolicyInjectionBehavior>())
             .RegisterType<BaseClass, DerivedWithNoOverrideClass>("derived-nooverride",
                 new Interceptor<TransparentProxyInterceptor>(),
                 new InterceptionBehavior<PolicyInjectionBehavior>())
             .RegisterType<BaseClass>(
                 new Interceptor<TransparentProxyInterceptor>(),
                 new InterceptionBehavior<PolicyInjectionBehavior>())
             .AddNewExtension<Interception>()
             .Configure<Interception>()
                 .AddPolicy("base")
                     .AddMatchingRule(new TypeMatchingRule(typeof(BaseClass)))
                     .AddMatchingRule(new MemberNameMatchingRule("InterceptedMethod"))
                     .AddCallHandler(new AppendSuffixCallHandler { Suffix = "-basehandler", Order = 1 })
                 .Interception
                 .AddPolicy("derived-no-override")
                     .AddMatchingRule(new TypeMatchingRule(typeof(DerivedWithNoOverrideClass)))
                     .AddMatchingRule(new MemberNameMatchingRule("InterceptedMethod"))
                     .AddCallHandler(new AppendSuffixCallHandler { Suffix = "-derivednooverridehandler", Order = 2 })
                 .Interception
                 .AddPolicy("derived")
                     .AddMatchingRule(new TypeMatchingRule(typeof(DerivedClass)))
                     .AddMatchingRule(new MemberNameMatchingRule("InterceptedMethod"))
                     .AddCallHandler(new AppendSuffixCallHandler { Suffix = "-derivedhandler", Order = 3 })
                 .Interception
             .Container;
 }
        public void OptionalDependencyParametersAreInjectedWithNull()
        {
            IUnityContainer container = new UnityContainer();

            var result = container.Resolve<ObjectWithOptionalConstructorParameter>();
            Assert.IsNull(result.SomeInterface);
        }
        public void ContainerCallsExtensionsInitializeMethod()
        {
            MockContainerExtension extension = new MockContainerExtension();
            IUnityContainer container = new UnityContainer();
            container.AddExtension(extension);

            Assert.IsTrue(extension.InitializeWasCalled);
        }
Example #15
0
        public void CanResolveALazy()
        {
            var container = new UnityContainer()
                .RegisterType<ILogger, MockLogger>();

            var lazy = container.Resolve<Lazy<ILogger>>();
            Assert.IsNotNull(lazy);
        }
        public void CanConfigureDefaultRemotingInterceptionOnMBRO()
        {
            IUnityContainer container = new UnityContainer();
            container.AddNewExtension<Interception>();

            container.Configure<Interception>()
                .SetDefaultInterceptorFor<Wrappable>(new TransparentProxyInterceptor());
        }
        public void OptionalPropertiesGetNullWhenNotConfigured()
        {
            IUnityContainer container = new UnityContainer();

            var result = container.Resolve<ObjectWithOptionalProperty>();

            Assert.IsNull(result.SomeInterface);
        }
        public void CanConfigureContainerToCallDefaultConstructor()
        {
            IUnityContainer container = new UnityContainer()
                .RegisterType<GuineaPig>(new InjectionConstructor());

            GuineaPig pig = container.Resolve<GuineaPig>();
            Assert.IsTrue(pig.DefaultConstructorCalled);
        }
Example #19
0
        public void CanResolveAFunc()
        {
            var container = new UnityContainer()
                .RegisterType<ILogger, MockLogger>();

            var resolver = container.Resolve<Func<ILogger>>();
            Assert.IsNotNull(resolver);
        }
 public void UnityResolver_Resolves_Registered_DBContect_Test()
 {
     var container = new UnityContainer();
     container.RegisterInstance<IDataContext>(_context);
     var resolver = new UnityResolver(container);
     var instance = resolver.GetService(typeof(IDataContext));
     Assert.IsNotNull(instance);
 }
        public void ContainerReturnsEmptyArrayIfNoObjectsRegistered()
        {
            IUnityContainer container = new UnityContainer();
            List<object> results = new List<object>(container.ResolveAll<object>());

            Assert.IsNotNull(results);
            CollectionAssert.AreEqual(new object[0], results);
        }
 public void UnityResolver_Resolves_Registered_PersistenceService_Test()
 {
     var container = new UnityContainer();
     container.RegisterInstance<IPersistenceService>(new PersistenceService(_context));
     var resolver = new UnityResolver(container);
     var instance = resolver.GetService(typeof(IPersistenceService));
     Assert.IsNotNull(instance);
 }
 public void UnityResolver_Resolves_Registered_LogService_Test()
 {
     var container = new UnityContainer();
     container.RegisterInstance<ILogService>(new LogService("ConnectionString", new EmailService()));
     var resolver = new UnityResolver(container);
     var instance = resolver.GetService(typeof(ILogService));
     Assert.IsNotNull(instance);
 }
 public void UnityResolver_Resolves_Registered_Utilities_Test()
 {
     var container = new UnityContainer();
     container.RegisterInstance<IUtilities>(new Utilities(new PersistenceService(_context),new LogService("ConnectionString", new EmailService())));
     var resolver = new UnityResolver(container);
     var instance = resolver.GetService(typeof(IUtilities));
     Assert.IsNotNull(instance);
 }
 public void CanBuildUpProxiedClass()
 {
     using (var channelFactory = GetChannelFactory())
     {
         var client = new UnityContainer().BuildUp<IService>(channelFactory.CreateChannel());
         Assert.IsNotNull(client);
     }
 }
Example #26
0
 static void Main(string[] args)
 {
     var container = new UnityContainer();
       container.RegisterType<IFoo,Foo>(new ContainerControlledLifetimeManager(), new InjectionConstructor("Scott"));
       IFoo myFoo = container.Resolve<IFoo>();
       IFoo myFoo2 = container.Resolve<IFoo>();
       Console.WriteLine(myFoo.Name);
       Console.WriteLine(Object.ReferenceEquals(myFoo, myFoo2));
 }
        public void CanGetExtensionConfigurationFromContainer()
        {
            IUnityContainer container = new UnityContainer()
                .AddNewExtension<StaticFactoryExtension>();

            IStaticFactoryConfiguration config = container.Configure<IStaticFactoryConfiguration>();

            Assert.IsNotNull(config);
        }
        public void CanResolveGenericTypeMappedWithMatchingInterface()
        {
            var container = new UnityContainer();
            container.RegisterTypes(AllClasses.FromAssemblies(typeof(IList<>).GetTypeInfo().Assembly), WithMappings.FromMatchingInterface, WithName.Default, WithLifetime.None);

            var list = container.Resolve<IList<int>>();

            Assert.IsInstanceOfType(list, typeof(List<int>));
        }
        public void CanSafelyDisposeContainerTwice()
        {
            DisposableExtension extension = new DisposableExtension();
            IUnityContainer container = new UnityContainer()
                .AddExtension(extension);

            container.Dispose();
            container.Dispose();
        }
 public void ContainerThrowsWhenConfiguringStaticMethodForInjection()
 {
     AssertExtensions.AssertException<InvalidOperationException>(() =>
         {
             IUnityContainer container = new UnityContainer()
                 .RegisterType<GuineaPig>(
                        new InjectionMethod("ShouldntBeCalled"));
         });
 }
Example #31
0
        private static void SetInterceptorFor(this UnityContainer container, List <Type> types)
        {
            if (container == null)
            {
                return;
            }

            //多次添加拦截器,会进行多次重复拦截
            if (!isAlreadyAddInterception)
            {
                container.AddNewExtension <Interception>();
                isAlreadyAddInterception = true;
            }

            types.ForEach(item =>
            {
                if (HasLoggerAttribute(item))
                {
                    container.Configure <Interception>().SetInterceptorFor(item, virtualMethodInterceptor);
                }
            });
        }
Example #32
0
        /// <summary>
        /// register controller factory
        /// </summary>
        private void registerControllerFactory()
        {
            IUnityContainer           container = new UnityContainer();
            UnityConfigurationSection section   = null;

            System.Configuration.Configuration config = null;
            ExeConfigurationFileMap            map    = new ExeConfigurationFileMap();

            map.ExeConfigFilename = EyouSoft.Toolkit.Utils.GetMapPath("/Config/IDAL.Configuration.xml");
            config  = ConfigurationManager.OpenMappedExeConfiguration(map, ConfigurationUserLevel.None);
            section = (UnityConfigurationSection)config.GetSection("unity");
            section.Containers.Default.Configure(container);

            container
            .RegisterType <EyouSoft.BackgroundServices.IDAL.IPluginService, EyouSoft.BackgroundServices.DAL.PluginService>()
            .RegisterType <EyouSoft.BackgroundServices.IDAL.ISysBackRemindService, EyouSoft.BackgroundServices.DAL.SysBackRemindService>()
            .RegisterType <EyouSoft.BackgroundServices.IDAL.ISysBirthdayRemindService, EyouSoft.BackgroundServices.DAL.SysBirthdayRemindService>()
            .RegisterType <EyouSoft.BackgroundServices.IDAL.ISysLeaveRemindService, EyouSoft.BackgroundServices.DAL.SysLeaveRemindService>()
            .RegisterType <EyouSoft.BackgroundServices.IDAL.ISysTimerServices, EyouSoft.BackgroundServices.DAL.SysTimerServices>();

            Application.Add("container", container);
        }
        protected override void OnCreate(Bundle savedInstanceState)
        {
            TabLayoutResource = Resource.Layout.Tabbar;
            ToolbarResource   = Resource.Layout.Toolbar;

            base.OnCreate(savedInstanceState);

            Xamarin.Essentials.Platform.Init(this, savedInstanceState);
            global::Xamarin.Forms.Forms.Init(this, savedInstanceState);

            // configure container
            IUnityContainer container = new UnityContainer();

            UnityForms.RegisterTypes(container);
            UnityPlatform.RegisterTypes(container, this);

            var app = container.Resolve <App>();

            LoadApplication(app);

            // TODO check permissions (INTERNET)
        }
Example #34
0
        public void CanDisposeChildWithoutDisposingParent()
        {
            DisposableObject parentSpy = new DisposableObject();
            DisposableObject childSpy  = new DisposableObject();

            UnityContainer parent = new UnityContainer();

            parent.RegisterInstance(parentSpy);

            IUnityContainer child = parent.CreateChildContainer()
                                    .RegisterInstance(childSpy);

            child.Dispose();
            Assert.IsFalse(parentSpy.WasDisposed);
            Assert.IsTrue(childSpy.WasDisposed);

            childSpy.WasDisposed = false;

            parent.Dispose();
            Assert.IsTrue(parentSpy.WasDisposed);
            Assert.IsFalse(childSpy.WasDisposed);
        }
        public void CanSetUpAPolicyWithGivenRulesAndHandlersTypesWithGenerics()
        {
            IUnityContainer container = new UnityContainer();
            container.AddNewExtension<Interception>();

            container
                .Configure<Interception>()
                    .AddPolicy("foo")
                        .AddMatchingRule<AlwaysMatchingRule>()
                        .AddCallHandler<GlobalCountCallHandler>();

            GlobalCountCallHandler.Calls.Clear();

            container
                .Configure<Interception>()
                    .SetInterceptorFor<Wrappable>("wrappable", new TransparentProxyInterceptor());

            Wrappable wrappable1 = container.Resolve<Wrappable>("wrappable");
            wrappable1.Method2();

            Assert.AreEqual(1, GlobalCountCallHandler.Calls["default"]);
        }
        public void CanSetUpSeveralEmptyRules()
        {
            // there is no visible effect for this, but it should still be resolved.
            IUnityContainer container = new UnityContainer();
            container.AddNewExtension<Interception>();

            // empty
            container
                .Configure<Interception>()
                    .AddPolicy("foo").Interception
                    .AddPolicy("bar");

            List<InjectionPolicy> policies
                = new List<InjectionPolicy>(container.ResolveAll<InjectionPolicy>());

            Assert.AreEqual(3, policies.Count);
            Assert.IsInstanceOfType(policies[0], typeof(AttributeDrivenPolicy));
            Assert.IsInstanceOfType(policies[1], typeof(RuleDrivenPolicy));
            Assert.AreEqual("foo", policies[1].Name);
            Assert.IsInstanceOfType(policies[2], typeof(RuleDrivenPolicy));
            Assert.AreEqual("bar", policies[2].Name);
        }
Example #37
0
        public static void RegisterComponents()
        {
            var container = new UnityContainer();

            // register all your components with the container here
            // it is NOT necessary to register your controllers

            // e.g. container.RegisterType<ITestService, TestService>();

            container.RegisterType(typeof(ApplicationContext));
            container.RegisterType <CarDAO, MSSQLCarDAO>();
            container.RegisterType <AccountDAO, MSSQLAccountDAO>();
            container.RegisterType <OrderDAO, MSSQLOrderDAO>();
            container.RegisterType <TripDAO, MSSQLTripDAO>();
            container.RegisterType <AccountService, AccountServiceImpl>();
            container.RegisterType <CarService, CarServiceImpl>();
            container.RegisterType <OrderService, OrderServiceImpl>();
            container.RegisterType <TripService, TripServiceImpl>();
            container.RegisterType <Services.Filters.Filter, FilterImpl>();

            DependencyResolver.SetResolver(new UnityDependencyResolver(container));
        }
Example #38
0
        public void UnityCanResolveMefComponentRegisteredByTypeAndRegistrationNameTest()
        {
            // Setup
            var unityContainer  = new UnityContainer();
            var assemblyCatalog = new AssemblyCatalog(Assembly.GetExecutingAssembly());

            // Add composition support for unity
            unityContainer.AddNewExtension <CompositionIntegration>();
            unityContainer.Configure <CompositionIntegration>().Catalogs.Add(assemblyCatalog);

            var mefComponent = unityContainer.Resolve <IMefComponent>("component2");

            Assert.That(mefComponent, Is.Not.Null);
            Assert.That(mefComponent.GetType(), Is.EqualTo(typeof(MefComponent2)));

            unityContainer.RegisterType <IUnityComponent, UnityComponent2>();

            var unityComponent = unityContainer.Resolve <IUnityComponent>();

            Assert.That(unityComponent, Is.Not.Null);
            Assert.That(unityComponent.MefComponent.GetType(), Is.EqualTo(typeof(MefComponent2)));
        }
Example #39
0
        protected override void OnStartup(StartupEventArgs e)
        {
            base.OnStartup(e);
            var container = new UnityContainer();

            container.RegisterInstance <IUnityContainer>(container);
            container.RegisterInstance <IWindowService>(new WindowService());
            container.RegisterType <ITimerService, TimerService>();
            container.RegisterInstance <ITimeService>(new TimeService());
            container.RegisterInstance <IMessageBoxService>(new MessageBoxService());
            UnityServiceLocator locator = new UnityServiceLocator(container);

            ServiceLocator.SetLocatorProvider(() => locator);


            var main = new MainWindow();
            var vm   = new MainWindowViewModel();

            vm.ApplicationExit += MainWindowViewModel_ApplicationExit;
            main.DataContext    = vm;
            main.Show();
        }
Example #40
0
        public static void RegisterComponents()
        {
            var container = new UnityContainer();

            // register all your components with the container here
            // it is NOT necessary to register your controllers

            // e.g. container.RegisterType<ITestService, TestService>();

            container.RegisterType <ITwitterClient, TwitterClient>();
            container.RegisterType <IFavoritesRepository, FavoritesRepository>();
            container.RegisterType <IConfigurationReader, ConfigurationReader>();
            //container.RegisterType<IUserStore<ApplicationUser>, UserStore<ApplicationUser>>(new HierarchicalLifetimeManager());
            //container.RegisterType<DbContext, ApplicationDbContext>(new HierarchicalLifetimeManager());

            container.RegisterType <DbContext, ApplicationDbContext>(new HierarchicalLifetimeManager());
            container.RegisterType <UserManager <ApplicationUser> >(new HierarchicalLifetimeManager());
            container.RegisterType <IUserStore <ApplicationUser>, UserStore <ApplicationUser> >(new HierarchicalLifetimeManager());
            container.RegisterType <AccountController>(new InjectionConstructor());

            DependencyResolver.SetResolver(new UnityDependencyResolver(container));
        }
Example #41
0
        public void ConfigurationComposition()
        {
            var mapping = new ExeConfigurationFileMap()
            {
                ExeConfigFilename = "unity.config"
            };
            var configuration = ConfigurationManager.OpenMappedExeConfiguration(mapping, ConfigurationUserLevel.None);
            var container     = new UnityContainer();

            if (!(configuration.GetSection("unity") is UnityConfigurationSection section))
            {
                Assert.Fail("section named unity is not of type UnityConfigurationSection");
                return;
            }

            container.LoadConfiguration(section);

            var dependee = container.Resolve <IDependee>();

            Assert.IsNotNull(dependee);
            Assert.IsNotNull(dependee.Dependency);
        }
        public static void Configure()
        {
            UnityContainer register = IocContainer.Default;

            register.RegisterType <IUnitOfWork, UnitOfWork>();
            register.RegisterType <IDbContext, ApplyDbContext>(new PerThreadLifetimeManager());

            register.RegisterType <IJsPermissionApplyRepository, JsPermissionApplyRepository>();
            register.RegisterType <IBlogChangeApplyRepository, BlogChangeApplyRepository>();

            register.RegisterType <IJsPermissionApplyService, JsPermissionApplyService>();
            register.RegisterType <IBlogChangeApplyService, BlogChangeApplyService>();

            register.RegisterType <IEventBus, EventBus>();
            register.RegisterType <IEventHandler <MessageSentEvent>, MessageSentEventHandler>();
            register.RegisterType <IEventHandler <JsPermissionOpenedEvent>, JsPermissionOpenedEventHandler>();
            register.RegisterType <IEventHandler <BlogChangedEvent>, BlogChangedEventHandler>();

            register.RegisterType <IApplyAuthenticationService, ApplyAuthenticationService>();

            ConfigureMapper();
        }
Example #43
0
        public void UnityResolver_Resolves_Registered_ContactRepository_Through_ContactsController_Test()
        {
            var config = new HttpConfiguration();

            config.Routes.MapHttpRoute("default",
                                       "api/{controller}/{id}", new { id = RouteParameter.Optional });

            var container = new UnityContainer();

            container.RegisterInstance <ICheapPaymentGateway>(new CheapPaymentGateway.CheapPaymentGateway());

            config.DependencyResolver = new UnityResolver(container);

            var server = new HttpServer(config);
            var client = new HttpClient(server);

            client.GetAsync("http://anything/api/contacts").ContinueWith(task =>
            {
                var response = task.Result;
                Assert.IsNotNull(response.Content);
            });
        }
        private static IUnityContainer BuildUnityContainer()
        {
            var currentContainer = new UnityContainer();

            currentContainer.RegisterType <IVisitStorage, VisitStorage>(new
                                                                        HierarchicalLifetimeManager());
            currentContainer.RegisterType <IClientStorage, ClientStorage>(new
                                                                          HierarchicalLifetimeManager());
            currentContainer.RegisterType <IProcedureStorage, ProcedureStorage>(new
                                                                                HierarchicalLifetimeManager());
            currentContainer.RegisterType <IPurchaseStorage, PurchaseStorage>(new
                                                                              HierarchicalLifetimeManager());
            currentContainer.RegisterType <VisitLogic>(new
                                                       HierarchicalLifetimeManager());
            currentContainer.RegisterType <ReportLogicClient>(new HierarchicalLifetimeManager());
            currentContainer.RegisterType <ClientLogic>(new HierarchicalLifetimeManager());
            currentContainer.RegisterType <ProcedureLogic>(new
                                                           HierarchicalLifetimeManager());
            currentContainer.RegisterType <PurchaseLogic>(new
                                                          HierarchicalLifetimeManager());
            return(currentContainer);
        }
Example #45
0
        /// <summary>
        /// 根据containerName获取指定的Container
        /// </summary>
        /// <param name="containerName"></param>
        /// <returns></returns>
        public static IUnityContainer GetContainer(string containerName = "Container")
        {
            if (!_UnityContainerDictionary.ContainsKey(containerName))
            {
                lock (_SyncHelper)
                {
                    if (!_UnityContainerDictionary.ContainsKey(containerName))
                    {
                        //配置 UnityContainer
                        IUnityContainer         container = new UnityContainer();
                        ExeConfigurationFileMap fileMap   = new ExeConfigurationFileMap();
                        fileMap.ExeConfigFilename = Path.Combine(GetConfigFile());
                        System.Configuration.Configuration configuration = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None);
                        UnityConfigurationSection          configSection = (UnityConfigurationSection)configuration.GetSection(UnityConfigurationSection.SectionName);
                        configSection.Configure(container, containerName);

                        _UnityContainerDictionary.Add(containerName, container);
                    }
                }
            }
            return(_UnityContainerDictionary[containerName]);
        }
Example #46
0
        public static void Register(HttpConfiguration config)
        {
            // Web API configuration and services

            // Web API routes
            config.MapHttpAttributeRoutes();

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
                );

            config.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();

            var container = new UnityContainer();

            container.RegisterType <IDDMSSearchDocument, DDMSSearchDocument>(new HierarchicalLifetimeManager());
            container.RegisterType <IDDMSUploadDocument, DDMSUploadDocument>(new HierarchicalLifetimeManager());
            container.RegisterType <IDDMSDeleteDocument, DDMSDeleteDocument>(new HierarchicalLifetimeManager());
            config.DependencyResolver = new UnityResolver(container);
        }
Example #47
0
        private static IUnityContainer BuildUnityContainer()
        {
            var container = new UnityContainer();

            // register all your components with the container here
            // it is NOT necessary to register your controllers

            // e.g. container.RegisterType<ITestService, TestService>();

            container.RegisterType <IBillContext, BillContext>()
            .RegisterType <IBillModelMapper, BillModelMapper>()
            .RegisterType <IBillService, BillService>()
            .RegisterType <IWebSecurityWrapper, WebSecurityWrapper>()
            .RegisterType <IFrequencyMapper, FrequencyMapper>()
            .RegisterType <IPaymentScheduleService, PaymentScheduleService>()
            .RegisterType <IEventSummaryMapper, EventSummaryMapper>()
            .RegisterType <IScheduleFilters>(new InjectionFactory(c => CreateFilters()));

            RegisterTypes(container);

            return(container);
        }
        public static void Register(HttpConfiguration config)
        {
            // Web API configuration and services
            var container = new UnityContainer();

            container.RegisterType <IAccountService, AccountService>(new HierarchicalLifetimeManager());
            container.RegisterType <IEventService, EventService>(new HierarchicalLifetimeManager());
            container.RegisterType <IUserService, UserService>(new HierarchicalLifetimeManager());
            container.RegisterType <IConnectionService, ConnectionService>(new HierarchicalLifetimeManager());
            container.RegisterType <IMeetingService, MeetingService>(new HierarchicalLifetimeManager());
            container.RegisterType <IMeetingRepository, MeetingRepository>(new HierarchicalLifetimeManager());
            container.RegisterType <IMeetingRequestService, MeetingRequestService>(new HierarchicalLifetimeManager());
            container.RegisterType <IMeetingRequestRepository, MeetingRequestRepository>(new HierarchicalLifetimeManager());
            container.RegisterType <IAuthRepository, AuthRepository>(new HierarchicalLifetimeManager());
            container.RegisterType <IEventRepository, EventRepository>(new HierarchicalLifetimeManager());
            container.RegisterType <IUserRepository, UserRepository>(new HierarchicalLifetimeManager());
            container.RegisterType <IConnectionRepository, ConnectionRepository>(new HierarchicalLifetimeManager());
            container.RegisterType <IConnectionNotificationRepository, ConnectionNotificationRepository>(new HierarchicalLifetimeManager());
            config.DependencyResolver = new UnityResolver(container);

            // Web API configuration and services
            // Configure Web API to use only bearer token authentication.
            config.SuppressDefaultHostAuthentication();
            config.Filters.Add(new HostAuthenticationFilter(OAuthDefaults.AuthenticationType));

            // Web API routes
            config.MapHttpAttributeRoutes();

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
                );

            var jsonFormatter = config.Formatters.OfType <JsonMediaTypeFormatter>().First();

            jsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
            config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("application/octet-stream"));
        }
Example #49
0
        public UnityControllerFactory(string containerName = "")
        {
            if (containers.ContainsKey(containerName))
            {
                this.UnityContainer = containers[containerName];
                return;
            }

            lock (syncHelper)
            {
                if (containers.ContainsKey(containerName))
                {
                    this.UnityContainer = containers[containerName];
                    return;
                }
                IUnityContainer container = new UnityContainer();

                //配置UnityContainer

                UnityConfigurationSection configSection = ConfigurationManager.GetSection(UnityConfigurationSection.SectionName) as UnityConfigurationSection;
                if (null == configSection && !string.IsNullOrEmpty(containerName))
                {
                    throw new ConfigurationErrorsException("The <unity> configuration section does not exist.");
                }
                if (null != configSection)
                {
                    if (string.IsNullOrEmpty(containerName))
                    {
                        configSection.Configure(container);
                    }
                    else
                    {
                        configSection.Configure(container, containerName);
                    }
                }
                containers.Add(containerName, container);
                this.UnityContainer = containers[containerName];
            }
        }
Example #50
0
        public static void Run(UnityContainer container)
        {
            container.RegisterType <OrganizationQueryModule>();
            container.RegisterType <EFOrganizationQueryModule>();
            container.RegisterType <AddressQueryModule>();
            container.RegisterType <EFAddressQueryModule>();

            container.RegisterType <OrganizationCommandModule>();
            container.RegisterInstance(typeof(ILog), LogProvider.For <OrganizationService>(), new ContainerControlledLifetimeManager());
            container.RegisterType <AddOrganizationCommandHandler>();
            container.RegisterType <AddEFOrganisationCommandHandler>();



            container.RegisterType <ChangeOrganizationCommandHandler>();
            container.RegisterType <OrganizationAddedEventHandler>();
            container.RegisterType <OrganizationAddedLegacyEventHandler>();

            //Factories
            //container.RegisterType(typeof(ICommandFactory<AddOrganizationCommand>),typeof(CommandFactory<AddOrganizationCommand, AxaAddOrganizationCommandExtension>));
            //container.RegisterType<IDomainFactory, AxaDomainFactory>();
            container.RegisterType(typeof(ICommandFactory <>), typeof(CommandFactory <>));

            container.RegisterType <IDomainFactory, DomainFactory>();
            container.RegisterType(typeof(IDomainTracking <>), typeof(DomainTracking <>));

            //Repositories
            container.RegisterType <IOrganizationRepository, OrganizationRepository>();
            container.RegisterType(typeof(IDapperGenericRepository <>), typeof(DapperGenericRepository <>));
            container.RegisterType(typeof(IEFGenericRepository <>), typeof(EFGenericRepository <>));

            container.RegisterType <DbContext, OrganisationDbContext>(new ContainerControlledLifetimeManager());
            container.RegisterType(typeof(IGenericRepository <>), typeof(EFGenericRepository <>));

            //Command Processor
            paramore.brighter.commandprocessor.CommandProcessor commandProcessor = CreateCommandProcesor(container);

            container.RegisterInstance(typeof(IAmACommandProcessor), commandProcessor);
        }
Example #51
0
        static void Main()
        {
            var container = new UnityContainer();

            container.RegisterType <ILoginForm, LoginForm>();
            container.RegisterType <ILoginVmService, LoginVmService>();
            container.RegisterType <ILoginService, LoginService>();
            container.RegisterType <IEmployeeRepository, EmployeeRepository>();
            container.RegisterType <IMenuForm, MenuForm>();
            container.RegisterType <IAdminPanel, AdminPanelForm>();
            container.RegisterType <IExchangeForm, ExchangeForm>();
            container.RegisterType <IExchangeService, ExchangeService>();
            container.RegisterType <IExchangeVmService, ExchangeVmService>();
            container.RegisterType <ICreateClientForm, CreateClientForm>();
            container.RegisterType <IClientTypeRepository, ClientTypeRepository>();
            container.RegisterType <IClientRepository, ClientRepository>();
            container.RegisterType <IMobiFinanceContext, MobiFinanceContext>();
            container.RegisterType <IClientOverviewForm, ClientOverviewForm>();
            container.RegisterType <IClientOverviewVmService, ClientOverviewVmService>();
            container.RegisterType <IBankServicesVmService, BankServicesVmService>();
            container.RegisterType <IBankServicesOverviewForm, BankServicesOverviewForm>();
            container.RegisterType <IEmployeeTypeRepository, EmployeeTypeRepository>();
            container.RegisterType <IAccountRepository, AccountRepository>();
            container.RegisterType <ISavingAccountRepository, SavingAccountRepository>();
            container.RegisterType <ILoanRepository, LoanRepository>();
            container.RegisterType <ILoanTypeRepository, LoanTypeRepository>();
            container.RegisterType <ISavingAccountTypeRepository, SavingAccountTypeRepository>();
            container.RegisterType <IAccountTypeRepository, AccountTypeRepository>();
            container.RegisterType <IOpeningBankServicesForm, OpeningBankServicesForm>();
            container.RegisterType <IOpenAccountBankServiceForm, OpenAccountBankServiceForm>();
            container.RegisterType <IOpenSavingAccountBankServiceForm, OpenSavingAccountBankServiceForm>();
            container.RegisterType <IOpenLoanBankServiceForm, OpenLoanBankServiceForm>();
            container.RegisterType <ILoanAssessment, LoanAssessment>();
            container.RegisterType <ILoanRequestsForm, LoanRequestsForm>();

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(container.Resolve <LoginForm>());
        }
Example #52
0
        static void Main(string[] args)
        {
            UnityContainer unity = new UnityContainer();

            unity.RegisterType <IRepositorioAgendamento, Agendamentos>();
            unity.RegisterType <IRepositorio <Paciente>, Pacientes>();
            unity.RegisterType <IServicoDePagamento, ServicoDePagamentoMaster>();


            ServicoDeConsultaDeDadosDePaciente servicoDeConsultaDeDadosDePaciente = unity.Resolve <ServicoDeConsultaDeDadosDePaciente>();


            var retorno = servicoDeConsultaDeDadosDePaciente.RetornarResultadosDeExame("284434343434334");


            foreach (ResultadoViewModel resultado in retorno)
            {
                Console.Write(resultado.Descricao);
            }

            Console.ReadKey();
        }
Example #53
0
        protected void Application_Start()
        {
            var container = new UnityContainer();

            GlobalConfiguration.Configure(WebApiConfig.Register);
            GlobalConfiguration.Configuration.DependencyResolver = new UnityDependencyResolver(container);

            var cacheConfig = ConfigurationBuilder.BuildConfiguration(settings =>
            {
                settings
                .WithSystemRuntimeCacheHandle("inprocess");
                ////.WithExpiration(ExpirationMode.Absolute, TimeSpan.FromMinutes(10));
                ////settings.WithRedisBackPlate("redisConnection");
                ////settings.WithRedisCacheHandle("redisConnection", true);
            });

            container.RegisterType(
                typeof(ICacheManager <>),
                new ContainerControlledLifetimeManager(),
                new InjectionFactory(
                    (c, t, n) => CacheFactory.FromConfiguration(t.GetGenericArguments()[0], cacheConfig)));
        }
Example #54
0
        public static void Init(TestContext context)
        {
            var container = new UnityContainer();
            var config    = TestConfigurationInternal.GetConfig();

            _dispatcher = new Mock <IGlobalEventDispatcher>().Object;
            container.RegisterBaseTypes(config);

            // we need to override initial loading of bookmaker details and producers
            var bookmakerDetailsProviderMock = new Mock <BookmakerDetailsProvider>("bookmakerDetailsUriFormat",
                                                                                   new TestDataFetcher(),
                                                                                   new Deserializer <bookmaker_details>(),
                                                                                   new BookmakerDetailsMapperFactory());

            bookmakerDetailsProviderMock.Setup(x => x.GetData(It.IsAny <string>())).Returns(TestConfigurationInternal.GetBookmakerDetails());
            var defaultBookmakerDetailsProvider = bookmakerDetailsProviderMock.Object;

            container.RegisterInstance <IDataProvider <BookmakerDetailsDTO> >(defaultBookmakerDetailsProvider, new ContainerControlledLifetimeManager());
            container.RegisterInstance <BookmakerDetailsProvider>(defaultBookmakerDetailsProvider, new ContainerControlledLifetimeManager());
            var newConfig = new OddsFeedConfigurationInternal(config, defaultBookmakerDetailsProvider);

            newConfig.Load();
            container.RegisterInstance <IOddsFeedConfiguration>(newConfig, new ContainerControlledLifetimeManager());
            container.RegisterInstance <IOddsFeedConfigurationInternal>(newConfig, new ContainerControlledLifetimeManager());

            container.RegisterTypes(_dispatcher);

            container.RegisterType <IProducerManager, ProducerManager>(
                new ContainerControlledLifetimeManager(),
                new InjectionConstructor(
                    new TestProducersProvider(),
                    config));

            container.RegisterAdditionalTypes();

            _childContainer1 = ((IUnityContainer)container).CreateChildContainer();
            _childContainer2 = ((IUnityContainer)container).CreateChildContainer();
        }
Example #55
0
        public void AssembledCorrectlyLogCallHandler()
        {
            using (var configSource = new FileConfigurationSource("LogCallHandler.config", false))
            {
                Logger.SetLogWriter(new LogWriterFactory(configSource.GetSection).Create(), false);

                PolicyInjectionSettings settings = new PolicyInjectionSettings();

                PolicyData         policyData = new PolicyData("policy");
                LogCallHandlerData data       = new LogCallHandlerData("fooHandler", 66);
                data.BeforeMessage   = "before";
                data.AfterMessage    = "after";
                data.IncludeCallTime = true;
                data.EventId         = 100;
                data.Categories.Add(new LogCallHandlerCategoryEntry("category1"));
                data.Categories.Add(new LogCallHandlerCategoryEntry("category2"));
                policyData.MatchingRules.Add(new CustomMatchingRuleData("matchesEverything", typeof(AlwaysMatchingRule)));
                policyData.Handlers.Add(data);
                settings.Policies.Add(policyData);

                IUnityContainer container = new UnityContainer().AddNewExtension <Interception>();
                settings.ConfigureContainer(container);

                var policy = container.Resolve <RuleDrivenPolicy>("policy");

                LogCallHandler handler = (LogCallHandler)
                                         (policy.GetHandlersFor(GetMethodImpl(MethodBase.GetCurrentMethod()), container)).ElementAt(0);
                Assert.IsNotNull(handler);
                Assert.AreEqual(66, handler.Order);
                Assert.AreEqual("before", handler.BeforeMessage);
                Assert.AreEqual("after", handler.AfterMessage);
                Assert.AreEqual(true, handler.IncludeCallTime);
                Assert.AreEqual(100, handler.EventId);
                Assert.AreEqual(2, handler.Categories.Count);
                CollectionAssert.Contains(handler.Categories, "category1");
                CollectionAssert.Contains(handler.Categories, "category2");
            }
        }
Example #56
0
        private static void WorkerRoutine(object arg)
        {
            var token = (CancellationToken)arg;

            using (var container = new UnityContainer())
            {
                UnityConfiguration.ConfigureBindings(container);
                var log = container.Resolve <ILog>();

                log.Info("========== Initializing service ==========");

                while (!token.IsCancellationRequested)
                {
                    try
                    {
                        using (var scope = container.CreateChildContainer())
                        {
                            var manager = scope.Resolve <IImportManager>();

                            log.Info("Running importer");
                            manager.Import();
                        }
                    }
                    catch (Exception ex)
                    {
                        log.Error($"Unhandled exception when running importer: {ex}");
                    }

                    try
                    {
                        Task.WaitAll(Task.Delay(TimeSpan.FromHours(1), token));
                    }
                    catch (AggregateException)
                    {
                    }
                }
            }
        }
Example #57
0
        protected virtual void Arrange()
        {
            Container =
                new UnityContainer();

            Container.RegisterType <BaseClass, DerivedClass>("derived",
                                                             new Interceptor <TransparentProxyInterceptor>(),
                                                             new InterceptionBehavior <PolicyInjectionBehavior>());
            Container.RegisterType <BaseClass, DerivedWithNoOverrideClass>("derived-nooverride",
                                                                           new Interceptor <TransparentProxyInterceptor>(),
                                                                           new InterceptionBehavior <PolicyInjectionBehavior>());
            Container.RegisterType <BaseClass>(
                new Interceptor <TransparentProxyInterceptor>(),
                new InterceptionBehavior <PolicyInjectionBehavior>());

            Container.AddNewExtension <Interception>()
            .Configure <Interception>()
            .AddPolicy("base")
            .AddMatchingRule(new TypeMatchingRule(typeof(BaseClass)))
            .AddMatchingRule(new MemberNameMatchingRule("InterceptedMethod"))
            .AddCallHandler(new AppendSuffixCallHandler {
                Suffix = "-basehandler", Order = 1
            })
            .Interception
            .AddPolicy("derived-no-override")
            .AddMatchingRule(new TypeMatchingRule(typeof(DerivedWithNoOverrideClass)))
            .AddMatchingRule(new MemberNameMatchingRule("InterceptedMethod"))
            .AddCallHandler(new AppendSuffixCallHandler {
                Suffix = "-derivednooverridehandler", Order = 2
            })
            .Interception
            .AddPolicy("derived")
            .AddMatchingRule(new TypeMatchingRule(typeof(DerivedClass)))
            .AddMatchingRule(new MemberNameMatchingRule("InterceptedMethod"))
            .AddCallHandler(new AppendSuffixCallHandler {
                Suffix = "-derivedhandler", Order = 3
            });
        }
        public static void Register(HttpConfiguration config)
        {
            // Configuración y servicios de API web
            var container = new UnityContainer();

            container.RegisterType <IHttpInvoker, HttpInvoker>(
                new ContainerControlledLifetimeManager());

            container.RegisterType <ITwitterApiClient, TwitterApiClient>(
                new ContainerControlledLifetimeManager(),
                new InjectionFactory(c =>
            {
                IHttpInvoker httpInvoker  = container.Resolve <IHttpInvoker>();
                TwitterApiClient instance = new TwitterApiClient(httpInvoker);
                instance.SetCredentials("jkuG56zlta1exJJ3kGi2mlXRM"
                                        , "kPHXBkmLqOV9thDnFE4QJpvzND7hkJBp8AYtwcIts9l64LEmt8"
                                        , "430727651-vHPtvToq1UK3RHm3tMrQmQA4BW3PdJlxAopL53We"
                                        , "rEArJ1vb8Uuh24WTeh9tW8DKFPNWfEvEFte3jdfUkXaPC");
                return(instance);
            }));

            RequiresAuthorizationFilter authorizationFilter =
                new RequiresAuthorizationFilter(WebSocketController.ClientsConnections);

            container.RegisterInstance(typeof(RequiresAuthorizationFilter), authorizationFilter);

            config.DependencyResolver = new UnityResolver(container);

            config.Filters.Add(authorizationFilter);

            // Rutas de API web
            config.MapHttpAttributeRoutes();

            //config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate:
            //    "api/{controller}/{id}", defaults: new { id =
            //    RouteParameter.Optional }
            //);
        }
Example #59
0
        protected void Application_Start(object sender, EventArgs e)
        {
            GlobalConfiguration.Configuration.Formatters.XmlFormatter.UseXmlSerializer = true;
            // http://stackoverflow.com/questions/9847564/how-do-i-get-asp-net-web-api-to-return-json-instead-of-xml-using-chrome
            GlobalConfiguration.Configuration.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/html"));

            // Force controllers assembly to be loaded
            var assembly = typeof(bma.client.Controllers.AnalyzeController).Assembly;

            GlobalConfiguration.Configuration.Routes.MapHttpRoute(
                name: "LongRunningActionsSpecificApi",
                routeTemplate: "api/lra/{appId}/{action}",
                defaults: new { controller = "longrunningactionsspecific" },
                constraints: new { appId = @"[0-9A-Fa-f]{8}[-]?([0-9A-Fa-f]{4}[-]?){3}[0-9A-Fa-f]{12}" }
                );
            GlobalConfiguration.Configuration.Routes.MapHttpRoute(
                name: "LongRunningActionsApi",
                routeTemplate: "api/lra/{appId}",
                defaults: new { controller = "longrunningactions" },
                constraints: new { appId = @"[0-9A-Fa-f]{8}[-]?([0-9A-Fa-f]{4}[-]?){3}[0-9A-Fa-f]{12}" }
                );
            GlobalConfiguration.Configuration.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}"
                );


            var container = new UnityContainer();

            container.LoadConfiguration();
            container.RegisterInstance <System.Web.Http.Hosting.IHostBufferPolicySelector>(new System.Web.Http.WebHost.WebHostBufferPolicySelector());

            GlobalConfiguration.Configuration.DependencyResolver = new UnityResolver(container);

            var cors = new EnableCorsAttribute("*", "*", "*");

            GlobalConfiguration.Configuration.EnableCors(cors);
        }
Example #60
0
        public static void Register(HttpConfiguration config)
        {
            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
                );

            // Uncomment the following line of code to enable query support for actions with an IQueryable or IQueryable<T> return type.
            // To avoid processing unexpected or malicious queries, use the validation settings on QueryableAttribute to validate incoming queries.
            // For more information, visit http://go.microsoft.com/fwlink/?LinkId=279712.
            //config.EnableQuerySupport();

            // To disable tracing in your application, please comment out or remove the following line of code
            // For more information, refer to: http://www.asp.net/web-api
            config.EnableSystemDiagnosticsTracing();

            #region IoC
            var container = new UnityContainer();
            container.RegisterType <IOpmVerificator, OpmVerificator>(new HierarchicalLifetimeManager());


            string idmUrl           = System.Configuration.ConfigurationManager.AppSettings["IdmUrl"];
            IIdentityManagement idm = new IdentityManagement(idmUrl);
            container.RegisterInstance(idm);

            string eanEicCheckerUrl = System.Configuration.ConfigurationManager.AppSettings["EanEicCheckerUrl"];
            IEanEicCheckerHttpClient eanEicCheckerHttpClient = new EanEicCheckerHttpClient(eanEicCheckerUrl);
            container.RegisterInstance(eanEicCheckerHttpClient);


            IOpmRepository opmInMemoryRepository = new OpmInMemoryRepository();
            OpmRepoFiller.Fill(opmInMemoryRepository);
            container.RegisterInstance(opmInMemoryRepository);

            config.DependencyResolver = new UnityResolver(container);
            #endregion IoC
        }