/// <summary>
        /// Configures the Web API.
        /// </summary>
        /// <param name="builder">
        /// The <see cref="IAppBuilder" /> instance.
        /// </param>
        /// <param name="container">
        /// The <see cref="IContainer" /> instance.
        /// </param>
        public static void Configure(IAppBuilder builder, IContainer container)
        {
            if (builder == null)
            {
                throw new ArgumentNullException("builder");
            }

            if (container == null)
            {
                throw new ArgumentNullException("container");
            }

            var config = new HttpConfiguration()
                         {
                             DependencyResolver = new AutofacWebApiDependencyResolver(container),
                         };

            // Routes
            config.MapHttpAttributeRoutes();

            // HAL
            config.ConfigHal();

            // Swagger
            config.ConfigSwagger();

            builder.UseWebApi(config);
        }
        /// <summary>
        /// Configures the Web API.
        /// </summary>
        /// <param name="builder">
        /// The <see cref="IAppBuilder" /> instance.
        /// </param>
        /// <exception cref="ArgumentNullException">
        /// Throws when either <c>builder</c> or <c>container</c> is null.
        /// </exception>
        public static void Configure(IAppBuilder builder)
        {
            if (builder == null)
            {
                throw new ArgumentNullException("builder");
            }

            var config = new HttpConfiguration();

            config.MapHttpAttributeRoutes();

            config.ConfigHal();

            builder.UseWebApi(config);
        }
        /// <summary>
        /// Configures the Web API.
        /// </summary>
        /// <param name="builder">
        /// The <see cref="IAppBuilder" /> instance.
        /// </param>
        /// <param name="container">
        /// The <see cref="IContainer" /> instance.
        /// </param>
        /// <exception cref="ArgumentNullException">
        /// Throws when either <c>builder</c> or <c>container</c> is null.
        /// </exception>
        public static void Configure(IAppBuilder builder, IContainer container)
        {
            if (builder == null)
            {
                throw new ArgumentNullException("builder");
            }

            var config = new HttpConfiguration()
                         {
                             DependencyResolver = new AutofacWebApiDependencyResolver(container),
                         };

            config.MapHttpAttributeRoutes();

            config.ConfigHal();
            config.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();

            config.ConfigSwagger();

            builder.UseWebApi(config);
        }