예제 #1
0
        public void Configuration(IAppBuilder app)
        {
            var config = new System.Web.Http.HttpConfiguration();

            //ConfigureAuth(app);
            ConfigureAuth(app);
        }
예제 #2
0
    public void Configuration(IAppBuilder app)
    {
        var config = new System.Web.Http.HttpConfiguration();

        WebApiConfig.Register(config);
        app.UseWebApi(config);     //<-- THIS WAS MISSING
    }
예제 #3
0
 public AppCore.IOC.IContainer ActiveWebApi(System.Web.Http.HttpConfiguration httpConfig, System.Reflection.Assembly[] webApiAssemblies)
 {
     _container = new DryContainer().WithWebApi(httpConfig, webApiAssemblies);
     _container.RegisterInstance <AppCore.IOC.IContainer>(new Container(_container), reuse: Reuse.Singleton);
     Container = _container.Resolve <AppCore.IOC.IContainer>();
     return(Container);
 }
예제 #4
0
        public static ODataQueryOptions CreateOptionsFromQueryString(this ODataQueryContext context, IDictionary <string, string> queryString)
        {
            //Create request
            var url = "http://autoPocoInternalOdata.com/site?";

            foreach (var param in queryString)
            {
                url += param.Key + "=" + param.Value + "&";
            }
            url = url.Trim('?').Trim('&');

            Uri uri    = new Uri(url);
            var config = new System.Web.Http.HttpConfiguration();

            config.EnableDependencyInjection();
            config.Count().Filter().OrderBy().Expand().Select().MaxTop(1000);

            var request = new HttpRequestMessage
            {
                RequestUri = uri
            };

            request.SetConfiguration(config);

            return(new ODataQueryOptions(context, request));
        }
 public void ConfigureShouldAddRouteHttpConfiguration()
 {
     var config = new System.Web.Http.HttpConfiguration();
     WebApiProfilerSettings.Configure(config);
     Assert.IsTrue(config.Routes.ContainsKey("Profiler"), "There should be a route named Profiler in the collection");
     Assert.AreEqual<string>("profiler/results/{id}", config.Routes["Profiler"].RouteTemplate, "Route parameter is invalid");
 }
예제 #6
0
 public void Configuration(IAppBuilder app)
 {
     System.Web.Http.HttpConfiguration config = new System.Web.Http.HttpConfiguration();
     app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
     ConfigureAuth(app);
     WebApiConfig.Register(config);
     app.UseWebApi(config);
 }
예제 #7
0
        public void Setup()
        {
            //GlobalConfiguration.Configure(WebApiConfig.Register);

            config = new System.Web.Http.HttpConfiguration();

            config.EnsureInitialized();
        }
        public IEnumerable <FilterInfo> GetFilters(System.Web.Http.HttpConfiguration configuration, System.Web.Http.Controllers.HttpActionDescriptor actionDescriptor)
        {
            var deoFilters = _container.ResolveAll <IApiMendeoFilter>();

            foreach (var f in deoFilters)
            {
                yield return(new FilterInfo(f, FilterScope.Global));
            }
        }
예제 #9
0
        public override IModelBinder GetBinder(System.Web.Http.HttpConfiguration configuration, Type modelType)
        {
            if (!modelType.IsArray)
            {
                return(null);
            }
            Type elementType = modelType.GetElementType();

            return((IModelBinder)Activator.CreateInstance(typeof(MyArrayModelBinder <>).MakeGenericType(new Type[] { elementType })));
        }
        public void RegistrationWithCustomOptions()
        {
            // Arrange
            var options    = TestHelper.MockOptions().UseHungarianNotation();
            var httpConfig = new System.Web.Http.HttpConfiguration();

            DataTables.AspNet.WebApi2.Configuration.RegisterDataTables(httpConfig, options);

            // Assert
            Assert.Equal(options, DataTables.AspNet.WebApi2.Configuration.Options);
        }
예제 #11
0
        public static ODataConventionModelBuilder ConfigureConventionBuilder()
        {
            var config = new System.Web.Http.HttpConfiguration();

            config.EnableDependencyInjection();
            config.Count().Filter().OrderBy().Expand().Select().MaxTop(1000);

            var modelBuilder = new ODataConventionModelBuilder(config, true);

            return(modelBuilder);
        }
예제 #12
0
        public void TestInitialize()
        {
            httpRequestMessage = new HttpRequestMessage
            {
                Method = HttpMethod.Get
            };
            var config = new System.Web.Http.HttpConfiguration();

            config.EnableDependencyInjection();
            httpRequestMessage.SetConfiguration(config);
        }
예제 #13
0
        public new IEnumerable <FilterInfo> GetFilters(System.Web.Http.HttpConfiguration configuration, System.Web.Http.Controllers.HttpActionDescriptor actionDescriptor)
        {
            var filters = base.GetFilters(configuration, actionDescriptor);

            foreach (var actionFilter in filters)
            {
                _kernel.InjectProperties(actionFilter);
            }

            return(filters);
        }
예제 #14
0
        internal static void ConfigureDependencyResolver(System.Web.Http.HttpConfiguration config)
        {
            var builder = new ContainerBuilder();

            builder.RegisterApiControllers(Assembly.GetExecutingAssembly());

            builder.RegisterType <RecipeManagerUow>().As <IRecipeManagerUow>();

            var container = builder.Build();

            config.DependencyResolver = new AutofacWebApiDependencyResolver(container);
        }
예제 #15
0
        public ExceptionProcessingHandlerTests()
        {
            _settingsManager = ScriptSettingsManager.Instance;
            _traceWriter     = new TestTraceWriter(System.Diagnostics.TraceLevel.Verbose);

            Mock <IDependencyResolver> mockResolver = new Mock <IDependencyResolver>();

            mockResolver.Setup(p => p.GetService(typeof(TraceWriter))).Returns(_traceWriter);

            _config = new System.Web.Http.HttpConfiguration();
            _config.DependencyResolver = mockResolver.Object;
        }
예제 #16
0
        public static void RegisterContainer(System.Web.Http.HttpConfiguration configuration)
        {
            var builder = new ContainerBuilder();

            builder.RegisterControllers(typeof(MvcApplication).Assembly);
            builder.RegisterApiControllers(typeof(MvcApplication).Assembly);
            builder.RegisterType <InMemoryTasks>().As <IPlannerTasks>().SingleInstance();
            var container = builder.Build();

            DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
            configuration.DependencyResolver = new AutofacWebApiDependencyResolver(container);
        }
        public void RegistrationWithParseAditionalParameters()
        {
            // Arrange
            var httpConfig = new System.Web.Http.HttpConfiguration();

            DataTables.AspNet.WebApi2.Configuration.RegisterDataTables(httpConfig, TestHelper.ParseAdditionalParameters, true);
            var modelBinder = System.Web.Http.GlobalConfiguration.Configuration.Services.GetServices(typeof(IModelBinder)).Cast <IModelBinder>().FirstOrDefault() as ModelBinder;

            // Assert
            Assert.Equal(true, DataTables.AspNet.WebApi2.Configuration.Options.IsRequestAdditionalParametersEnabled);
            Assert.Equal(true, DataTables.AspNet.WebApi2.Configuration.Options.IsResponseAdditionalParametersEnabled);
            Assert.NotNull(modelBinder.ParseAdditionalParameters);
        }
        private System.Web.Http.Controllers.HttpControllerContext CreateControllerContext()
        {
            System.Web.Http.HttpConfiguration      config = new System.Web.Http.HttpConfiguration();
            System.Web.Http.Routing.IHttpRouteData route  = new System.Web.Http.Routing.HttpRouteData(new System.Web.Http.Routing.HttpRoute());
            System.Net.Http.HttpRequestMessage     req    = new System.Net.Http.HttpRequestMessage();
            req.Properties[System.Web.Http.Hosting.HttpPropertyKeys.HttpConfigurationKey] = config;
            req.Properties[System.Web.Http.Hosting.HttpPropertyKeys.HttpRouteDataKey]     = route;

            System.Web.Http.Controllers.HttpControllerContext context = new System.Web.Http.Controllers.HttpControllerContext(config, route, req);
            context.ControllerDescriptor = new System.Web.Http.Controllers.HttpControllerDescriptor(config, "MockController", typeof(System.Web.Http.ApiController));

            return(context);
        }
        public void RegistrationWithCustomBinder()
        {
            // Arrange
            var requestBinder = TestHelper.MockModelBinder();
            var httpConfig    = new System.Web.Http.HttpConfiguration();

            DataTables.AspNet.WebApi2.Configuration.RegisterDataTables(httpConfig, requestBinder);

            var modelBinder = System.Web.Http.GlobalConfiguration.Configuration.Services.GetServices(typeof(IModelBinder)).Cast <IModelBinder>().FirstOrDefault();

            // Assert
            Assert.Equal(requestBinder, modelBinder);
        }
예제 #20
0
        /// <summary>
        /// 初始化容器
        /// </summary>
        /// <param name="config"></param>
        /// <param name="func"></param>
        public static void Init(System.Web.Http.HttpConfiguration config, Func <ContainerBuilder, ContainerBuilder> func = null)
        {
            //新建容器构建器,用于注册组件和服务
            var builder = new ContainerBuilder();

            //注册组件
            MyBuild(builder);
            func?.Invoke(builder);
            //利用构建器创建容器
            Instance = builder.Build();

            //将AutoFac解析器设置为系统解析器
            config.DependencyResolver = new AutofacWebApiDependencyResolver(Instance);
        }
        public SpaHandler(AzureApplication httpApp, System.Web.Http.HttpConfiguration config)
            : base(config)
        {
            // TODO: A better job of matching that just grabbing the first segment
            firstSegments = System.Web.Routing.RouteTable.Routes
                            .Where(route => route is System.Web.Routing.Route)
                            .Select(route => route as System.Web.Routing.Route)
                            .Where(route => !route.Url.IsNullOrWhiteSpace())
                            .Select(
                route => route.Url.Split(new char[] { '/' }).First())
                            .ToArray();

            ExtractSpaFiles(httpApp);
        }
예제 #22
0
        public void UnitTestOptionsShouldWork()
        {
            ODataQueryOptionsController controller = new ODataQueryOptionsController();

            ODataQueryContext  context = new ODataQueryContext(GetEdmModel(new ODataConventionModelBuilder()), typeof(ODataQueryOptions_Todo), path: null);
            HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, "http://localhost/?$orderby=Name desc");

            System.Web.Http.HttpConfiguration configuration = new System.Web.Http.HttpConfiguration();
            configuration.EnableDependencyInjection();
            request.SetConfiguration(configuration);
            ODataQueryOptions <ODataQueryOptions_Todo> options = new ODataQueryOptions <ODataQueryOptions_Todo>(context, request);
            var result = controller.OptionsOnString(options);

            Assert.Equal("Test99", result);
        }
예제 #23
0
        public void UnitTestOptionsOfStringShouldWork()
        {
            ODataQueryOptionsController controller = new ODataQueryOptionsController();

            ODataQueryContext  context = new ODataQueryContext(new ODataConventionModelBuilder().GetEdmModel(), typeof(string), path: null);
            HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, "http://localhost/?$top=1");

            System.Web.Http.HttpConfiguration configuration = new System.Web.Http.HttpConfiguration();
            configuration.EnableDependencyInjection();
            request.SetConfiguration(configuration);
            ODataQueryOptions <string> options = new ODataQueryOptions <string>(context, request);
            var result = controller.OptionsWithString(options);

            Assert.Equal("One", result.List.Single());
        }
예제 #24
0
        public static WorkflowEngine CreateEngine(Credentials credentials)
        {
            Console.WriteLine("Loading Configuration");

            var workflowConfig = new FlowConfigurationManager();

            workflowConfig.SetCredentials(credentials);

            CloudConfigurationManager.Instance = (IConfigurationManager)workflowConfig;

            Console.WriteLine("Creating Edge Configuration");
            var flowConfig = new EdgeFlowConfiguration(CloudConfigurationManager.Instance as Microsoft.WindowsAzure.ResourceStack.Common.Services.AzureConfigurationManager);

            flowConfig.Initialize().Wait();
            flowConfig.EnsureInitialized();

            var httpConfig = new System.Web.Http.HttpConfiguration();

            httpConfig.Formatters = new System.Net.Http.Formatting.MediaTypeFormatterCollection();
            httpConfig.Formatters.Add(FlowJsonExtensions.JsonMediaTypeFormatter);

            var edgeEngine = new EdgeManagementEngine(flowConfig, httpConfig);

            edgeEngine.RegisterEdgeEnvironment().Wait();

            var dispatcher = new EdgeFlowJobsDispatcher(
                flowConfiguration: flowConfig,
                httpConfiguration: httpConfig);

            var callbackFactory = new FlowJobsCallbackFactory(
                flowConfiguration: flowConfig,
                httpConfiguration: httpConfig,
                requestPipeline: null);

            flowConfig.InitializeFlowJobCallbackConfiguration(callbackFactory);

            dispatcher.Start();
            dispatcher.ProvisionSystemJobs();

            Console.WriteLine("Registering Web Environment");
            var engine = new EdgeFlowWebManagementEngine(flowConfig, httpConfig);

            return(new WorkflowEngine()
            {
                Engine = engine,
                Config = flowConfig
            });
        }
예제 #25
0
        internal static void RegisterContainer(System.Web.Http.HttpConfiguration httpConfiguration)
        {
            var builder = new ContainerBuilder();

            builder.RegisterControllers(typeof(MvcApplication).Assembly);
            builder.RegisterApiControllers(typeof(MvcApplication).Assembly);
            builder.RegisterType <SqlRestaurantData>()
            .As <IRestaurantData>()
            .InstancePerRequest();
            builder.RegisterType <OdeToFoodDbContext>().InstancePerRequest();

            var container = builder.Build();

            DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
            httpConfiguration.DependencyResolver = new AutofacWebApiDependencyResolver(container);
        }
예제 #26
0
        // For more information on configuring authentication, please visit http://go.microsoft.com/fwlink/?LinkId=301864
        public void ConfigureAuth(IAppBuilder app, System.Web.Http.HttpConfiguration config)
        {
            // Must be the first to be set otherwise it won't work.
            app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);

            // Configure the db context and user manager to use a single instance per request
            app.CreatePerOwinContext(ApplicationDbContext.Create);
            app.CreatePerOwinContext <ApplicationUserManager>(ApplicationUserManager.Create);

            // Enable the application to use a cookie to store information for the signed in user
            // and to use a cookie to temporarily store information about a user logging in with a third party login provider
            app.UseCookieAuthentication(new CookieAuthenticationOptions());
            app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);

            // Configure the application for OAuth based flow
            PublicClientId = "self";
            OAuthOptions   = new OAuthAuthorizationServerOptions
            {
                TokenEndpointPath         = new PathString("/Token"),
                Provider                  = new ApplicationOAuthProvider(PublicClientId),
                AuthorizeEndpointPath     = new PathString("/api/Account/ExternalLogin"),
                AccessTokenExpireTimeSpan = TimeSpan.FromDays(14),
                AllowInsecureHttp         = true
            };

            // Enable the application to use bearer tokens to authenticate users
            app.UseOAuthBearerTokens(OAuthOptions);

            // Uncomment the following lines to enable logging in with third party login providers
            //app.UseMicrosoftAccountAuthentication(
            //    clientId: "",
            //    clientSecret: "");

            //app.UseTwitterAuthentication(
            //    consumerKey: "",
            //    consumerSecret: "");

            //app.UseFacebookAuthentication(
            //    appId: "",
            //    appSecret: "");

            //app.UseGoogleAuthentication(new GoogleOAuth2AuthenticationOptions()
            //{
            //    ClientId = "",
            //    ClientSecret = ""
            //});
        }
        public void DefaultRegistration()
        {
            // Arrange
            //var httpConfiguration = TestHelper.MockHttpConfiguration();
            var httpConfig = new System.Web.Http.HttpConfiguration();

            DataTables.AspNet.WebApi2.Configuration.RegisterDataTables(httpConfig);
            var modelBinder = System.Web.Http.GlobalConfiguration.Configuration.Services
                              .GetServices(typeof(IModelBinder))
                              .Cast <IModelBinder>()
                              .FirstOrDefault();

            // Assert
            Assert.NotNull(modelBinder);
            Assert.NotNull(modelBinder as IModelBinder);
            Assert.Null((modelBinder as ModelBinder).ParseAdditionalParameters);
        }
예제 #28
0
        /// <summary>
        /// 使用IOC
        /// </summary>
        /// <param name="app"></param>
        /// <param name="config"></param>
        /// <returns></returns>
        public static IContainer UseAutofac(this IAppBuilder app, System.Web.Http.HttpConfiguration config)
        {
            if (config == null)
            {
                throw new ArgumentNullException(nameof(config));
            }

            var builder  = new ContainerBuilder();
            var assembly = typeof(Startup).Assembly;

            builder.RegisterAssemblyModules(assembly);
            builder.RegisterApiControllers(assembly);
            var container = builder.Build();

            config.DependencyResolver = new AutofacWebApiDependencyResolver(container);
            GlobalConfiguration.Configuration.UseAutofacActivator(container);
            return(container);
        }
예제 #29
0
        public static IContainer Register(System.Web.Http.HttpConfiguration config)
        {
            var builder = new Autofac.ContainerBuilder();

            builder.RegisterModule(new Domain.Core.Modules.CoreModule());
            builder.RegisterModule(new Domain.Core.Modules.LogModule());

            builder.RegisterType <PrintProcessor>().As <IPrintProcessor>();

            builder.RegisterApiControllers(typeof(WebApiApplication).Assembly);

            var container = builder.Build();

            //Mvc & WebApi DependencyResolvers
            DependencyResolver.SetResolver(new Autofac.Integration.Mvc.AutofacDependencyResolver(container));
            config.DependencyResolver = new AutofacWebApiDependencyResolver(container);

            return(container);
        }
예제 #30
0
        public static void ConfigureSwagger(System.Web.Http.HttpConfiguration config)
        {
            // Use the custom ApiExplorer that applies constraints. This prevents
            // duplicate routes on /api and /tables from showing in the Swagger doc.
            config.Services.Replace(typeof(IApiExplorer), new MobileAppApiExplorer(config));
            config.EnableSwagger(c =>
            {
                c.SingleApiVersion("v1", "myService");

                // Tells the Swagger doc that any MobileAppController needs a
                // ZUMO-API-VERSION header with default 2.0.0
                c.OperationFilter <MobileAppHeaderFilter>();

                // Looks at attributes on properties to decide whether they are readOnly.
                // Right now, this only applies to the DatabaseGeneratedAttribute.
                c.SchemaFilter <MobileAppSchemaFilter>();
            })
            .EnableSwaggerUi();
        }
예제 #31
0
        public void Configuration(IAppBuilder app)
        {
            var httpConfig = new System.Web.Http.HttpConfiguration();


            var autofacContainer = new AutofacClass();
            var modules          = new List <Autofac.Module>();

            var container = autofacContainer.Configure(httpConfig, modules, null);

            app.UseAutofacMiddleware(container);

            app.UseAutofacMvc();
            app.UseAutofacWebApi(httpConfig);

            Task_Traking.App_Start.WebApiConfig.Register(httpConfig);

            app.UseWebApi(httpConfig);
        }
 public DependencyResolverExtensionsTests()
 {
     _config = new System.Web.Http.HttpConfiguration();
     _resolverMock = new Mock<IDependencyResolver>();
     CustomServices.Reset();
 }
 public void ConfigureShouldAddHandlerToHttpConfiguration()
 {
     var config = new System.Web.Http.HttpConfiguration();
     WebApiProfilerSettings.Configure(config);
     Assert.IsTrue(config.MessageHandlers.Any(x => x is ProfilerMessageHandler), "ProfilerMessageHandler was not found in MessageHandlers collection");
 }