示例#1
0
        /// <summary>	Registers the dynamic. </summary>
        ///
        /// <param name="config">	The configuration. </param>
        /// <param name="server">	The server. </param>
        public static async void RegisterDynamic(HttpConfiguration config, HttpServer server)
        {
            ODataRoute odataRoute = await config.MapRestierRoute <DynamicApi>(
                "DynamicApi", "api/Dynamic",
                new RestierBatchHandler(server));

            //for overriding standart metadata class
            //System.Web.OData.MetadataController
            odataRoute.PathRouteConstraint.RoutingConventions.Add(new MediadataRoutingConvention());

            // Register an Action selector that can include template parameters in the name
            IHttpActionSelector actionSelectorService = config.Services.GetActionSelector();

            config.Services.Replace(typeof(IHttpActionSelector), new DynamicODataActionSelector(actionSelectorService));
            // Register an Action invoker that can include template parameters in the name
            IHttpActionInvoker actionInvokerService = config.Services.GetActionInvoker();

            config.Services.Replace(typeof(IHttpActionInvoker), new DynamicODataActionInvoker(actionInvokerService));
            // Register an Exception handler that can include template parameters in the name
            IExceptionHandler exceptionHandler = config.Services.GetExceptionHandler();

            config.Services.Replace(typeof(IExceptionHandler), new DynamicExceptionHandler(exceptionHandler));

            // Register for Dynamic Actions
            xlsConverter.Program.ConfigureDynamicActions(config);
        }
示例#2
0
        private static void CreateActionInvokerTracer(HttpConfiguration configuration, ITraceWriter traceWriter)
        {
            IHttpActionInvoker      invoker = configuration.ServiceResolver.GetService(typeof(IHttpActionInvoker)) as IHttpActionInvoker;
            HttpActionInvokerTracer tracer  = new HttpActionInvokerTracer(invoker, traceWriter);

            configuration.ServiceResolver.SetService(typeof(IHttpActionInvoker), tracer);
        }
示例#3
0
        private static void CreateActionInvokerTracer(HttpConfiguration configuration, ITraceWriter traceWriter)
        {
            IHttpActionInvoker      invoker = configuration.Services.GetActionInvoker();
            HttpActionInvokerTracer tracer  = new HttpActionInvokerTracer(invoker, traceWriter);

            configuration.Services.Replace(typeof(IHttpActionInvoker), tracer);
        }
        public HttpActionInvokerTracer(IHttpActionInvoker innerInvoker, ITraceWriter traceWriter)
        {
            Contract.Assert(innerInvoker != null);
            Contract.Assert(traceWriter != null);

            _innerInvoker = innerInvoker;
            _traceWriter  = traceWriter;
        }
        public HttpActionInvokerTracer(IHttpActionInvoker innerInvoker, ITraceWriter traceWriter)
        {
            Contract.Assert(innerInvoker != null);
            Contract.Assert(traceWriter != null);

            _innerInvoker = innerInvoker;
            _traceWriter = traceWriter;
        }
示例#6
0
        private static void CreateActionInvokerTracer(HttpConfiguration configuration, ITraceWriter traceWriter)
        {
            IHttpActionInvoker invoker = GetService <IHttpActionInvoker>(configuration.Services);

            if (invoker != null && !(invoker is HttpActionInvokerTracer))
            {
                HttpActionInvokerTracer tracer = new HttpActionInvokerTracer(invoker, traceWriter);
                configuration.Services.Replace(typeof(IHttpActionInvoker), tracer);
            }
        }
示例#7
0
        public void Inner_Property_On_HttpActionInvokerTracer_Returns_IHttpActionInvoker()
        {
            // Arrange
            IHttpActionInvoker      expectedInner    = new Mock <IHttpActionInvoker>().Object;
            HttpActionInvokerTracer productUnderTest = new HttpActionInvokerTracer(expectedInner, new TestTraceWriter());

            // Act
            IHttpActionInvoker actualInner = productUnderTest.Inner;

            // Assert
            Assert.Same(expectedInner, actualInner);
        }
示例#8
0
        public void Decorator_GetInner_On_HttpActionInvokerTracer_Returns_IHttpActionInvoker()
        {
            // Arrange
            IHttpActionInvoker      expectedInner    = new Mock <IHttpActionInvoker>().Object;
            HttpActionInvokerTracer productUnderTest = new HttpActionInvokerTracer(expectedInner, new TestTraceWriter());

            // Act
            IHttpActionInvoker actualInner = Decorator.GetInner(productUnderTest as IHttpActionInvoker);

            // Assert
            Assert.Same(expectedInner, actualInner);
        }
        private void Initialize()
        {
            // Look for attribute to provide specialized information for this controller type
            HttpControllerConfigurationAttribute controllerConfig =
                _controllerType.GetCustomAttributes <HttpControllerConfigurationAttribute>(inherit: true).FirstOrDefault();

            // If we find attribute then first ask dependency resolver and if we get null then create it ourselves
            if (controllerConfig != null)
            {
                if (controllerConfig.HttpControllerActivator != null)
                {
                    _controllerActivator = GetService <IHttpControllerActivator>(_configuration, controllerConfig.HttpControllerActivator);
                }

                if (controllerConfig.HttpActionSelector != null)
                {
                    _actionSelector = GetService <IHttpActionSelector>(_configuration, controllerConfig.HttpActionSelector);
                }

                if (controllerConfig.HttpActionInvoker != null)
                {
                    _actionInvoker = GetService <IHttpActionInvoker>(_configuration, controllerConfig.HttpActionInvoker);
                }

                if (controllerConfig.ActionValueBinder != null)
                {
                    _actionValueBinder = GetService <IActionValueBinder>(_configuration, controllerConfig.ActionValueBinder);
                }
            }

            // For everything still null we call the dependency resolver as normal.
            if (_controllerActivator == null)
            {
                _controllerActivator = Configuration.ServiceResolver.GetHttpControllerActivator();
            }

            if (_actionSelector == null)
            {
                _actionSelector = Configuration.ServiceResolver.GetActionSelector();
            }

            if (_actionInvoker == null)
            {
                _actionInvoker = Configuration.ServiceResolver.GetActionInvoker();
            }

            if (_actionValueBinder == null)
            {
                _actionValueBinder = Configuration.ServiceResolver.GetActionValueBinder();
            }
        }
        public MediaDataControllerTests()
        {
            if (ConfigurationManager.AppSettings["TestServiceURL"] != null)
            {
                testServiceURL = ConfigurationManager.AppSettings["TestServiceURL"];
            }

            if (string.IsNullOrEmpty(testServiceURL))
            {
                testServiceURL = DynamicControllerTests.cDefaultBaseURL;
                var configuration = new HttpConfiguration();
                Task <System.Web.OData.Routing.ODataRoute> odataRoute = configuration.MapRestierRoute <DynamicApi>("DynamicApi", "DynamicApi");
                odataRoute.Wait();
                odataRoute.Result.PathRouteConstraint.RoutingConventions.Add(new ODataRestierDynamic.DynamicFactory.MediadataRoutingConvention());

                // Register an Action selector that can include template parameters in the name
                IHttpActionSelector actionSelectorService = configuration.Services.GetActionSelector();
                configuration.Services.Replace(typeof(IHttpActionSelector), new DynamicODataActionSelector(actionSelectorService));
                // Register an Action invoker that can include template parameters in the name
                IHttpActionInvoker actionInvokerService = configuration.Services.GetActionInvoker();
                configuration.Services.Replace(typeof(IHttpActionInvoker), new DynamicODataActionInvoker(actionInvokerService));

                client = new HttpClient(new HttpServer(configuration));
            }
            else
            {
                var handler = new HttpClientHandler {
                    UseDefaultCredentials = true
                };
                client = new HttpClient(handler);
            }

            if (!testServiceURL.EndsWith("/"))
            {
                testServiceURL += "/";
            }
        }
示例#11
0
 public DebugActionInvoker(IHttpActionInvoker httpActionInvoker)
 {
     // TODO: Complete member initialization
     this.httpActionInvoker = httpActionInvoker;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="ODataActionSelector" /> class.
 /// </summary>
 /// <param name="innerInvoker">The inner controller selector to call.</param>
 public DynamicODataActionInvoker(IHttpActionInvoker innerInvoker)
 {
     _innerInvoker = innerInvoker;
 }
示例#13
0
 public InspectActionInvoker(IHttpActionInvoker innerInvoker)
 {
     _innerInvoker = innerInvoker;
 }
 public InspectActionInvoker(IHttpActionInvoker delegating)
 {
     _delegating = delegating;
 }
 public SuperscribeActionInvokerAdapter(IHttpActionInvoker baseInvoker)
 {
     this.baseInvoker = baseInvoker;
 }
 public DebugActionInvoker(IHttpActionInvoker httpActionInvoker)
 {
     // TODO: Complete member initialization
     this.httpActionInvoker = httpActionInvoker;
 }
示例#17
0
 public SuperscribeActionInvokerAdapter(IHttpActionInvoker baseInvoker)
 {
     this.baseInvoker = baseInvoker;
 }
示例#18
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ODataActionSelector" /> class.
 /// </summary>
 /// <param name="innerInvoker">The inner controller selector to call.</param>
 public DynamicODataActionInvoker(IHttpActionInvoker innerInvoker)
 {
     _innerInvoker = innerInvoker;
 }
 public HttpActionInvokerTracer(IHttpActionInvoker innerInvoker, ITraceWriter traceWriter)
 {
     _innerInvoker = innerInvoker;
     _traceWriter = traceWriter;
 }
示例#20
0
 public InspectActionInvoker(IHttpActionInvoker innerInvoker)
 {
     _innerInvoker = innerInvoker;
 }
示例#21
0
 public HttpActionInvokerTracer(IHttpActionInvoker innerInvoker, ITraceWriter traceWriter)
 {
     _innerInvoker = innerInvoker;
     _traceWriter  = traceWriter;
 }