public void Execute()
        {
			var config = GlobalConfiguration.Configuration;

			var configBroadcaster = new WebApiConfigurationBroadcaster()
			{
				ModelBuilder = new ODataConventionModelBuilder(),
				RoutingConventions = ODataRoutingConventions.CreateDefault(),
				Routes = config.Routes
			};

			config.DependencyResolver = new AutofacWebApiDependencyResolver();

			config.Formatters.JsonFormatter.SerializerSettings.Formatting = Newtonsoft.Json.Formatting.Indented;
			config.Formatters.JsonFormatter.MediaTypeMappings.Add(new QueryStringMapping("format", "json", "application/json"));
			config.Formatters.XmlFormatter.MediaTypeMappings.Add(new QueryStringMapping("format", "xml", "application/xml"));

			var queryAttribute = new WebApiQueryableAttribute()
			{
				MaxTop = WebApiGlobal.MaxTop
			};
			config.EnableQuerySupport(queryAttribute);

			var corsAttribute = new EnableCorsAttribute("*", "*", "*", WebApiGlobal.Header.CorsExposed);
			config.EnableCors(corsAttribute);

			config.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always;

			//var configPublisher = EngineContext.Current.Resolve<IWebApiConfigurationPublisher>();
			var configPublisher = (IWebApiConfigurationPublisher)config.DependencyResolver.GetService(typeof(IWebApiConfigurationPublisher));
			configPublisher.Configure(configBroadcaster);

			//config.Services.Insert(typeof(ModelBinderProvider), 0,
			//	new SimpleModelBinderProvider(typeof(Address), new AddressModelBinder()));

			try
			{
				if (!config.Routes.ContainsKey(WebApiGlobal.RouteNameDefaultApi))
				{
					config.Routes.MapHttpRoute(WebApiGlobal.RouteNameDefaultApi, "api/{version}/{controller}/{id}",
						new { version = "v1", controller = "Home", id = RouteParameter.Optional });
				}
			}
			catch (Exception) { }

			try
			{
				if (!config.Routes.ContainsKey(WebApiGlobal.RouteNameDefaultOdata))
				{
					config.Routes.MapODataRoute(WebApiGlobal.RouteNameDefaultOdata, WebApiGlobal.MostRecentOdataPath,
						configBroadcaster.ModelBuilder.GetEdmModel(), new DefaultODataPathHandler(), configBroadcaster.RoutingConventions);
				}
			}
			catch (Exception) { }
        }
        public void Configure(WebApiConfigurationBroadcaster configData)
        {
            var m = configData.ModelBuilder;

            m.EntitySet<Address>(WebApiOdataEntitySet.Addresses);
            m.EntitySet<Category>(WebApiOdataEntitySet.Categories);
            m.EntitySet<Country>(WebApiOdataEntitySet.Countries);
            m.EntitySet<Currency>(WebApiOdataEntitySet.Currencies);
            m.EntitySet<Customer>(WebApiOdataEntitySet.Customers);
            m.EntitySet<DeliveryTime>(WebApiOdataEntitySet.DeliveryTimes);
            m.EntitySet<Discount>(WebApiOdataEntitySet.Discounts);
            m.EntitySet<Download>(WebApiOdataEntitySet.Downloads);
            m.EntitySet<GenericAttribute>(WebApiOdataEntitySet.GenericAttributes);
            m.EntitySet<Language>(WebApiOdataEntitySet.Languages);
            m.EntitySet<LocalizedProperty>(WebApiOdataEntitySet.LocalizedPropertys);
            m.EntitySet<Manufacturer>(WebApiOdataEntitySet.Manufacturers);
            m.EntitySet<OrderNote>(WebApiOdataEntitySet.OrderNotes);
            m.EntitySet<Order>(WebApiOdataEntitySet.Orders);
            m.EntitySet<OrderItem>(WebApiOdataEntitySet.OrderItems);
            m.EntitySet<PaymentMethod>(WebApiOdataEntitySet.PaymentMethods);
            m.EntitySet<Picture>(WebApiOdataEntitySet.Pictures);
            m.EntitySet<ProductAttribute>(WebApiOdataEntitySet.ProductAttributes);
            m.EntitySet<ProductBundleItem>(WebApiOdataEntitySet.ProductBundleItems);
            m.EntitySet<ProductCategory>(WebApiOdataEntitySet.ProductCategories);
            m.EntitySet<ProductManufacturer>(WebApiOdataEntitySet.ProductManufacturers);
            m.EntitySet<ProductPicture>(WebApiOdataEntitySet.ProductPictures);
            m.EntitySet<Product>(WebApiOdataEntitySet.Products);
            m.EntitySet<ProductSpecificationAttribute>(WebApiOdataEntitySet.ProductSpecificationAttributes);
            m.EntitySet<ProductTag>(WebApiOdataEntitySet.ProductTags);
            m.EntitySet<ProductVariantAttribute>(WebApiOdataEntitySet.ProductVariantAttributes);
            m.EntitySet<ProductVariantAttributeValue>(WebApiOdataEntitySet.ProductVariantAttributeValues);
            m.EntitySet<ProductVariantAttributeCombination>(WebApiOdataEntitySet.ProductVariantAttributeCombinations);
            m.EntitySet<QuantityUnit>(WebApiOdataEntitySet.QuantityUnits);
            m.EntitySet<RelatedProduct>(WebApiOdataEntitySet.RelatedProducts);
            m.EntitySet<ReturnRequest>(WebApiOdataEntitySet.ReturnRequests);
            m.EntitySet<Setting>(WebApiOdataEntitySet.Settings);
            m.EntitySet<Shipment>(WebApiOdataEntitySet.Shipments);
            m.EntitySet<ShipmentItem>(WebApiOdataEntitySet.ShipmentItems);
            m.EntitySet<ShippingMethod>(WebApiOdataEntitySet.ShippingMethods);
            m.EntitySet<SpecificationAttributeOption>(WebApiOdataEntitySet.SpecificationAttributeOptions);
            m.EntitySet<SpecificationAttribute>(WebApiOdataEntitySet.SpecificationAttributes);
            m.EntitySet<StateProvince>(WebApiOdataEntitySet.StateProvinces);
            m.EntitySet<Store>(WebApiOdataEntitySet.Stores);
            m.EntitySet<StoreMapping>(WebApiOdataEntitySet.StoreMappings);
            m.EntitySet<TierPrice>(WebApiOdataEntitySet.TierPrices);
            m.EntitySet<UrlRecord>(WebApiOdataEntitySet.UrlRecords);
            m.EntitySet<SyncMapping>(WebApiOdataEntitySet.SyncMappings);

            AddActionsToOrder(m.Entity<Order>());
            AddActionsToProduct(m.Entity<Product>());
        }
        public void Configure(WebApiConfigurationBroadcaster configData)
        {
            var providerTypes = _typeFinder.FindClassesOfType <IWebApiConfigurationProvider>(ignoreInactivePlugins: true);
            var providers     = new List <IWebApiConfigurationProvider>();

            foreach (var providerType in providerTypes)
            {
                var provider = Activator.CreateInstance(providerType) as IWebApiConfigurationProvider;
                providers.Add(provider);
            }

            providers = providers.OrderByDescending(x => x.Priority).ToList();
            providers.Each(x => x.Configure(configData));
        }
		public void Configure(WebApiConfigurationBroadcaster configData)
		{
			var providerTypes = _typeFinder.FindClassesOfType<IWebApiConfigurationProvider>(ignoreInactivePlugins: true);
			var providers = new List<IWebApiConfigurationProvider>();

			foreach (var providerType in providerTypes)
			{
				var provider = Activator.CreateInstance(providerType) as IWebApiConfigurationProvider;
				providers.Add(provider);
			}

			providers = providers.OrderByDescending(x => x.Priority).ToList();
			providers.Each(x => x.Configure(configData));
		}
        public void Configure(WebApiConfigurationBroadcaster configData)
        {
            var providerTypes = _typeFinder.FindClassesOfType<IWebApiConfigurationProvider>();
            var providers = new List<IWebApiConfigurationProvider>();

            foreach (var providerType in providerTypes)
            {
                if (!PluginManager.IsActivePluginAssembly(providerType.Assembly))
                {
                    continue;
                }

                var provider = Activator.CreateInstance(providerType) as IWebApiConfigurationProvider;
                providers.Add(provider);
            }

            providers = providers.OrderByDescending(x => x.Priority).ToList();
            providers.Each(x => x.Configure(configData));
        }
        public void Configure(WebApiConfigurationBroadcaster configData)
        {
            var providerTypes = _typeFinder.FindClassesOfType <IWebApiConfigurationProvider>();
            var providers     = new List <IWebApiConfigurationProvider>();

            foreach (var providerType in providerTypes)
            {
                if (!PluginManager.IsActivePluginAssembly(providerType.Assembly))
                {
                    continue;
                }

                var provider = Activator.CreateInstance(providerType) as IWebApiConfigurationProvider;
                providers.Add(provider);
            }

            providers = providers.OrderByDescending(x => x.Priority).ToList();
            providers.Each(x => x.Configure(configData));
        }