public void Configuration(IAppBuilder app)
{
var logger = new Logger();
var container = CreateUnityContainer(logger);
logger.Info("Starting Israel Hiking Server.");
var config = new HttpConfiguration();
app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions
{
AccessTokenProvider = new OsmAccessTokenProvider(
container.Resolve<IHttpGatewayFactory>(),
container.Resolve<LruCache<string, TokenAndSecret>>(),
logger)
});
WebApiConfig.Register(config);
config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/html"));
config.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;
config.Formatters.JsonFormatter.SerializerSettings.PreserveReferencesHandling = Newtonsoft.Json.PreserveReferencesHandling.None;
config.Formatters.JsonFormatter.SerializerSettings.Converters.Add(new CoordinateConverter());
config.Formatters.JsonFormatter.SerializerSettings.Converters.Add(new GeometryConverter());
config.Formatters.JsonFormatter.SerializerSettings.Converters.Add(new FeatureCollectionConverter());
config.Formatters.JsonFormatter.SerializerSettings.Converters.Add(new FeatureConverter());
config.Formatters.JsonFormatter.SerializerSettings.Converters.Add(new AttributesTableConverter());
config.Formatters.JsonFormatter.SerializerSettings.Converters.Add(new ICRSObjectConverter());
config.Formatters.JsonFormatter.SerializerSettings.Converters.Add(new GeometryArrayConverter());
config.Formatters.JsonFormatter.SerializerSettings.Converters.Add(new EnvelopeConverter());
config.Services.Add(typeof(IExceptionLogger), logger);
config.DependencyResolver = new UnityResolver(container);
InitializeServices(container);
app.UseWebApi(config);
logger.Info("Israel Hiking Server is up and running.");
}