예제 #1
0
        protected override void UpdateConfiguration(WebRouteConfiguration configuration)
        {
            var controllers = new[]
            {
                typeof(CustomersController), typeof(OrdersController), typeof(PeopleController),
                typeof(CompaniesController), typeof(MetadataController)
            };

            configuration.AddControllers(controllers);

            IEdmModel model = AlternateKeysEdmModel.GetEdmModel();

            configuration.Routes.Clear();

            configuration.Count().Filter().OrderBy().Expand().MaxTop(null);

            configuration.MapODataServiceRoute("odata", "odata",
                                               builder =>
                                               builder.AddService(ServiceLifetime.Singleton, sp => model)
                                               .AddService <IEnumerable <IODataRoutingConvention> >(ServiceLifetime.Singleton, sp =>
                                                                                                    ODataRoutingConventions.CreateDefaultWithAttributeRouting("odata", configuration))
                                               .AddService <ODataUriResolver>(ServiceLifetime.Singleton, sp => new AlternateKeysODataUriResolver(model)));

            configuration.EnsureInitialized();
        }
예제 #2
0
        protected override void UpdateConfiguration(WebRouteConfiguration configuration)
        {
            var controllers = new[] { typeof(DCustomersController), typeof(MetadataController), typeof(EfCustomersController) };

            configuration.AddControllers(controllers);

            TimeZoneInfo timeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time"); // -8:00

            configuration.SetTimeZoneInfo(timeZoneInfo);

            configuration.Routes.Clear();
            configuration.Count().Filter().OrderBy().Expand().MaxTop(null);
            configuration.MapODataServiceRoute(
                routeName: "convention",
                routePrefix: "convention",
                model: DateAndTimeOfDayEdmModel.GetConventionModel(configuration));

            configuration.MapODataServiceRoute(
                routeName: "explicit",
                routePrefix: "explicit",
                model: DateAndTimeOfDayEdmModel.GetExplicitModel(),
                batchHandler: configuration.CreateDefaultODataBatchHandler());

            configuration.EnsureInitialized();
        }
예제 #3
0
        protected override void UpdateConfiguration(WebRouteConfiguration configuration)
        {
            var controllers = new[] { typeof(EmployeesController), typeof(MetadataController) };

            configuration.AddControllers(controllers);

            configuration.Routes.Clear();

            IEdmModel edmModel = UnBoundFunctionEdmModel.GetEdmModel(configuration);
            DefaultODataPathHandler pathHandler = new DefaultODataPathHandler();

            // only with attribute routing & metadata routing convention
            IList <IODataRoutingConvention> routingConventions = new List <IODataRoutingConvention>
            {
                configuration.CreateAttributeRoutingConvention(),
                new MetadataRoutingConvention()
            };

            configuration.Count().Filter().OrderBy().Expand().MaxTop(null);
            configuration.MapODataServiceRoute("AttributeRouting", "AttributeRouting", edmModel, pathHandler, routingConventions);

            // only with convention routing
            configuration.MapODataServiceRoute("ConventionRouting", "ConventionRouting", edmModel, pathHandler, ODataRoutingConventions.CreateDefault());
            configuration.EnsureInitialized();
        }
예제 #4
0
        protected override void UpdateConfiguration(WebRouteConfiguration configuration)
        {
            var controllers = new[] { typeof(TradesController) };

            configuration.AddControllers(controllers);

            configuration.Count().Filter().OrderBy().Expand().MaxTop(null);
            configuration.MapODataServiceRoute("OData", "", GetModel(configuration));
            configuration.EnsureInitialized();
        }
예제 #5
0
        protected override void UpdateConfiguration(WebRouteConfiguration configuration)
        {
            var controllers = new[] { typeof(SingersController), typeof(AlbumsController), typeof(MetadataController) };

            configuration.AddControllers(controllers);

            configuration.Count().Filter().OrderBy().Expand().MaxTop(null);
            configuration.MapODataServiceRoute("clientTest", "clientTest", DollarIdEdmModel.GetModel(configuration));
            configuration.EnsureInitialized();
        }
예제 #6
0
        protected override void UpdateConfiguration(WebRouteConfiguration configuration)
        {
            var controllers = new[] { typeof(DLManagersController), typeof(DLEmployeesController) };

            configuration.AddControllers(controllers);

            configuration.Routes.Clear();
            configuration.Count().Filter().OrderBy().Expand().MaxTop(null).Select();
            configuration.MapODataServiceRoute("OData", "odata", DollarLevelsEdmModel.GetConventionModel(configuration));
            configuration.EnsureInitialized();
        }
예제 #7
0
        protected override void UpdateConfiguration(WebRouteConfiguration configuration)
        {
            var controllers = new[] { typeof(WeatherForecastController), typeof(MetadataController) };

            configuration.AddControllers(controllers);

            configuration.Routes.Clear();
            configuration.Count().Filter().OrderBy().Expand().MaxTop(null).Select();
            configuration.MapODataServiceRoute("odata", "odata", EnumsEdmModel.GetEnumAliasModel(configuration));
            configuration.EnsureInitialized();
        }
예제 #8
0
        protected override void UpdateConfiguration(WebRouteConfiguration configuration)
        {
            var controllers = new[] { typeof(EmployeesController), typeof(MetadataController) };

            configuration.AddControllers(controllers);

            configuration.Routes.Clear();
            configuration.Count().Filter().OrderBy().Expand().MaxTop(null).Select().SkipToken();
            configuration.MapODataServiceRoute("OData", "odata", LowerCamelCaseEdmModel.GetConventionModel(configuration));
            configuration.EnsureInitialized();
        }
예제 #9
0
        protected override void UpdateConfiguration(WebRouteConfiguration configuration)
        {
            var controllers = new[] { typeof(EmployeesController), typeof(MetadataController) };

            configuration.AddControllers(controllers);

            configuration.Routes.Clear();
            configuration.Count().Filter().OrderBy().Expand().MaxTop(null).Select();
            configuration.MapODataServiceRoute("convention", "convention", AnnotationEdmModel.GetConventionModel(configuration));
            configuration.MapODataServiceRoute("explicit", "explicit", AnnotationEdmModel.GetExplicitModel(configuration), new DefaultODataPathHandler(), ODataRoutingConventions.CreateDefault());
            configuration.EnsureInitialized();
        }
        protected override void UpdateConfiguration(WebRouteConfiguration configuration)
        {
            var controllers = new[] { typeof(MetadataController), typeof(InheritanceCustomersController) };

            configuration.AddControllers(controllers);

            configuration.Routes.Clear();

            configuration.MapODataServiceRoute(routeName: "odata", routePrefix: "odata", model: GetEdmModel(configuration));

            configuration.EnsureInitialized();
        }
예제 #11
0
        protected override void UpdateConfiguration(WebRouteConfiguration configuration)
        {
            var controllers = new[] { typeof(MetadataController), typeof(DateAndTimeOfDayModelsController) };

            configuration.AddControllers(controllers);

            configuration.Routes.Clear();
            configuration.Count().Filter().OrderBy().Expand().MaxTop(null).Select();
            configuration.MapODataServiceRoute("odata", "odata", BuildEdmModel(configuration));
            configuration.EnsureInitialized();
            CreateDatabase();
        }
예제 #12
0
        protected override void UpdateConfiguration(WebRouteConfiguration configuration)
        {
            var controllers = new[] { typeof(HeroesController) };

            configuration.AddControllers(controllers);

            configuration.Routes.Clear();
            configuration.Count().Filter().OrderBy().Expand().MaxTop(null);
            configuration.MapODataServiceRoute(
                routeName: "odata",
                routePrefix: "odata",
                model: CountEdmModel.GetModel(configuration));

            configuration.EnsureInitialized();
        }
예제 #13
0
        protected override void UpdateConfiguration(WebRouteConfiguration configuration)
        {
            var controllers = new[] { typeof(SwaggerController), typeof(MetadataController) };

            configuration.AddControllers(controllers);

            configuration.Routes.Clear();
            configuration.InsertFormatter(FormatterFactory.CreateJson(configuration));

            IODataPathHandler handler = new SwaggerPathHandler();
            IList <IODataRoutingConvention> conventions = ODataRoutingConventions.CreateDefault();

            conventions.Insert(0, new SwaggerRoutingConvention());

            configuration.MapODataServiceRoute("odata", "odata", GetEdmModel(configuration), handler, conventions);
            configuration.EnsureInitialized();
        }
예제 #14
0
        protected override void UpdateConfiguration(WebRouteConfiguration configuration)
        {
            var controllers = new[] { typeof(EfPeopleController) };

            configuration.AddControllers(controllers);

            IEdmModel model = DateAndTimeOfDayEdmModel.BuildEfPersonEdmModel();

            // TODO: modify it after implement the DI in Web API.
            // model.SetPayloadValueConverter(new MyConverter());

            configuration.Routes.Clear();
            configuration.Count().Filter().OrderBy().Expand().MaxTop(null);
            configuration.MapODataServiceRoute("odata", "odata", model);

            configuration.EnsureInitialized();
        }
예제 #15
0
        protected override void UpdateConfiguration(WebRouteConfiguration configuration)
        {
            var controllers = new[] { typeof(ProductsController), typeof(MetadataController) };

            configuration.AddControllers(controllers);

            configuration.Routes.Clear();
            configuration.Count().Filter().OrderBy().Expand().MaxTop(null);

            IEdmModel edmModel = CastEdmModel.GetEdmModel(configuration);

            foreach (string dataSourceType in dataSourceTypes)
            {
                configuration.MapODataServiceRoute(dataSourceType, dataSourceType, edmModel);
            }
            configuration.EnsureInitialized();
        }
예제 #16
0
        protected override void UpdateConfiguration(WebRouteConfiguration configuration)
        {
            var controllers = new[]
            {
                typeof(ProductsController), typeof(ODataV3Stack.ODataMetadataController),
                typeof(ProductsV2Controller), typeof(ODataV4Stack.MetadataController)
            };

            configuration.AddControllers(controllers);

            configuration.Routes.Clear();

            ODataV3.ODataV3WebApiConfig.Register(configuration);
            ODataV4.ODataV4WebApiConfig.Register(configuration);

            configuration.EnsureInitialized();
        }
        protected override void UpdateConfiguration(WebRouteConfiguration configuration)
        {
            var controllers = new[] { typeof(CustomersController), typeof(OrdersController), typeof(MetadataController) };

            configuration.AddControllers(controllers);

            configuration.Routes.Clear();

            configuration.MapODataServiceRoute("odata", "odata",
                                               builder =>
                                               builder.AddService(ServiceLifetime.Singleton, sp => UriParserExtenstionEdmModel.GetEdmModel(configuration))
                                               .AddService <IEnumerable <IODataRoutingConvention> >(ServiceLifetime.Singleton, sp =>
                                                                                                    ODataRoutingConventions.CreateDefaultWithAttributeRouting("odata", configuration))
                                               .AddService <ODataUriResolver>(ServiceLifetime.Singleton, sp => new ODataUriResolver()));

            configuration.EnsureInitialized();
        }
예제 #18
0
        protected override void UpdateConfiguration(WebRouteConfiguration configuration)
        {
            var controllers = new[] {
                typeof(ConventionCustomersController),
                typeof(MetadataController)
            };

            configuration.AddControllers(controllers);

            configuration.Routes.Clear();
            configuration.Count().Filter().OrderBy().Expand().MaxTop(null).Select();

            ODataConventionModelBuilder builder = configuration.CreateConventionModelBuilder();

            configuration.MapODataServiceRoute("unboundFunctionConvention", "odata", UnboundFunctionEdmModel.GetEdmModel(builder));

            configuration.EnsureInitialized();
        }
        protected override void UpdateConfiguration(WebRouteConfiguration configuration)
        {
            var controllers = new[] { typeof(WindowsController), typeof(MetadataController) };
            configuration.AddControllers(controllers);

            configuration.Routes.Clear();
            configuration.Count().Filter().OrderBy().Expand().MaxTop(null).Select();
            configuration
                .MapODataServiceRoute(routeName: "convention",
                    routePrefix: "convention",
                    model: ComplexTypeInheritanceEdmModels.GetConventionModel());

            configuration
                .MapODataServiceRoute(routeName: "explicit",
                    routePrefix: "explicit",
                    model: ComplexTypeInheritanceEdmModels.GetExplicitModel(),
                    batchHandler: configuration.CreateDefaultODataBatchHandler());

            configuration.EnsureInitialized();
        }
예제 #20
0
        protected override void UpdateConfiguration(WebRouteConfiguration configuration)
        {
            var controllers = new[] { typeof(ForeignKeyCustomersController),
                                      typeof(ForeignKeyOrdersController),
                                      typeof(ForeignKeyCustomersNoCascadeController),
                                      typeof(ForeignKeyOrdersNoCascadeController),
                                      typeof(MetadataController) };

            configuration.AddControllers(controllers);

            configuration.Routes.Clear();
            configuration.Count().Filter().OrderBy().Expand().MaxTop(null);
            configuration.MapODataServiceRoute(routeName: "explicit", routePrefix: "explicit",
                                               model: ForeignKeyEdmModel.GetExplicitModel(foreignKey: true));

            configuration.MapODataServiceRoute(routeName: "convention", routePrefix: "convention",
                                               model: ForeignKeyEdmModel.GetConventionModel(configuration));

            configuration.MapODataServiceRoute(routeName: "noncascade", routePrefix: "noncascade",
                                               model: ForeignKeyEdmModel.GetExplicitModel(foreignKey: false));

            configuration.EnsureInitialized();
        }
예제 #21
0
        protected override void UpdateConfiguration(WebRouteConfiguration configuration)
        {
            var controllers = new[] { typeof(BaseAddressFactoryModelsController) };

            configuration.AddControllers(controllers);
            var model = GetEdmModel(configuration);

            configuration.Routes.Clear();
            configuration.MapODataServiceRoute("odata", "odata", model);
            configuration.EnsureInitialized();

            ServicesContainer       services           = configuration.Services;
            IHttpControllerSelector controllerSelector = services.GetHttpControllerSelector();
            var controllerMappings = controllerSelector.GetControllerMapping().Values;

            foreach (var c in controllerMappings)
            {
                var odataFormatter = c.Configuration.Formatters.OfType <ODataMediaTypeFormatter>();
                foreach (var f in odataFormatter)
                {
                    f.BaseAddressFactory = (m) => new Uri("http://foo.bar/", UriKind.Absolute);
                }
            }
        }