public static void SetupHttpConfigurationUsingAutofac(this IJsonApiConfiguration configuration,
                                                              HttpConfiguration httpConfiguration, ILifetimeScope parentLifetimeScope)
        {
            var configurator = new JsonApiHttpAutofacConfigurator(parentLifetimeScope);

            configurator.Apply(httpConfiguration, configuration);
        }
Example #2
0
        public void Apply(HttpConfiguration httpConfiguration, IJsonApiConfiguration jsonApiConfiguration)
        {
            ILifetimeScope applicationLifetimeScope;

            if (_lifetimeScope == null)
            {
                var builder = new ContainerBuilder();
                ConfigureApplicationLifetimeScope(jsonApiConfiguration, builder);
                applicationLifetimeScope = builder.Build();
            }
            else
            {
                applicationLifetimeScope = _lifetimeScope.BeginLifetimeScope(containerBuilder =>
                {
                    ConfigureApplicationLifetimeScope(jsonApiConfiguration, containerBuilder);
                });
            }

            if (_appLifetimeScopeBegunAction != null)
            {
                _appLifetimeScopeBegunAction(applicationLifetimeScope);
            }

            var jsonApiHttpConfiguration = applicationLifetimeScope.Resolve <JsonApiHttpConfiguration>();

            jsonApiHttpConfiguration.Apply(httpConfiguration);
            httpConfiguration.DependencyResolver = new AutofacWebApiDependencyResolver(applicationLifetimeScope);
        }
        private void ConfigureApplicationLifetimeScope(IJsonApiConfiguration jsonApiConfiguration, ContainerBuilder containerBuilder)
        {
            var module = new JsonApiAutofacModule(jsonApiConfiguration);
            containerBuilder.RegisterModule(module);

            if (_appLifetimeScopeCreating != null)
                _appLifetimeScopeCreating(containerBuilder); 
        }
Example #4
0
        private void ConfigureApplicationLifetimeScope(IJsonApiConfiguration jsonApiConfiguration, ContainerBuilder containerBuilder)
        {
            var module = new JsonApiAutofacModule(jsonApiConfiguration);

            containerBuilder.RegisterModule(module);

            if (_appLifetimeScopeCreating != null)
            {
                _appLifetimeScopeCreating(containerBuilder);
            }
        }
        /// <summary>
        /// Applies the running configuration to an HttpConfiguration instance
        /// </summary>
        /// <param name="httpConfig">The HttpConfiguration to apply this JsonApiHttpConfiguration to</param>
        /// <param name="jsonApiConfiguration">configuration holding BaseUrlService wich could provide a context path.</param>
        public void Apply(HttpConfiguration httpConfig, IJsonApiConfiguration jsonApiConfiguration)
        {
            httpConfig.Formatters.Clear();
            httpConfig.Formatters.Add(_formatter);

            httpConfig.Filters.Add(_fallbackDocumentBuilderAttribute);
            httpConfig.Filters.Add(_jsonApiExceptionFilterAttribute);

            var contextPath = jsonApiConfiguration.CustomBaseUrlService?.GetContextPath();

            if (contextPath != null && !contextPath.Equals(string.Empty))
            {
                contextPath += "/";
            }

            // Web API routes
            httpConfig.Routes.MapHttpRoute("ResourceCollection", contextPath + "{resourceType}", new { controller = "Main" });
            httpConfig.Routes.MapHttpRoute("Resource", contextPath + "{resourceType}/{id}", new { controller = "Main" });
            httpConfig.Routes.MapHttpRoute("RelatedResource", contextPath + "{resourceType}/{id}/{relationshipName}", new { controller = "Main" });
        }
        public void Apply(HttpConfiguration httpConfiguration, IJsonApiConfiguration jsonApiConfiguration)
        {
            ILifetimeScope applicationLifetimeScope;
            if (_lifetimeScope == null)
            {
                var builder = new ContainerBuilder();
                ConfigureApplicationLifetimeScope(jsonApiConfiguration, builder);
                applicationLifetimeScope = builder.Build();
            }
            else
            {
                applicationLifetimeScope = _lifetimeScope.BeginLifetimeScope(containerBuilder =>
                {
                    ConfigureApplicationLifetimeScope(jsonApiConfiguration, containerBuilder);
                });
            }

            if (_appLifetimeScopeBegunAction != null)
                _appLifetimeScopeBegunAction(applicationLifetimeScope);

            var jsonApiHttpConfiguration = applicationLifetimeScope.Resolve<JsonApiHttpConfiguration>();
            jsonApiHttpConfiguration.Apply(httpConfiguration);
            httpConfiguration.DependencyResolver = new AutofacWebApiDependencyResolver(applicationLifetimeScope);
        }
Example #7
0
 public JsonApiAutofacModule(IJsonApiConfiguration jsonApiConfiguration)
 {
     _jsonApiConfiguration = jsonApiConfiguration;
 }
 internal JsonApiAutofacModule(IJsonApiConfiguration jsonApiConfiguration)
 {
     _jsonApiConfiguration = jsonApiConfiguration;
 }
 internal JsonApiAutofacModule(IJsonApiConfiguration jsonApiConfiguration)
 {
     _jsonApiConfiguration = jsonApiConfiguration;
 }