/// <summary>
        /// Starts the web API.
        /// </summary>
        /// <param name="factory">The factory to use.</param>
        /// <param name="options">The options to use.</param>
        public void StartWebApi(WebApiServerFactory factory, WebApiOptions options)
        {
            Log.Info("Starting web API server...");
            var config = new HttpSelfHostConfiguration(options.BaseEndpoint);

            var json = config.Formatters.JsonFormatter;
            json.SerializerSettings.NullValueHandling = NullValueHandling.Ignore;
            json.SerializerSettings.Converters.Add(new StringEnumConverter());
            json.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();

            config.Routes.MapHttpRoute("Project", "api/{controller}/{project}/{action}/{id}", new { action = "index", id = RouteParameter.Optional }, new { controller = "build|project" });
            config.Routes.MapHttpRoute("Default", "api/{controller}/{action}/{id}", new { action = "index", id = RouteParameter.Optional });
            config.DependencyResolver = new ScopeContainer(factory);
            config.Formatters.Remove(config.Formatters.XmlFormatter);
            this.apiServer = new HttpSelfHostServer(config);
            apiServer.OpenAsync().Wait();
            Log.Info("...web API server started ({0})", options.BaseEndpoint);
        }
        /// <summary>
        /// Starts the web API.
        /// </summary>
        /// <param name="factory">The factory to use.</param>
        /// <param name="options">The options to use.</param>
        public void StartWebApi(WebApiServerFactory factory, WebApiOptions options)
        {
            Log.Info("Starting web API server...");
            var config = new HttpSelfHostConfiguration(options.BaseEndpoint);

            var json = config.Formatters.JsonFormatter;

            json.SerializerSettings.NullValueHandling = NullValueHandling.Ignore;
            json.SerializerSettings.Converters.Add(new StringEnumConverter());
            json.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();

            config.Routes.MapHttpRoute("Project", "api/{controller}/{project}/{action}/{id}", new { action = "index", id = RouteParameter.Optional }, new { controller = "build|project" });
            config.Routes.MapHttpRoute("Default", "api/{controller}/{action}/{id}", new { action = "index", id = RouteParameter.Optional });
            config.DependencyResolver = new ScopeContainer(factory);
            config.Formatters.Remove(config.Formatters.XmlFormatter);
            this.apiServer = new HttpSelfHostServer(config);
            apiServer.OpenAsync().Wait();
            Log.Info("...web API server started ({0})", options.BaseEndpoint);
        }