实例介绍
《ASP.NET Web API 2 开发秘籍示例代码全解析》提供了从《ASP.NET Web API 2: Recipes》一书中精选的示例代码,旨在帮助开发者深入理解和掌握 ASP.NET Web API 2 的开发技巧。
本文内容覆盖了从将 ASP.NET Web API 集成到 MVC 和 Web Forms 应用,到自托管、路由配置、内容协商与媒体类型处理,再到异常处理、跨域通信、依赖注入以及安全性等多个关键领域。通过逐章解读,你将学会如何有效地使用 ASP.NET Web API 2 构建高效、可靠的 Web API 服务。
章节亮点包括:
- 在 MVC 和 Web Forms 应用中添加 ASP.NET Web API
- 自托管与在 Azure 中托管 Web API
- 路由配置技巧及其优化
- 内容协商与自定义媒体类型格式器
- 异常处理、日志记录与 API 文档生成
- 使用 JSONP、CORS 实现跨域请求
- 集成 SignalR 和 WebSocket 支持实时通信
- 依赖注入在 ASP.NET Web API 中的应用
- 增强 Web API 安全性的策略
- 使用单元测试和集成测试确保 API 质量
本文适合有一定 ASP.NET 开发经验的程序员阅读,特别是那些希望通过实际案例学习如何设计和实现高质量 Web API 服务的开发者。
【实例截图】
【核心代码】
文件清单
└── apress-recipes-webapi-02f05df641cbd784538ce689d41a13b146a0cb92
├── Chapter 01
│ ├── 1-1
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App_Start
│ │ │ │ ├── BundleConfig.cs
│ │ │ │ ├── FilterConfig.cs
│ │ │ │ ├── RouteConfig.cs
│ │ │ │ └── WebApiConfig.cs
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── Content
│ │ │ │ ├── bootstrap.css
│ │ │ │ ├── bootstrap.min.css
│ │ │ │ └── Site.css
│ │ │ ├── Controllers
│ │ │ │ ├── Mvc
│ │ │ │ │ └── BooksController.cs
│ │ │ │ └── WebApi
│ │ │ │ └── BooksController.cs
│ │ │ ├── favicon.ico
│ │ │ ├── fonts
│ │ │ │ ├── glyphicons-halflings-regular.eot
│ │ │ │ ├── glyphicons-halflings-regular.svg
│ │ │ │ ├── glyphicons-halflings-regular.ttf
│ │ │ │ └── glyphicons-halflings-regular.woff
│ │ │ ├── Global.asax
│ │ │ ├── Global.asax.cs
│ │ │ ├── Models
│ │ │ │ ├── Book.cs
│ │ │ │ └── Books.cs
│ │ │ ├── packages.config
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Scripts
│ │ │ │ ├── bootstrap.js
│ │ │ │ ├── bootstrap.min.js
│ │ │ │ ├── jquery-1.10.2.intellisense.js
│ │ │ │ ├── jquery-1.10.2.js
│ │ │ │ ├── jquery-1.10.2.min.js
│ │ │ │ ├── jquery-1.10.2.min.map
│ │ │ │ ├── jquery.validate.js
│ │ │ │ ├── jquery.validate.min.js
│ │ │ │ ├── jquery.validate.unobtrusive.js
│ │ │ │ ├── jquery.validate.unobtrusive.min.js
│ │ │ │ ├── jquery.validate-vsdoc.js
│ │ │ │ ├── modernizr-2.6.2.js
│ │ │ │ ├── _references.js
│ │ │ │ ├── respond.js
│ │ │ │ └── respond.min.js
│ │ │ ├── Views
│ │ │ │ ├── Books
│ │ │ │ │ ├── Details.cshtml
│ │ │ │ │ └── Index.cshtml
│ │ │ │ ├── Shared
│ │ │ │ │ └── _Layout.cshtml
│ │ │ │ ├── _ViewStart.cshtml
│ │ │ │ └── Web.config
│ │ │ ├── Web.config
│ │ │ ├── Web.Debug.config
│ │ │ └── Web.Release.config
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 1-2
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── About.aspx
│ │ │ ├── About.aspx.cs
│ │ │ ├── About.aspx.designer.cs
│ │ │ ├── Account
│ │ │ │ ├── Confirm.aspx
│ │ │ │ ├── Confirm.aspx.cs
│ │ │ │ ├── Confirm.aspx.designer.cs
│ │ │ │ ├── Forgot.aspx
│ │ │ │ ├── Forgot.aspx.cs
│ │ │ │ ├── Forgot.aspx.designer.cs
│ │ │ │ ├── Login.aspx
│ │ │ │ ├── Login.aspx.cs
│ │ │ │ ├── Login.aspx.designer.cs
│ │ │ │ ├── Manage.aspx
│ │ │ │ ├── Manage.aspx.cs
│ │ │ │ ├── Manage.aspx.designer.cs
│ │ │ │ ├── OpenAuthProviders.ascx
│ │ │ │ ├── OpenAuthProviders.ascx.cs
│ │ │ │ ├── OpenAuthProviders.ascx.designer.cs
│ │ │ │ ├── Register.aspx
│ │ │ │ ├── Register.aspx.cs
│ │ │ │ ├── Register.aspx.designer.cs
│ │ │ │ ├── RegisterExternalLogin.aspx
│ │ │ │ ├── RegisterExternalLogin.aspx.cs
│ │ │ │ ├── RegisterExternalLogin.aspx.designer.cs
│ │ │ │ ├── ResetPassword.aspx
│ │ │ │ ├── ResetPassword.aspx.cs
│ │ │ │ ├── ResetPassword.aspx.designer.cs
│ │ │ │ ├── ResetPasswordConfirmation.aspx
│ │ │ │ ├── ResetPasswordConfirmation.aspx.cs
│ │ │ │ ├── ResetPasswordConfirmation.aspx.designer.cs
│ │ │ │ └── Web.config
│ │ │ ├── App_Start
│ │ │ │ ├── BundleConfig.cs
│ │ │ │ ├── IdentityConfig.cs
│ │ │ │ ├── RouteConfig.cs
│ │ │ │ ├── Startup.Auth.cs
│ │ │ │ └── WebApiConfig.cs
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── Bundle.config
│ │ │ ├── Contact.aspx
│ │ │ ├── Contact.aspx.cs
│ │ │ ├── Contact.aspx.designer.cs
│ │ │ ├── Content
│ │ │ │ ├── bootstrap.css
│ │ │ │ ├── bootstrap.min.css
│ │ │ │ └── Site.css
│ │ │ ├── Controllers
│ │ │ │ └── BooksController.cs
│ │ │ ├── Default.aspx
│ │ │ ├── Default.aspx.cs
│ │ │ ├── Default.aspx.designer.cs
│ │ │ ├── favicon.ico
│ │ │ ├── fonts
│ │ │ │ ├── glyphicons-halflings-regular.eot
│ │ │ │ ├── glyphicons-halflings-regular.svg
│ │ │ │ ├── glyphicons-halflings-regular.ttf
│ │ │ │ └── glyphicons-halflings-regular.woff
│ │ │ ├── Global.asax
│ │ │ ├── Global.asax.cs
│ │ │ ├── Models
│ │ │ │ ├── Book.cs
│ │ │ │ ├── Books.cs
│ │ │ │ └── IdentityModels.cs
│ │ │ ├── packages.config
│ │ │ ├── Project_Readme.html
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Scripts
│ │ │ │ ├── bootstrap.js
│ │ │ │ ├── bootstrap.min.js
│ │ │ │ ├── jquery-1.10.2.intellisense.js
│ │ │ │ ├── jquery-1.10.2.js
│ │ │ │ ├── jquery-1.10.2.min.js
│ │ │ │ ├── jquery-1.10.2.min.map
│ │ │ │ ├── modernizr-2.6.2.js
│ │ │ │ ├── _references.js
│ │ │ │ ├── respond.js
│ │ │ │ ├── respond.min.js
│ │ │ │ └── WebForms
│ │ │ │ ├── DetailsView.js
│ │ │ │ ├── Focus.js
│ │ │ │ ├── GridView.js
│ │ │ │ ├── Menu.js
│ │ │ │ ├── MenuStandards.js
│ │ │ │ ├── MSAjax
│ │ │ │ │ ├── MicrosoftAjaxApplicationServices.js
│ │ │ │ │ ├── MicrosoftAjaxComponentModel.js
│ │ │ │ │ ├── MicrosoftAjaxCore.js
│ │ │ │ │ ├── MicrosoftAjaxGlobalization.js
│ │ │ │ │ ├── MicrosoftAjaxHistory.js
│ │ │ │ │ ├── MicrosoftAjax.js
│ │ │ │ │ ├── MicrosoftAjaxNetwork.js
│ │ │ │ │ ├── MicrosoftAjaxSerialization.js
│ │ │ │ │ ├── MicrosoftAjaxTimer.js
│ │ │ │ │ ├── MicrosoftAjaxWebForms.js
│ │ │ │ │ └── MicrosoftAjaxWebServices.js
│ │ │ │ ├── SmartNav.js
│ │ │ │ ├── TreeView.js
│ │ │ │ ├── WebForms.js
│ │ │ │ ├── WebParts.js
│ │ │ │ └── WebUIValidation.js
│ │ │ ├── Site.Master
│ │ │ ├── Site.Master.cs
│ │ │ ├── Site.Master.designer.cs
│ │ │ ├── Site.Mobile.Master
│ │ │ ├── Site.Mobile.Master.cs
│ │ │ ├── Site.Mobile.Master.designer.cs
│ │ │ ├── Startup.cs
│ │ │ ├── ViewSwitcher.ascx
│ │ │ ├── ViewSwitcher.ascx.cs
│ │ │ ├── ViewSwitcher.ascx.designer.cs
│ │ │ ├── Web.config
│ │ │ ├── Web.Debug.config
│ │ │ └── Web.Release.config
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 1-3
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App_Start
│ │ │ │ ├── BundleConfig.cs
│ │ │ │ ├── FilterConfig.cs
│ │ │ │ ├── RouteConfig.cs
│ │ │ │ └── WebApiConfig.cs
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── Areas
│ │ │ │ └── HelpPage
│ │ │ │ ├── ApiDescriptionExtensions.cs
│ │ │ │ ├── App_Start
│ │ │ │ │ └── HelpPageConfig.cs
│ │ │ │ ├── Controllers
│ │ │ │ │ └── HelpController.cs
│ │ │ │ ├── HelpPageAreaRegistration.cs
│ │ │ │ ├── HelpPageConfigurationExtensions.cs
│ │ │ │ ├── HelpPage.css
│ │ │ │ ├── ModelDescriptions
│ │ │ │ │ ├── CollectionModelDescription.cs
│ │ │ │ │ ├── ComplexTypeModelDescription.cs
│ │ │ │ │ ├── DictionaryModelDescription.cs
│ │ │ │ │ ├── EnumTypeModelDescription.cs
│ │ │ │ │ ├── EnumValueDescription.cs
│ │ │ │ │ ├── IModelDocumentationProvider.cs
│ │ │ │ │ ├── KeyValuePairModelDescription.cs
│ │ │ │ │ ├── ModelDescription.cs
│ │ │ │ │ ├── ModelDescriptionGenerator.cs
│ │ │ │ │ ├── ModelNameAttribute.cs
│ │ │ │ │ ├── ModelNameHelper.cs
│ │ │ │ │ ├── ParameterAnnotation.cs
│ │ │ │ │ ├── ParameterDescription.cs
│ │ │ │ │ └── SimpleTypeModelDescription.cs
│ │ │ │ ├── Models
│ │ │ │ │ └── HelpPageApiModel.cs
│ │ │ │ ├── SampleGeneration
│ │ │ │ │ ├── HelpPageSampleGenerator.cs
│ │ │ │ │ ├── HelpPageSampleKey.cs
│ │ │ │ │ ├── ImageSample.cs
│ │ │ │ │ ├── InvalidSample.cs
│ │ │ │ │ ├── ObjectGenerator.cs
│ │ │ │ │ ├── SampleDirection.cs
│ │ │ │ │ └── TextSample.cs
│ │ │ │ ├── Views
│ │ │ │ │ ├── Help
│ │ │ │ │ │ ├── Api.cshtml
│ │ │ │ │ │ ├── DisplayTemplates
│ │ │ │ │ │ │ ├── ApiGroup.cshtml
│ │ │ │ │ │ │ ├── CollectionModelDescription.cshtml
│ │ │ │ │ │ │ ├── ComplexTypeModelDescription.cshtml
│ │ │ │ │ │ │ ├── DictionaryModelDescription.cshtml
│ │ │ │ │ │ │ ├── EnumTypeModelDescription.cshtml
│ │ │ │ │ │ │ ├── HelpPageApiModel.cshtml
│ │ │ │ │ │ │ ├── ImageSample.cshtml
│ │ │ │ │ │ │ ├── InvalidSample.cshtml
│ │ │ │ │ │ │ ├── KeyValuePairModelDescription.cshtml
│ │ │ │ │ │ │ ├── ModelDescriptionLink.cshtml
│ │ │ │ │ │ │ ├── Parameters.cshtml
│ │ │ │ │ │ │ ├── Samples.cshtml
│ │ │ │ │ │ │ ├── SimpleTypeModelDescription.cshtml
│ │ │ │ │ │ │ └── TextSample.cshtml
│ │ │ │ │ │ ├── Index.cshtml
│ │ │ │ │ │ └── ResourceModel.cshtml
│ │ │ │ │ ├── Shared
│ │ │ │ │ │ └── _Layout.cshtml
│ │ │ │ │ ├── _ViewStart.cshtml
│ │ │ │ │ └── Web.config
│ │ │ │ └── XmlDocumentationProvider.cs
│ │ │ ├── Content
│ │ │ │ ├── bootstrap.css
│ │ │ │ ├── bootstrap.css.map
│ │ │ │ ├── bootstrap.min.css
│ │ │ │ ├── bootstrap-theme.css
│ │ │ │ ├── bootstrap-theme.css.map
│ │ │ │ ├── bootstrap-theme.min.css
│ │ │ │ └── Site.css
│ │ │ ├── Controllers
│ │ │ │ ├── FormController.cs
│ │ │ │ ├── HomeController.cs
│ │ │ │ └── UserController.cs
│ │ │ ├── favicon.ico
│ │ │ ├── fonts
│ │ │ │ ├── glyphicons-halflings-regular.eot
│ │ │ │ ├── glyphicons-halflings-regular.svg
│ │ │ │ ├── glyphicons-halflings-regular.ttf
│ │ │ │ └── glyphicons-halflings-regular.woff
│ │ │ ├── Global.asax
│ │ │ ├── Global.asax.cs
│ │ │ ├── Models
│ │ │ │ └── UserModel.cs
│ │ │ ├── packages.config
│ │ │ ├── Project_Readme.html
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Scripts
│ │ │ │ ├── bootstrap.js
│ │ │ │ ├── bootstrap.min.js
│ │ │ │ ├── jquery-2.1.0.intellisense.js
│ │ │ │ ├── jquery-2.1.0.js
│ │ │ │ ├── jquery-2.1.0.min.js
│ │ │ │ ├── jquery-2.1.0.min.map
│ │ │ │ ├── modernizr-2.7.2.js
│ │ │ │ ├── _references.js
│ │ │ │ ├── respond.js
│ │ │ │ ├── respond.matchmedia.addListener.js
│ │ │ │ ├── respond.matchmedia.addListener.min.js
│ │ │ │ └── respond.min.js
│ │ │ ├── Views
│ │ │ │ ├── Home
│ │ │ │ │ └── Index.cshtml
│ │ │ │ ├── Shared
│ │ │ │ │ ├── Error.cshtml
│ │ │ │ │ └── _Layout.cshtml
│ │ │ │ ├── _ViewStart.cshtml
│ │ │ │ └── Web.config
│ │ │ ├── Web.config
│ │ │ ├── Web.Debug.config
│ │ │ └── Web.Release.config
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 1-4
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App_Start
│ │ │ │ ├── BundleConfig.cs
│ │ │ │ ├── FilterConfig.cs
│ │ │ │ ├── RouteConfig.cs
│ │ │ │ └── WebApiConfig.cs
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── Areas
│ │ │ │ └── HelpPage
│ │ │ │ ├── ApiDescriptionExtensions.cs
│ │ │ │ ├── App_Start
│ │ │ │ │ └── HelpPageConfig.cs
│ │ │ │ ├── Controllers
│ │ │ │ │ └── HelpController.cs
│ │ │ │ ├── HelpPageAreaRegistration.cs
│ │ │ │ ├── HelpPageConfigurationExtensions.cs
│ │ │ │ ├── HelpPage.css
│ │ │ │ ├── ModelDescriptions
│ │ │ │ │ ├── CollectionModelDescription.cs
│ │ │ │ │ ├── ComplexTypeModelDescription.cs
│ │ │ │ │ ├── DictionaryModelDescription.cs
│ │ │ │ │ ├── EnumTypeModelDescription.cs
│ │ │ │ │ ├── EnumValueDescription.cs
│ │ │ │ │ ├── IModelDocumentationProvider.cs
│ │ │ │ │ ├── KeyValuePairModelDescription.cs
│ │ │ │ │ ├── ModelDescription.cs
│ │ │ │ │ ├── ModelDescriptionGenerator.cs
│ │ │ │ │ ├── ModelNameAttribute.cs
│ │ │ │ │ ├── ModelNameHelper.cs
│ │ │ │ │ ├── ParameterAnnotation.cs
│ │ │ │ │ ├── ParameterDescription.cs
│ │ │ │ │ └── SimpleTypeModelDescription.cs
│ │ │ │ ├── Models
│ │ │ │ │ └── HelpPageApiModel.cs
│ │ │ │ ├── SampleGeneration
│ │ │ │ │ ├── HelpPageSampleGenerator.cs
│ │ │ │ │ ├── HelpPageSampleKey.cs
│ │ │ │ │ ├── ImageSample.cs
│ │ │ │ │ ├── InvalidSample.cs
│ │ │ │ │ ├── ObjectGenerator.cs
│ │ │ │ │ ├── SampleDirection.cs
│ │ │ │ │ └── TextSample.cs
│ │ │ │ ├── Views
│ │ │ │ │ ├── Help
│ │ │ │ │ │ ├── Api.cshtml
│ │ │ │ │ │ ├── DisplayTemplates
│ │ │ │ │ │ │ ├── ApiGroup.cshtml
│ │ │ │ │ │ │ ├── CollectionModelDescription.cshtml
│ │ │ │ │ │ │ ├── ComplexTypeModelDescription.cshtml
│ │ │ │ │ │ │ ├── DictionaryModelDescription.cshtml
│ │ │ │ │ │ │ ├── EnumTypeModelDescription.cshtml
│ │ │ │ │ │ │ ├── HelpPageApiModel.cshtml
│ │ │ │ │ │ │ ├── ImageSample.cshtml
│ │ │ │ │ │ │ ├── InvalidSample.cshtml
│ │ │ │ │ │ │ ├── KeyValuePairModelDescription.cshtml
│ │ │ │ │ │ │ ├── ModelDescriptionLink.cshtml
│ │ │ │ │ │ │ ├── Parameters.cshtml
│ │ │ │ │ │ │ ├── Samples.cshtml
│ │ │ │ │ │ │ ├── SimpleTypeModelDescription.cshtml
│ │ │ │ │ │ │ └── TextSample.cshtml
│ │ │ │ │ │ ├── Index.cshtml
│ │ │ │ │ │ └── ResourceModel.cshtml
│ │ │ │ │ ├── Shared
│ │ │ │ │ │ └── _Layout.cshtml
│ │ │ │ │ ├── _ViewStart.cshtml
│ │ │ │ │ └── Web.config
│ │ │ │ └── XmlDocumentationProvider.cs
│ │ │ ├── Content
│ │ │ │ ├── bootstrap.css
│ │ │ │ ├── bootstrap.css.map
│ │ │ │ ├── bootstrap.min.css
│ │ │ │ ├── bootstrap-theme.css
│ │ │ │ ├── bootstrap-theme.css.map
│ │ │ │ ├── bootstrap-theme.min.css
│ │ │ │ └── Site.css
│ │ │ ├── Controllers
│ │ │ │ ├── BooksController.cs
│ │ │ │ └── BooksPageController.cs
│ │ │ ├── favicon.ico
│ │ │ ├── fonts
│ │ │ │ ├── glyphicons-halflings-regular.eot
│ │ │ │ ├── glyphicons-halflings-regular.svg
│ │ │ │ ├── glyphicons-halflings-regular.ttf
│ │ │ │ └── glyphicons-halflings-regular.woff
│ │ │ ├── Global.asax
│ │ │ ├── Global.asax.cs
│ │ │ ├── Models
│ │ │ │ ├── Book.cs
│ │ │ │ └── Books.cs
│ │ │ ├── packages.config
│ │ │ ├── Project_Readme.html
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Scripts
│ │ │ │ ├── bootstrap.js
│ │ │ │ ├── bootstrap.min.js
│ │ │ │ ├── jquery-2.1.0.intellisense.js
│ │ │ │ ├── jquery-2.1.0.js
│ │ │ │ ├── jquery-2.1.0.min.js
│ │ │ │ ├── jquery-2.1.0.min.map
│ │ │ │ ├── modernizr-2.7.2.js
│ │ │ │ ├── _references.js
│ │ │ │ ├── respond.js
│ │ │ │ ├── respond.matchmedia.addListener.js
│ │ │ │ ├── respond.matchmedia.addListener.min.js
│ │ │ │ └── respond.min.js
│ │ │ ├── Views
│ │ │ │ ├── Shared
│ │ │ │ │ ├── Error.cshtml
│ │ │ │ │ └── _Layout.cshtml
│ │ │ │ ├── _ViewStart.cshtml
│ │ │ │ ├── WebBooks
│ │ │ │ │ └── Details.cshtml
│ │ │ │ └── Web.config
│ │ │ ├── Web.config
│ │ │ ├── Web.Debug.config
│ │ │ └── Web.Release.config
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 1-5
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App_Start
│ │ │ │ ├── BundleConfig.cs
│ │ │ │ ├── FilterConfig.cs
│ │ │ │ ├── RouteConfig.cs
│ │ │ │ └── WebApiConfig.cs
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── Areas
│ │ │ │ └── HelpPage
│ │ │ │ ├── ApiDescriptionExtensions.cs
│ │ │ │ ├── App_Start
│ │ │ │ │ └── HelpPageConfig.cs
│ │ │ │ ├── Controllers
│ │ │ │ │ └── HelpController.cs
│ │ │ │ ├── HelpPageAreaRegistration.cs
│ │ │ │ ├── HelpPageConfigurationExtensions.cs
│ │ │ │ ├── HelpPage.css
│ │ │ │ ├── ModelDescriptions
│ │ │ │ │ ├── CollectionModelDescription.cs
│ │ │ │ │ ├── ComplexTypeModelDescription.cs
│ │ │ │ │ ├── DictionaryModelDescription.cs
│ │ │ │ │ ├── EnumTypeModelDescription.cs
│ │ │ │ │ ├── EnumValueDescription.cs
│ │ │ │ │ ├── IModelDocumentationProvider.cs
│ │ │ │ │ ├── KeyValuePairModelDescription.cs
│ │ │ │ │ ├── ModelDescription.cs
│ │ │ │ │ ├── ModelDescriptionGenerator.cs
│ │ │ │ │ ├── ModelNameAttribute.cs
│ │ │ │ │ ├── ModelNameHelper.cs
│ │ │ │ │ ├── ParameterAnnotation.cs
│ │ │ │ │ ├── ParameterDescription.cs
│ │ │ │ │ └── SimpleTypeModelDescription.cs
│ │ │ │ ├── Models
│ │ │ │ │ └── HelpPageApiModel.cs
│ │ │ │ ├── SampleGeneration
│ │ │ │ │ ├── HelpPageSampleGenerator.cs
│ │ │ │ │ ├── HelpPageSampleKey.cs
│ │ │ │ │ ├── ImageSample.cs
│ │ │ │ │ ├── InvalidSample.cs
│ │ │ │ │ ├── ObjectGenerator.cs
│ │ │ │ │ ├── SampleDirection.cs
│ │ │ │ │ └── TextSample.cs
│ │ │ │ ├── Views
│ │ │ │ │ ├── Help
│ │ │ │ │ │ ├── Api.cshtml
│ │ │ │ │ │ ├── DisplayTemplates
│ │ │ │ │ │ │ ├── ApiGroup.cshtml
│ │ │ │ │ │ │ ├── CollectionModelDescription.cshtml
│ │ │ │ │ │ │ ├── ComplexTypeModelDescription.cshtml
│ │ │ │ │ │ │ ├── DictionaryModelDescription.cshtml
│ │ │ │ │ │ │ ├── EnumTypeModelDescription.cshtml
│ │ │ │ │ │ │ ├── HelpPageApiModel.cshtml
│ │ │ │ │ │ │ ├── ImageSample.cshtml
│ │ │ │ │ │ │ ├── InvalidSample.cshtml
│ │ │ │ │ │ │ ├── KeyValuePairModelDescription.cshtml
│ │ │ │ │ │ │ ├── ModelDescriptionLink.cshtml
│ │ │ │ │ │ │ ├── Parameters.cshtml
│ │ │ │ │ │ │ ├── Samples.cshtml
│ │ │ │ │ │ │ ├── SimpleTypeModelDescription.cshtml
│ │ │ │ │ │ │ └── TextSample.cshtml
│ │ │ │ │ │ ├── Index.cshtml
│ │ │ │ │ │ └── ResourceModel.cshtml
│ │ │ │ │ ├── Shared
│ │ │ │ │ │ └── _Layout.cshtml
│ │ │ │ │ ├── _ViewStart.cshtml
│ │ │ │ │ └── Web.config
│ │ │ │ └── XmlDocumentationProvider.cs
│ │ │ ├── CodeTemplates
│ │ │ │ ├── ApiControllerEmpty
│ │ │ │ │ ├── Controller.cs.t4
│ │ │ │ │ └── Controller.vb.t4
│ │ │ │ ├── ApiControllerWithActions
│ │ │ │ │ ├── Controller.cs.t4
│ │ │ │ │ └── Controller.vb.t4
│ │ │ │ ├── ApiControllerWithContext
│ │ │ │ │ ├── Controller.cs.t4
│ │ │ │ │ └── Controller.vb.t4
│ │ │ │ ├── ApiDependencyCodeGenerator
│ │ │ │ │ ├── Global.asax.cs.t4
│ │ │ │ │ ├── Global.asax.vb.t4
│ │ │ │ │ ├── Global.cs.t4
│ │ │ │ │ ├── Global.vb.t4
│ │ │ │ │ ├── WebApiConfig.cs.t4
│ │ │ │ │ └── WebApiConfig.vb.t4
│ │ │ │ ├── AssemblyVersions.xml
│ │ │ │ ├── MvcArea
│ │ │ │ │ ├── Area.cs.t4
│ │ │ │ │ ├── Area.vb.t4
│ │ │ │ │ ├── web.cs.t4
│ │ │ │ │ └── web.vb.t4
│ │ │ │ ├── MvcControllerEmpty
│ │ │ │ │ ├── Controller.cs.t4
│ │ │ │ │ └── Controller.vb.t4
│ │ │ │ ├── MvcControllerWithActions
│ │ │ │ │ ├── Controller.cs.t4
│ │ │ │ │ └── Controller.vb.t4
│ │ │ │ ├── MvcControllerWithContext
│ │ │ │ │ ├── Controller.cs.t4
│ │ │ │ │ └── Controller.vb.t4
│ │ │ │ ├── MvcFullDependencyCodeGenerator
│ │ │ │ │ ├── BundleConfig.cs.t4
│ │ │ │ │ ├── BundleConfig.vb.t4
│ │ │ │ │ ├── Error.cshtml
│ │ │ │ │ ├── Error.vbhtml
│ │ │ │ │ ├── FilterConfig.cs.t4
│ │ │ │ │ ├── FilterConfig.vb.t4
│ │ │ │ │ ├── Global.asax.cs.t4
│ │ │ │ │ ├── Global.asax.vb.t4
│ │ │ │ │ ├── Global.cs.t4
│ │ │ │ │ ├── Global.vb.t4
│ │ │ │ │ ├── _Layout.cs.t4
│ │ │ │ │ ├── _Layout.vb.t4
│ │ │ │ │ ├── RouteConfig.cs.t4
│ │ │ │ │ ├── RouteConfig.vb.t4
│ │ │ │ │ ├── Site.cs.t4
│ │ │ │ │ ├── Site.vb.t4
│ │ │ │ │ ├── _ViewStart.cs.t4
│ │ │ │ │ ├── _ViewStart.vb.t4
│ │ │ │ │ ├── web.cs.t4
│ │ │ │ │ └── web.vb.t4
│ │ │ │ ├── MvcMinimalDependencyCodeGenerator
│ │ │ │ │ ├── Global.asax.cs.t4
│ │ │ │ │ ├── Global.asax.vb.t4
│ │ │ │ │ ├── Global.cs.t4
│ │ │ │ │ ├── Global.vb.t4
│ │ │ │ │ ├── RouteConfig.cs.t4
│ │ │ │ │ ├── RouteConfig.vb.t4
│ │ │ │ │ ├── web.cs.t4
│ │ │ │ │ └── web.vb.t4
│ │ │ │ ├── MvcView
│ │ │ │ │ ├── Create.cs.t4
│ │ │ │ │ ├── Create.vb.t4
│ │ │ │ │ ├── Delete.cs.t4
│ │ │ │ │ ├── Delete.vb.t4
│ │ │ │ │ ├── Details.cs.t4
│ │ │ │ │ ├── Details.vb.t4
│ │ │ │ │ ├── Edit.cs.t4
│ │ │ │ │ ├── Edit.vb.t4
│ │ │ │ │ ├── Empty.cs.t4
│ │ │ │ │ ├── Empty.vb.t4
│ │ │ │ │ ├── Imports.include.t4
│ │ │ │ │ ├── List.cs.t4
│ │ │ │ │ ├── List.vb.t4
│ │ │ │ │ ├── ModelMetadataFunctions.cs.include.t4
│ │ │ │ │ └── ModelMetadataFunctions.vb.include.t4
│ │ │ │ ├── MvcViewWithoutModel
│ │ │ │ │ ├── Empty.cs.t4
│ │ │ │ │ ├── Empty.vb.t4
│ │ │ │ │ └── Imports.include.t4
│ │ │ │ ├── ODataControllerWithActions
│ │ │ │ │ ├── Controller.cs.t4
│ │ │ │ │ └── Controller.vb.t4
│ │ │ │ ├── ODataControllerWithContext
│ │ │ │ │ ├── Controller.cs.t4
│ │ │ │ │ └── Controller.vb.t4
│ │ │ │ ├── PackageVersions5.0.0.xml
│ │ │ │ ├── PackageVersions5.1.0.xml
│ │ │ │ ├── PackageVersions5.1.1.xml
│ │ │ │ └── PackageVersions5.1.2.xml
│ │ │ ├── Content
│ │ │ │ ├── bootstrap.css
│ │ │ │ ├── bootstrap.min.css
│ │ │ │ └── Site.css
│ │ │ ├── Controllers
│ │ │ │ ├── ApiBaseController.cs
│ │ │ │ ├── HomeController.cs
│ │ │ │ ├── SampleController.cs
│ │ │ │ └── TeamsController.cs
│ │ │ ├── favicon.ico
│ │ │ ├── fonts
│ │ │ │ ├── glyphicons-halflings-regular.eot
│ │ │ │ ├── glyphicons-halflings-regular.svg
│ │ │ │ ├── glyphicons-halflings-regular.ttf
│ │ │ │ └── glyphicons-halflings-regular.woff
│ │ │ ├── Global.asax
│ │ │ ├── Global.asax.cs
│ │ │ ├── Models
│ │ │ │ ├── ApressRecipesWebApiContext.cs
│ │ │ │ └── Team.cs
│ │ │ ├── packages.config
│ │ │ ├── Project_Readme.html
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Scripts
│ │ │ │ ├── bootstrap.js
│ │ │ │ ├── bootstrap.min.js
│ │ │ │ ├── jquery-1.10.2.intellisense.js
│ │ │ │ ├── jquery-1.10.2.js
│ │ │ │ ├── jquery-1.10.2.min.js
│ │ │ │ ├── jquery-1.10.2.min.map
│ │ │ │ ├── modernizr-2.6.2.js
│ │ │ │ ├── _references.js
│ │ │ │ ├── respond.js
│ │ │ │ └── respond.min.js
│ │ │ ├── Views
│ │ │ │ ├── Home
│ │ │ │ │ └── Index.cshtml
│ │ │ │ ├── Shared
│ │ │ │ │ ├── Error.cshtml
│ │ │ │ │ └── _Layout.cshtml
│ │ │ │ ├── _ViewStart.cshtml
│ │ │ │ └── Web.config
│ │ │ ├── Web.config
│ │ │ ├── Web.Debug.config
│ │ │ └── Web.Release.config
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 1-6
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App_Start
│ │ │ │ ├── BundleConfig.cs
│ │ │ │ ├── FilterConfig.cs
│ │ │ │ ├── RouteConfig.cs
│ │ │ │ └── WebApiConfig.cs
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── Areas
│ │ │ │ └── HelpPage
│ │ │ │ ├── ApiDescriptionExtensions.cs
│ │ │ │ ├── App_Start
│ │ │ │ │ └── HelpPageConfig.cs
│ │ │ │ ├── Controllers
│ │ │ │ │ └── HelpController.cs
│ │ │ │ ├── HelpPageAreaRegistration.cs
│ │ │ │ ├── HelpPageConfigurationExtensions.cs
│ │ │ │ ├── HelpPage.css
│ │ │ │ ├── ModelDescriptions
│ │ │ │ │ ├── CollectionModelDescription.cs
│ │ │ │ │ ├── ComplexTypeModelDescription.cs
│ │ │ │ │ ├── DictionaryModelDescription.cs
│ │ │ │ │ ├── EnumTypeModelDescription.cs
│ │ │ │ │ ├── EnumValueDescription.cs
│ │ │ │ │ ├── IModelDocumentationProvider.cs
│ │ │ │ │ ├── KeyValuePairModelDescription.cs
│ │ │ │ │ ├── ModelDescription.cs
│ │ │ │ │ ├── ModelDescriptionGenerator.cs
│ │ │ │ │ ├── ModelNameAttribute.cs
│ │ │ │ │ ├── ModelNameHelper.cs
│ │ │ │ │ ├── ParameterAnnotation.cs
│ │ │ │ │ ├── ParameterDescription.cs
│ │ │ │ │ └── SimpleTypeModelDescription.cs
│ │ │ │ ├── Models
│ │ │ │ │ └── HelpPageApiModel.cs
│ │ │ │ ├── SampleGeneration
│ │ │ │ │ ├── HelpPageSampleGenerator.cs
│ │ │ │ │ ├── HelpPageSampleKey.cs
│ │ │ │ │ ├── ImageSample.cs
│ │ │ │ │ ├── InvalidSample.cs
│ │ │ │ │ ├── ObjectGenerator.cs
│ │ │ │ │ ├── SampleDirection.cs
│ │ │ │ │ └── TextSample.cs
│ │ │ │ ├── Views
│ │ │ │ │ ├── Help
│ │ │ │ │ │ ├── Api.cshtml
│ │ │ │ │ │ ├── DisplayTemplates
│ │ │ │ │ │ │ ├── ApiGroup.cshtml
│ │ │ │ │ │ │ ├── CollectionModelDescription.cshtml
│ │ │ │ │ │ │ ├── ComplexTypeModelDescription.cshtml
│ │ │ │ │ │ │ ├── DictionaryModelDescription.cshtml
│ │ │ │ │ │ │ ├── EnumTypeModelDescription.cshtml
│ │ │ │ │ │ │ ├── HelpPageApiModel.cshtml
│ │ │ │ │ │ │ ├── ImageSample.cshtml
│ │ │ │ │ │ │ ├── InvalidSample.cshtml
│ │ │ │ │ │ │ ├── KeyValuePairModelDescription.cshtml
│ │ │ │ │ │ │ ├── ModelDescriptionLink.cshtml
│ │ │ │ │ │ │ ├── Parameters.cshtml
│ │ │ │ │ │ │ ├── Samples.cshtml
│ │ │ │ │ │ │ ├── SimpleTypeModelDescription.cshtml
│ │ │ │ │ │ │ └── TextSample.cshtml
│ │ │ │ │ │ ├── Index.cshtml
│ │ │ │ │ │ └── ResourceModel.cshtml
│ │ │ │ │ ├── Shared
│ │ │ │ │ │ └── _Layout.cshtml
│ │ │ │ │ ├── _ViewStart.cshtml
│ │ │ │ │ └── Web.config
│ │ │ │ └── XmlDocumentationProvider.cs
│ │ │ ├── Content
│ │ │ │ ├── bootstrap.css
│ │ │ │ ├── bootstrap.min.css
│ │ │ │ └── Site.css
│ │ │ ├── Controllers
│ │ │ │ ├── AlbumController.cs
│ │ │ │ ├── HomeController.cs
│ │ │ │ └── TrackController.cs
│ │ │ ├── favicon.ico
│ │ │ ├── fonts
│ │ │ │ ├── glyphicons-halflings-regular.eot
│ │ │ │ ├── glyphicons-halflings-regular.svg
│ │ │ │ ├── glyphicons-halflings-regular.ttf
│ │ │ │ └── glyphicons-halflings-regular.woff
│ │ │ ├── Global.asax
│ │ │ ├── Global.asax.cs
│ │ │ ├── Models
│ │ │ │ ├── Album.cs
│ │ │ │ ├── Track.cs
│ │ │ │ └── TrackValidator.cs
│ │ │ ├── packages.config
│ │ │ ├── Project_Readme.html
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Scripts
│ │ │ │ ├── bootstrap.js
│ │ │ │ ├── bootstrap.min.js
│ │ │ │ ├── jquery-1.10.2.intellisense.js
│ │ │ │ ├── jquery-1.10.2.js
│ │ │ │ ├── jquery-1.10.2.min.js
│ │ │ │ ├── jquery-1.10.2.min.map
│ │ │ │ ├── modernizr-2.6.2.js
│ │ │ │ ├── _references.js
│ │ │ │ ├── respond.js
│ │ │ │ └── respond.min.js
│ │ │ ├── Views
│ │ │ │ ├── Home
│ │ │ │ │ └── Index.cshtml
│ │ │ │ ├── Shared
│ │ │ │ │ ├── Error.cshtml
│ │ │ │ │ └── _Layout.cshtml
│ │ │ │ ├── _ViewStart.cshtml
│ │ │ │ └── Web.config
│ │ │ ├── Web.config
│ │ │ ├── Web.Debug.config
│ │ │ └── Web.Release.config
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 1-7
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── AntiForgeryHandler.cs
│ │ │ ├── App_Start
│ │ │ │ ├── BundleConfig.cs
│ │ │ │ ├── FilterConfig.cs
│ │ │ │ ├── RouteConfig.cs
│ │ │ │ └── WebApiConfig.cs
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── Areas
│ │ │ │ └── HelpPage
│ │ │ │ ├── ApiDescriptionExtensions.cs
│ │ │ │ ├── App_Start
│ │ │ │ │ └── HelpPageConfig.cs
│ │ │ │ ├── Controllers
│ │ │ │ │ └── HelpController.cs
│ │ │ │ ├── HelpPageAreaRegistration.cs
│ │ │ │ ├── HelpPageConfigurationExtensions.cs
│ │ │ │ ├── HelpPage.css
│ │ │ │ ├── ModelDescriptions
│ │ │ │ │ ├── CollectionModelDescription.cs
│ │ │ │ │ ├── ComplexTypeModelDescription.cs
│ │ │ │ │ ├── DictionaryModelDescription.cs
│ │ │ │ │ ├── EnumTypeModelDescription.cs
│ │ │ │ │ ├── EnumValueDescription.cs
│ │ │ │ │ ├── IModelDocumentationProvider.cs
│ │ │ │ │ ├── KeyValuePairModelDescription.cs
│ │ │ │ │ ├── ModelDescription.cs
│ │ │ │ │ ├── ModelDescriptionGenerator.cs
│ │ │ │ │ ├── ModelNameAttribute.cs
│ │ │ │ │ ├── ModelNameHelper.cs
│ │ │ │ │ ├── ParameterAnnotation.cs
│ │ │ │ │ ├── ParameterDescription.cs
│ │ │ │ │ └── SimpleTypeModelDescription.cs
│ │ │ │ ├── Models
│ │ │ │ │ └── HelpPageApiModel.cs
│ │ │ │ ├── SampleGeneration
│ │ │ │ │ ├── HelpPageSampleGenerator.cs
│ │ │ │ │ ├── HelpPageSampleKey.cs
│ │ │ │ │ ├── ImageSample.cs
│ │ │ │ │ ├── InvalidSample.cs
│ │ │ │ │ ├── ObjectGenerator.cs
│ │ │ │ │ ├── SampleDirection.cs
│ │ │ │ │ └── TextSample.cs
│ │ │ │ ├── Views
│ │ │ │ │ ├── Help
│ │ │ │ │ │ ├── Api.cshtml
│ │ │ │ │ │ ├── DisplayTemplates
│ │ │ │ │ │ │ ├── ApiGroup.cshtml
│ │ │ │ │ │ │ ├── CollectionModelDescription.cshtml
│ │ │ │ │ │ │ ├── ComplexTypeModelDescription.cshtml
│ │ │ │ │ │ │ ├── DictionaryModelDescription.cshtml
│ │ │ │ │ │ │ ├── EnumTypeModelDescription.cshtml
│ │ │ │ │ │ │ ├── HelpPageApiModel.cshtml
│ │ │ │ │ │ │ ├── ImageSample.cshtml
│ │ │ │ │ │ │ ├── InvalidSample.cshtml
│ │ │ │ │ │ │ ├── KeyValuePairModelDescription.cshtml
│ │ │ │ │ │ │ ├── ModelDescriptionLink.cshtml
│ │ │ │ │ │ │ ├── Parameters.cshtml
│ │ │ │ │ │ │ ├── Samples.cshtml
│ │ │ │ │ │ │ ├── SimpleTypeModelDescription.cshtml
│ │ │ │ │ │ │ └── TextSample.cshtml
│ │ │ │ │ │ ├── Index.cshtml
│ │ │ │ │ │ └── ResourceModel.cshtml
│ │ │ │ │ ├── Shared
│ │ │ │ │ │ └── _Layout.cshtml
│ │ │ │ │ ├── _ViewStart.cshtml
│ │ │ │ │ └── Web.config
│ │ │ │ └── XmlDocumentationProvider.cs
│ │ │ ├── Content
│ │ │ │ ├── bootstrap.css
│ │ │ │ ├── bootstrap.css.map
│ │ │ │ ├── bootstrap.min.css
│ │ │ │ ├── bootstrap-theme.css
│ │ │ │ ├── bootstrap-theme.css.map
│ │ │ │ ├── bootstrap-theme.min.css
│ │ │ │ └── Site.css
│ │ │ ├── Controllers
│ │ │ │ ├── HomeController.cs
│ │ │ │ └── ValuesController.cs
│ │ │ ├── favicon.ico
│ │ │ ├── fonts
│ │ │ │ ├── glyphicons-halflings-regular.eot
│ │ │ │ ├── glyphicons-halflings-regular.svg
│ │ │ │ ├── glyphicons-halflings-regular.ttf
│ │ │ │ └── glyphicons-halflings-regular.woff
│ │ │ ├── Global.asax
│ │ │ ├── Global.asax.cs
│ │ │ ├── HttpRequestMessageExtensions.cs
│ │ │ ├── Models
│ │ │ │ └── DiceResult.cs
│ │ │ ├── packages.config
│ │ │ ├── Project_Readme.html
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Scripts
│ │ │ │ ├── bootstrap.js
│ │ │ │ ├── bootstrap.min.js
│ │ │ │ ├── jquery-2.1.0.intellisense.js
│ │ │ │ ├── jquery-2.1.0.js
│ │ │ │ ├── jquery-2.1.0.min.js
│ │ │ │ ├── jquery-2.1.0.min.map
│ │ │ │ ├── modernizr-2.7.2.js
│ │ │ │ ├── _references.js
│ │ │ │ ├── respond.js
│ │ │ │ ├── respond.matchmedia.addListener.js
│ │ │ │ ├── respond.matchmedia.addListener.min.js
│ │ │ │ └── respond.min.js
│ │ │ ├── Views
│ │ │ │ ├── Home
│ │ │ │ │ └── Index.cshtml
│ │ │ │ ├── Shared
│ │ │ │ │ ├── Error.cshtml
│ │ │ │ │ └── _Layout.cshtml
│ │ │ │ ├── _ViewStart.cshtml
│ │ │ │ └── Web.config
│ │ │ ├── Web.config
│ │ │ ├── Web.Debug.config
│ │ │ └── Web.Release.config
│ │ └── Apress.Recipes.WebApi.sln
│ └── 1-8
│ └── Apress.Recipes.WebApi
│ ├── Apress.Recipes.WebApi
│ │ ├── App_Start
│ │ │ ├── BundleConfig.cs
│ │ │ ├── FilterConfig.cs
│ │ │ ├── RouteConfig.cs
│ │ │ └── WebApiConfig.cs
│ │ ├── Apress.Recipes.WebApi.csproj
│ │ ├── Areas
│ │ │ └── HelpPage
│ │ │ ├── ApiDescriptionExtensions.cs
│ │ │ ├── App_Start
│ │ │ │ └── HelpPageConfig.cs
│ │ │ ├── Controllers
│ │ │ │ └── HelpController.cs
│ │ │ ├── HelpPageAreaRegistration.cs
│ │ │ ├── HelpPageConfigurationExtensions.cs
│ │ │ ├── HelpPage.css
│ │ │ ├── ModelDescriptions
│ │ │ │ ├── CollectionModelDescription.cs
│ │ │ │ ├── ComplexTypeModelDescription.cs
│ │ │ │ ├── DictionaryModelDescription.cs
│ │ │ │ ├── EnumTypeModelDescription.cs
│ │ │ │ ├── EnumValueDescription.cs
│ │ │ │ ├── IModelDocumentationProvider.cs
│ │ │ │ ├── KeyValuePairModelDescription.cs
│ │ │ │ ├── ModelDescription.cs
│ │ │ │ ├── ModelDescriptionGenerator.cs
│ │ │ │ ├── ModelNameAttribute.cs
│ │ │ │ ├── ModelNameHelper.cs
│ │ │ │ ├── ParameterAnnotation.cs
│ │ │ │ ├── ParameterDescription.cs
│ │ │ │ └── SimpleTypeModelDescription.cs
│ │ │ ├── Models
│ │ │ │ └── HelpPageApiModel.cs
│ │ │ ├── SampleGeneration
│ │ │ │ ├── HelpPageSampleGenerator.cs
│ │ │ │ ├── HelpPageSampleKey.cs
│ │ │ │ ├── ImageSample.cs
│ │ │ │ ├── InvalidSample.cs
│ │ │ │ ├── ObjectGenerator.cs
│ │ │ │ ├── SampleDirection.cs
│ │ │ │ └── TextSample.cs
│ │ │ ├── Views
│ │ │ │ ├── Help
│ │ │ │ │ ├── Api.cshtml
│ │ │ │ │ ├── DisplayTemplates
│ │ │ │ │ │ ├── ApiGroup.cshtml
│ │ │ │ │ │ ├── CollectionModelDescription.cshtml
│ │ │ │ │ │ ├── ComplexTypeModelDescription.cshtml
│ │ │ │ │ │ ├── DictionaryModelDescription.cshtml
│ │ │ │ │ │ ├── EnumTypeModelDescription.cshtml
│ │ │ │ │ │ ├── HelpPageApiModel.cshtml
│ │ │ │ │ │ ├── ImageSample.cshtml
│ │ │ │ │ │ ├── InvalidSample.cshtml
│ │ │ │ │ │ ├── KeyValuePairModelDescription.cshtml
│ │ │ │ │ │ ├── ModelDescriptionLink.cshtml
│ │ │ │ │ │ ├── Parameters.cshtml
│ │ │ │ │ │ ├── Samples.cshtml
│ │ │ │ │ │ ├── SimpleTypeModelDescription.cshtml
│ │ │ │ │ │ └── TextSample.cshtml
│ │ │ │ │ ├── Index.cshtml
│ │ │ │ │ └── ResourceModel.cshtml
│ │ │ │ ├── Shared
│ │ │ │ │ └── _Layout.cshtml
│ │ │ │ ├── _ViewStart.cshtml
│ │ │ │ └── Web.config
│ │ │ └── XmlDocumentationProvider.cs
│ │ ├── Content
│ │ │ ├── bootstrap.css
│ │ │ ├── bootstrap.css.map
│ │ │ ├── bootstrap.min.css
│ │ │ ├── bootstrap-theme.css
│ │ │ ├── bootstrap-theme.css.map
│ │ │ ├── bootstrap-theme.min.css
│ │ │ └── Site.css
│ │ ├── Controllers
│ │ │ ├── DiceController.cs
│ │ │ └── HomeController.cs
│ │ ├── favicon.ico
│ │ ├── fonts
│ │ │ ├── glyphicons-halflings-regular.eot
│ │ │ ├── glyphicons-halflings-regular.svg
│ │ │ ├── glyphicons-halflings-regular.ttf
│ │ │ └── glyphicons-halflings-regular.woff
│ │ ├── Global.asax
│ │ ├── Global.asax.cs
│ │ ├── Models
│ │ │ └── DiceResult.cs
│ │ ├── packages.config
│ │ ├── Project_Readme.html
│ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ ├── Scripts
│ │ │ ├── bootstrap.js
│ │ │ ├── bootstrap.min.js
│ │ │ ├── jquery-2.1.0.intellisense.js
│ │ │ ├── jquery-2.1.0.js
│ │ │ ├── jquery-2.1.0.min.js
│ │ │ ├── jquery-2.1.0.min.map
│ │ │ ├── modernizr-2.7.2.js
│ │ │ ├── _references.js
│ │ │ ├── respond.js
│ │ │ ├── respond.matchmedia.addListener.js
│ │ │ ├── respond.matchmedia.addListener.min.js
│ │ │ └── respond.min.js
│ │ ├── SessionControllerHandler.cs
│ │ ├── SessionHttpControllerRouteHandler.cs
│ │ ├── Views
│ │ │ ├── Home
│ │ │ │ └── Index.cshtml
│ │ │ ├── Shared
│ │ │ │ ├── Error.cshtml
│ │ │ │ └── _Layout.cshtml
│ │ │ ├── _ViewStart.cshtml
│ │ │ └── Web.config
│ │ ├── Web.config
│ │ ├── Web.Debug.config
│ │ └── Web.Release.config
│ └── Apress.Recipes.WebApi.sln
├── Chapter 02
│ ├── 2-1
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── packages.config
│ │ │ ├── PersonController.cs
│ │ │ ├── Person.cs
│ │ │ ├── Program.cs
│ │ │ └── Properties
│ │ │ └── AssemblyInfo.cs
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 2-2
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── packages.config
│ │ │ ├── PersonController.cs
│ │ │ ├── Person.cs
│ │ │ ├── Program.cs
│ │ │ ├── ProjectInstaller.cs
│ │ │ ├── ProjectInstaller.Designer.cs
│ │ │ ├── ProjectInstaller.resx
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Startup.cs
│ │ │ ├── WebApiService.cs
│ │ │ └── WebApiService.Designer.cs
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 2-3
│ │ ├── apressrecipesService
│ │ │ ├── App_Data
│ │ │ │ ├── aspnet-apressrecipesService-20140401071630_log.ldf
│ │ │ │ └── aspnet-apressrecipesService-20140401071630.mdf
│ │ │ ├── App_Start
│ │ │ │ └── WebApiConfig.cs
│ │ │ ├── apressrecipesService.csproj
│ │ │ ├── Controllers
│ │ │ │ └── TodoItemController.cs
│ │ │ ├── DataObjects
│ │ │ │ └── TodoItem.cs
│ │ │ ├── Global.asax
│ │ │ ├── Global.asax.cs
│ │ │ ├── Models
│ │ │ │ └── apressrecipesContext.cs
│ │ │ ├── packages.config
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── ScheduledJobs
│ │ │ │ └── SampleJob.cs
│ │ │ ├── Web.config
│ │ │ ├── Web.Debug.config
│ │ │ └── Web.Release.config
│ │ └── apressrecipes.sln
│ ├── 2-4
│ │ ├── example 4
│ │ │ ├── packages.config
│ │ │ └── start.csx
│ │ ├── packages.config
│ │ └── start.csx
│ ├── 2-5
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── Apress.Recipes.WebApi.ccproj
│ │ │ ├── ApressWebApiWorkerContent
│ │ │ │ └── diagnostics.wadcfg
│ │ │ ├── ServiceConfiguration.Cloud.cscfg
│ │ │ ├── ServiceConfiguration.Local.cscfg
│ │ │ └── ServiceDefinition.csdef
│ │ ├── Apress.Recipes.WebApi.sln
│ │ └── ApressWebApiWorker
│ │ ├── app.config
│ │ ├── ApressWebApiWorker.csproj
│ │ ├── packages.config
│ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ ├── TestController.cs
│ │ └── WorkerRole.cs
│ └── 2-6
│ └── Apress.Recipes.WebApi
│ ├── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi.fsproj
│ │ ├── Library1.fs
│ │ └── packages.config
│ ├── Apress.Recipes.WebApi.sln
│ └── CloudProject
│ ├── CloudProject.ccproj
│ ├── ServiceConfiguration.Cloud.cscfg
│ ├── ServiceConfiguration.Local.cscfg
│ ├── ServiceDefinition.csdef
│ └── WorkerRole1Content
│ └── diagnostics.wadcfg
├── Chapter 03
│ ├── 3-1
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── BadOrdersController.cs
│ │ │ ├── Order.cs
│ │ │ ├── packages.config
│ │ │ ├── Player.cs
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Startup.cs
│ │ │ ├── Team.cs
│ │ │ └── TeamsController.cs
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 3-10
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── HelloModule.cs
│ │ │ ├── Item.cs
│ │ │ ├── ItemsController.cs
│ │ │ ├── packages.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Startup.cs
│ │ │ └── TestController.cs
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 3-11
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── LocalizedDirectRouteProvider.cs
│ │ │ ├── LocalizedRouteAttribute.cs
│ │ │ ├── OrdersController.cs
│ │ │ ├── packages.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ └── Startup.cs
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 3-12
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── packages.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Startup.cs
│ │ │ ├── Team.cs
│ │ │ └── TeamsController.cs
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 3-2
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── packages.config
│ │ │ ├── Player.cs
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Startup.cs
│ │ │ ├── Team.cs
│ │ │ └── TeamsController.cs
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 3-3
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── Item.cs
│ │ │ ├── ItemsController.cs
│ │ │ ├── Order.cs
│ │ │ ├── OrdersController.cs
│ │ │ ├── packages.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ └── Startup.cs
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 3-4
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── Item.cs
│ │ │ ├── ItemsController.cs
│ │ │ ├── Order.cs
│ │ │ ├── OrdersController.cs
│ │ │ ├── packages.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ └── Startup.cs
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 3-5
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── EmailRouteConstraint.cs
│ │ │ ├── OrdersController.cs
│ │ │ ├── packages.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── ProxyController.cs
│ │ │ └── Startup.cs
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 3-6
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── Item.cs
│ │ │ ├── ItemsController.cs
│ │ │ ├── Order.cs
│ │ │ ├── OrdersController.cs
│ │ │ ├── packages.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── RpcRouteAttribute.cs
│ │ │ └── Startup.cs
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 3-7
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── DifferentProxyController.cs
│ │ │ ├── packages.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── ProxyController.cs
│ │ │ └── Startup.cs
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 3-8
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── Order.cs
│ │ │ ├── OrdersController.cs
│ │ │ ├── packages.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ └── Startup.cs
│ │ └── Apress.Recipes.WebApi.sln
│ └── 3-9
│ └── Apress.Recipes.WebApi
│ ├── Apress.Recipes.WebApi
│ │ ├── App.config
│ │ ├── Apress.Recipes.WebApi.csproj
│ │ ├── HttpRequestMessageExtensions.cs
│ │ ├── Item.cs
│ │ ├── ItemsController.cs
│ │ ├── packages.config
│ │ ├── Program.cs
│ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ ├── Startup.cs
│ │ └── WebApiUsageHandler.cs
│ └── Apress.Recipes.WebApi.sln
├── Chapter 04
│ ├── 4-1
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── Item.cs
│ │ │ ├── ItemsController.cs
│ │ │ ├── packages.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ └── Startup.cs
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 4-10
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── hello2.html
│ │ │ ├── hello.html
│ │ │ ├── ItemsController.cs
│ │ │ ├── packages.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ └── Startup.cs
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 4-11
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── packages.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Startup.cs
│ │ │ ├── textfile.txt
│ │ │ └── UploadController.cs
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 4-12
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── Controller
│ │ │ │ ├── BaseUploadController.cs
│ │ │ │ ├── BufferedController.cs
│ │ │ │ └── UnBufferedController.cs
│ │ │ ├── FileUploadBufferPolicySelector.cs
│ │ │ ├── packages.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Startup.cs
│ │ │ └── textfile.txt
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 4-13
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── CustomMultipartFormDataStreamProvider.cs
│ │ │ ├── evilfile.bat
│ │ │ ├── packages.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Startup.cs
│ │ │ ├── textfile.txt
│ │ │ ├── UploadController.cs
│ │ │ └── ValidatedMemoryStreamProvider.cs
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 4-2
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── Item.cs
│ │ │ ├── ItemsController.cs
│ │ │ ├── packages.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ └── Startup.cs
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 4-3
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── CollectionModelBinder.cs
│ │ │ ├── Controller
│ │ │ │ ├── CollectionController.cs
│ │ │ │ ├── SearchController.cs
│ │ │ │ └── TestController.cs
│ │ │ ├── packages.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── SearchQueryConverter.cs
│ │ │ ├── SearchQuery.cs
│ │ │ └── Startup.cs
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 4-4
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── MvcActionValueBinder.cs
│ │ │ ├── MvcBindingConfigurationAttribute.cs
│ │ │ ├── MvcStyleBindingAttribute.cs
│ │ │ ├── MyComplexDto.cs
│ │ │ ├── MyController.cs
│ │ │ ├── packages.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ └── Startup.cs
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 4-5
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── Item.cs
│ │ │ ├── ItemsController.cs
│ │ │ ├── packages.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ └── Startup.cs
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 4-6
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── Article.cs
│ │ │ ├── IRss.cs
│ │ │ ├── ItemsController.cs
│ │ │ ├── packages.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── RssFeedBuilder.cs
│ │ │ ├── RssMediaTypeFormatter.cs
│ │ │ └── Startup.cs
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 4-7
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── Item.cs
│ │ │ ├── ItemsController.cs
│ │ │ ├── packages.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ └── Startup.cs
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 4-8
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── packages.config
│ │ │ ├── PlainTextResult.cs
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── ResponseDto.cs
│ │ │ ├── Startup.cs
│ │ │ └── TestController.cs
│ │ └── Apress.Recipes.WebApi.sln
│ └── 4-9
│ └── Apress.Recipes.WebApi
│ ├── Apress.Recipes.WebApi
│ │ ├── App.config
│ │ ├── Apress.Recipes.WebApi.csproj
│ │ ├── Item.cs
│ │ ├── ItemsController.cs
│ │ ├── packages.config
│ │ ├── Program.cs
│ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ └── Startup.cs
│ └── Apress.Recipes.WebApi.sln
├── Chapter 05
│ ├── 5-1
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App.config
│ │ │ ├── App_Packages
│ │ │ │ └── TaskHelpers.Sources.0.1
│ │ │ │ ├── TaskHelpers.cs
│ │ │ │ └── TaskHelpersExtensions.cs
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── HttpRequestMessageExtensions.cs
│ │ │ ├── OwinCompatibleThrottlingHandler.cs
│ │ │ ├── packages.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Startup.cs
│ │ │ └── TestController.cs
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 5-10
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── packages.config
│ │ │ ├── PolicySetterHandler.cs
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Startup.cs
│ │ │ └── TestController.cs
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 5-11
│ │ ├── Apress.Recipes.WebApi.SelfHost
│ │ │ ├── Apress.Recipes.WebApi.SelfHost
│ │ │ │ ├── App.config
│ │ │ │ ├── Apress.Recipes.WebApi.SelfHost.csproj
│ │ │ │ ├── files
│ │ │ │ │ └── test.html
│ │ │ │ ├── HtmlActionResult.cs
│ │ │ │ ├── HtmlController.cs
│ │ │ │ ├── Item.cs
│ │ │ │ ├── packages.config
│ │ │ │ ├── Program.cs
│ │ │ │ ├── Properties
│ │ │ │ │ └── AssemblyInfo.cs
│ │ │ │ ├── RazorController.cs
│ │ │ │ ├── Startup.cs
│ │ │ │ └── views
│ │ │ │ └── Item.cshtml
│ │ │ └── Apress.Recipes.WebApi.SelfHost.sln
│ │ └── Apress.Recipes.WebApi.WebHost
│ │ ├── Apress.Recipes.WebApi.WebHost
│ │ │ ├── App_Start
│ │ │ │ ├── BundleConfig.cs
│ │ │ │ └── WebApiConfig.cs
│ │ │ ├── Apress.Recipes.WebApi.WebHost.csproj
│ │ │ ├── Controllers
│ │ │ │ └── ItemsController.cs
│ │ │ ├── favicon.ico
│ │ │ ├── Global.asax
│ │ │ ├── Global.asax.cs
│ │ │ ├── Models
│ │ │ │ ├── Item.cs
│ │ │ │ └── Items.cs
│ │ │ ├── packages.config
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Views
│ │ │ │ ├── Item.cshtml
│ │ │ │ ├── Items.cshtml
│ │ │ │ └── Web.config
│ │ │ ├── Web.config
│ │ │ ├── Web.Debug.config
│ │ │ └── Web.Release.config
│ │ └── Apress.Recipes.WebApi.WebHost.sln
│ ├── 5-12
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── Global.cs
│ │ │ ├── HttpRequestMessageExtensions.cs
│ │ │ ├── MyHandler.cs
│ │ │ ├── packages.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Startup.cs
│ │ │ └── TestController.cs
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 5-2
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── CustomAssembliesResolver.cs
│ │ │ ├── packages.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ └── Startup.cs
│ │ ├── Apress.Recipes.WebApi.sln
│ │ ├── ExternalLibrary
│ │ │ ├── ExternalLibrary.csproj
│ │ │ ├── HelloController.cs
│ │ │ ├── packages.config
│ │ │ └── Properties
│ │ │ └── AssemblyInfo.cs
│ │ └── UnreferencedExternalLibrary
│ │ ├── packages.config
│ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ ├── UnreferencedController.cs
│ │ └── UnreferencedExternalLibrary.csproj
│ ├── 5-3
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── AnotherController.cs
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── packages.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Startup.cs
│ │ │ ├── TestController.cs
│ │ │ ├── TraceAttribute.cs
│ │ │ └── XmlOnlyAttribute.cs
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 5-4
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── CheckModelForNullAttribute.cs
│ │ │ ├── ItemController.cs
│ │ │ ├── Item.cs
│ │ │ ├── packages.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Startup.cs
│ │ │ ├── TextController.cs
│ │ │ └── ValidateModelStateAttribute.cs
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 5-5
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── DenyAnonymousAttribute.cs
│ │ │ ├── packages.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Startup.cs
│ │ │ └── TestController.cs
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 5-6
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── packages.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Startup.cs
│ │ │ ├── TestController.cs
│ │ │ ├── TestItem.cs
│ │ │ ├── WebApiCacheItem.cs
│ │ │ └── WebApiOutputCacheAttribute.cs
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 5-7
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── packages.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Startup.cs
│ │ │ ├── TestController.cs
│ │ │ └── TestItem.cs
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 5-8
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── CustomFilterInfo.cs
│ │ │ ├── OrderBasedFilterProvider.cs
│ │ │ ├── OrderedActionFilterAttribute.cs
│ │ │ ├── packages.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── SampleAttribute.cs
│ │ │ ├── Startup.cs
│ │ │ └── TestController.cs
│ │ └── Apress.Recipes.WebApi.sln
│ └── 5-9
│ └── Apress.Recipes.WebApi
│ ├── Apress.Recipes.WebApi
│ │ ├── App.config
│ │ ├── Apress.Recipes.WebApi.csproj
│ │ ├── FirstAttribute.cs
│ │ ├── MappingBasedFilterProvider.cs
│ │ ├── packages.config
│ │ ├── Program.cs
│ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ ├── SecondAttribute.cs
│ │ ├── Startup.cs
│ │ ├── TestController.cs
│ │ └── ThirdAttribute.cs
│ └── Apress.Recipes.WebApi.sln
├── Chapter 06
│ ├── 6-1
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── packages.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Startup.cs
│ │ │ ├── TestController.cs
│ │ │ └── TestItem.cs
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 6-2
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── ItemController.cs
│ │ │ ├── Item.cs
│ │ │ ├── packages.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ └── Startup.cs
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 6-3
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── HeadHandler.cs
│ │ │ ├── packages.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Startup.cs
│ │ │ └── TestController.cs
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 6-4
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── Item.cs
│ │ │ ├── packages.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Startup.cs
│ │ │ ├── TestController.cs
│ │ │ ├── TypeExtensions.cs
│ │ │ └── Updater.cs
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 6-5
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── Item.cs
│ │ │ ├── ItemsController.cs
│ │ │ ├── packages.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ └── Startup.cs
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 6-6
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── packages.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Startup.cs
│ │ │ ├── TestController.cs
│ │ │ └── TestItem.cs
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 6-7
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── Item.cs
│ │ │ ├── ItemsController.cs
│ │ │ ├── ItemsV2Controller.cs
│ │ │ ├── packages.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Startup.cs
│ │ │ ├── StringExtensions.cs
│ │ │ ├── VersionAwareControllerSelector.cs
│ │ │ └── VersionFinder.cs
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 6-8
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── Item.cs
│ │ │ ├── packages.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Startup.cs
│ │ │ ├── StringExtensions.cs
│ │ │ ├── VersionConstraint.cs
│ │ │ ├── VersionedRouteAttribute.cs
│ │ │ └── VersionFinder.cs
│ │ └── Apress.Recipes.WebApi.sln
│ └── 6-9
│ └── Apress.Recipes.WebApi
│ ├── Apress.Recipes.WebApi
│ │ ├── App.config
│ │ ├── Apress.Recipes.WebApi.csproj
│ │ ├── HttpClientExtensions.cs
│ │ ├── HttpContentExtensions.cs
│ │ ├── Item.cs
│ │ ├── packages.config
│ │ ├── Program.cs
│ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ ├── ProtoBufContent.cs
│ │ ├── Startup.cs
│ │ └── TestController.cs
│ └── Apress.Recipes.WebApi.sln
├── Chapter 07
│ ├── 7-1
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── packages.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── ResourceRemovedAttribute.cs
│ │ │ ├── ResourceRemovedException.cs
│ │ │ ├── Startup.cs
│ │ │ └── TestController.cs
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 7-10
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App_Start
│ │ │ │ ├── BundleConfig.cs
│ │ │ │ ├── FilterConfig.cs
│ │ │ │ ├── RouteConfig.cs
│ │ │ │ └── WebApiConfig.cs
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── Areas
│ │ │ │ └── HelpPage
│ │ │ │ ├── ApiDescriptionExtensions.cs
│ │ │ │ ├── App_Start
│ │ │ │ │ └── HelpPageConfig.cs
│ │ │ │ ├── Controllers
│ │ │ │ │ └── HelpController.cs
│ │ │ │ ├── HelpPageAreaRegistration.cs
│ │ │ │ ├── HelpPageConfigurationExtensions.cs
│ │ │ │ ├── HelpPage.css
│ │ │ │ ├── ModelDescriptions
│ │ │ │ │ ├── CollectionModelDescription.cs
│ │ │ │ │ ├── ComplexTypeModelDescription.cs
│ │ │ │ │ ├── DictionaryModelDescription.cs
│ │ │ │ │ ├── EnumTypeModelDescription.cs
│ │ │ │ │ ├── EnumValueDescription.cs
│ │ │ │ │ ├── IModelDocumentationProvider.cs
│ │ │ │ │ ├── KeyValuePairModelDescription.cs
│ │ │ │ │ ├── ModelDescription.cs
│ │ │ │ │ ├── ModelDescriptionGenerator.cs
│ │ │ │ │ ├── ModelNameAttribute.cs
│ │ │ │ │ ├── ModelNameHelper.cs
│ │ │ │ │ ├── ParameterAnnotation.cs
│ │ │ │ │ ├── ParameterDescription.cs
│ │ │ │ │ └── SimpleTypeModelDescription.cs
│ │ │ │ ├── Models
│ │ │ │ │ └── HelpPageApiModel.cs
│ │ │ │ ├── SampleGeneration
│ │ │ │ │ ├── HelpPageSampleGenerator.cs
│ │ │ │ │ ├── HelpPageSampleKey.cs
│ │ │ │ │ ├── ImageSample.cs
│ │ │ │ │ ├── InvalidSample.cs
│ │ │ │ │ ├── ObjectGenerator.cs
│ │ │ │ │ ├── SampleDirection.cs
│ │ │ │ │ └── TextSample.cs
│ │ │ │ ├── Views
│ │ │ │ │ ├── Help
│ │ │ │ │ │ ├── Api.cshtml
│ │ │ │ │ │ ├── DisplayTemplates
│ │ │ │ │ │ │ ├── ApiGroup.cshtml
│ │ │ │ │ │ │ ├── CollectionModelDescription.cshtml
│ │ │ │ │ │ │ ├── ComplexTypeModelDescription.cshtml
│ │ │ │ │ │ │ ├── DictionaryModelDescription.cshtml
│ │ │ │ │ │ │ ├── EnumTypeModelDescription.cshtml
│ │ │ │ │ │ │ ├── HelpPageApiModel.cshtml
│ │ │ │ │ │ │ ├── ImageSample.cshtml
│ │ │ │ │ │ │ ├── InvalidSample.cshtml
│ │ │ │ │ │ │ ├── KeyValuePairModelDescription.cshtml
│ │ │ │ │ │ │ ├── ModelDescriptionLink.cshtml
│ │ │ │ │ │ │ ├── Parameters.cshtml
│ │ │ │ │ │ │ ├── Samples.cshtml
│ │ │ │ │ │ │ ├── SimpleTypeModelDescription.cshtml
│ │ │ │ │ │ │ └── TextSample.cshtml
│ │ │ │ │ │ ├── Index.cshtml
│ │ │ │ │ │ └── ResourceModel.cshtml
│ │ │ │ │ ├── Shared
│ │ │ │ │ │ └── _Layout.cshtml
│ │ │ │ │ ├── _ViewStart.cshtml
│ │ │ │ │ └── Web.config
│ │ │ │ └── XmlDocumentationProvider.cs
│ │ │ ├── CachedAttribute.cs
│ │ │ ├── Content
│ │ │ │ ├── bootstrap.css
│ │ │ │ ├── bootstrap.min.css
│ │ │ │ └── Site.css
│ │ │ ├── Controllers
│ │ │ │ └── MyController.cs
│ │ │ ├── fonts
│ │ │ │ ├── glyphicons-halflings-regular.eot
│ │ │ │ ├── glyphicons-halflings-regular.svg
│ │ │ │ ├── glyphicons-halflings-regular.ttf
│ │ │ │ └── glyphicons-halflings-regular.woff
│ │ │ ├── Global.asax
│ │ │ ├── Global.asax.cs
│ │ │ ├── packages.config
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Scripts
│ │ │ │ ├── bootstrap.js
│ │ │ │ ├── bootstrap.min.js
│ │ │ │ ├── jquery-1.10.2.intellisense.js
│ │ │ │ ├── jquery-1.10.2.js
│ │ │ │ ├── jquery-1.10.2.min.js
│ │ │ │ ├── jquery-1.10.2.min.map
│ │ │ │ ├── jquery.validate.js
│ │ │ │ ├── jquery.validate.min.js
│ │ │ │ ├── jquery.validate.unobtrusive.js
│ │ │ │ ├── jquery.validate.unobtrusive.min.js
│ │ │ │ ├── jquery.validate-vsdoc.js
│ │ │ │ └── modernizr-2.6.2.js
│ │ │ ├── Views
│ │ │ │ └── web.config
│ │ │ └── Web.config
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 7-11
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App_Start
│ │ │ │ ├── BundleConfig.cs
│ │ │ │ ├── FilterConfig.cs
│ │ │ │ ├── RouteConfig.cs
│ │ │ │ └── WebApiConfig.cs
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── Areas
│ │ │ │ └── HelpPage
│ │ │ │ ├── ApiDescriptionExtensions.cs
│ │ │ │ ├── App_Start
│ │ │ │ │ └── HelpPageConfig.cs
│ │ │ │ ├── Controllers
│ │ │ │ │ └── HelpController.cs
│ │ │ │ ├── HelpPageAreaRegistration.cs
│ │ │ │ ├── HelpPageConfigurationExtensions.cs
│ │ │ │ ├── HelpPage.css
│ │ │ │ ├── ModelDescriptions
│ │ │ │ │ ├── CollectionModelDescription.cs
│ │ │ │ │ ├── ComplexTypeModelDescription.cs
│ │ │ │ │ ├── DictionaryModelDescription.cs
│ │ │ │ │ ├── EnumTypeModelDescription.cs
│ │ │ │ │ ├── EnumValueDescription.cs
│ │ │ │ │ ├── IModelDocumentationProvider.cs
│ │ │ │ │ ├── KeyValuePairModelDescription.cs
│ │ │ │ │ ├── ModelDescription.cs
│ │ │ │ │ ├── ModelDescriptionGenerator.cs
│ │ │ │ │ ├── ModelNameAttribute.cs
│ │ │ │ │ ├── ModelNameHelper.cs
│ │ │ │ │ ├── ParameterAnnotation.cs
│ │ │ │ │ ├── ParameterDescription.cs
│ │ │ │ │ └── SimpleTypeModelDescription.cs
│ │ │ │ ├── Models
│ │ │ │ │ └── HelpPageApiModel.cs
│ │ │ │ ├── SampleGeneration
│ │ │ │ │ ├── HelpPageSampleGenerator.cs
│ │ │ │ │ ├── HelpPageSampleKey.cs
│ │ │ │ │ ├── ImageSample.cs
│ │ │ │ │ ├── InvalidSample.cs
│ │ │ │ │ ├── ObjectGenerator.cs
│ │ │ │ │ ├── SampleDirection.cs
│ │ │ │ │ └── TextSample.cs
│ │ │ │ ├── Views
│ │ │ │ │ ├── Help
│ │ │ │ │ │ ├── Api.cshtml
│ │ │ │ │ │ ├── DisplayTemplates
│ │ │ │ │ │ │ ├── ApiGroup.cshtml
│ │ │ │ │ │ │ ├── CollectionModelDescription.cshtml
│ │ │ │ │ │ │ ├── ComplexTypeModelDescription.cshtml
│ │ │ │ │ │ │ ├── DictionaryModelDescription.cshtml
│ │ │ │ │ │ │ ├── EnumTypeModelDescription.cshtml
│ │ │ │ │ │ │ ├── HelpPageApiModel.cshtml
│ │ │ │ │ │ │ ├── ImageSample.cshtml
│ │ │ │ │ │ │ ├── InvalidSample.cshtml
│ │ │ │ │ │ │ ├── KeyValuePairModelDescription.cshtml
│ │ │ │ │ │ │ ├── ModelDescriptionLink.cshtml
│ │ │ │ │ │ │ ├── Parameters.cshtml
│ │ │ │ │ │ │ ├── Samples.cshtml
│ │ │ │ │ │ │ ├── SimpleTypeModelDescription.cshtml
│ │ │ │ │ │ │ └── TextSample.cshtml
│ │ │ │ │ │ ├── Index.cshtml
│ │ │ │ │ │ └── ResourceModel.cshtml
│ │ │ │ │ ├── Shared
│ │ │ │ │ │ └── _Layout.cshtml
│ │ │ │ │ ├── _ViewStart.cshtml
│ │ │ │ │ └── Web.config
│ │ │ │ └── XmlDocumentationProvider.cs
│ │ │ ├── Content
│ │ │ │ ├── bootstrap.css
│ │ │ │ ├── bootstrap.min.css
│ │ │ │ └── Site.css
│ │ │ ├── Controllers
│ │ │ │ ├── TestController.cs
│ │ │ │ └── UserData.cs
│ │ │ ├── fonts
│ │ │ │ ├── glyphicons-halflings-regular.eot
│ │ │ │ ├── glyphicons-halflings-regular.svg
│ │ │ │ ├── glyphicons-halflings-regular.ttf
│ │ │ │ └── glyphicons-halflings-regular.woff
│ │ │ ├── Global.asax
│ │ │ ├── Global.asax.cs
│ │ │ ├── packages.config
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Scripts
│ │ │ │ ├── bootstrap.js
│ │ │ │ ├── bootstrap.min.js
│ │ │ │ ├── jquery-1.10.2.intellisense.js
│ │ │ │ ├── jquery-1.10.2.js
│ │ │ │ ├── jquery-1.10.2.min.js
│ │ │ │ ├── jquery-1.10.2.min.map
│ │ │ │ ├── jquery.validate.js
│ │ │ │ ├── jquery.validate.min.js
│ │ │ │ ├── jquery.validate.unobtrusive.js
│ │ │ │ ├── jquery.validate.unobtrusive.min.js
│ │ │ │ ├── jquery.validate-vsdoc.js
│ │ │ │ └── modernizr-2.6.2.js
│ │ │ ├── Views
│ │ │ │ └── web.config
│ │ │ └── Web.config
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 7-2
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── ContentNegotiatedExceptionHandler.cs
│ │ │ ├── ErrorData.cs
│ │ │ ├── packages.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Startup.cs
│ │ │ └── TestController.cs
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 7-3
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── NLogExceptionLogger.cs
│ │ │ ├── packages.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Startup.cs
│ │ │ └── TestController.cs
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 7-4
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── packages.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Startup.cs
│ │ │ └── TestController.cs
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 7-5
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── packages.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Startup.cs
│ │ │ └── TestController.cs
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 7-6
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── packages.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Startup.cs
│ │ │ └── TestController.cs
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 7-7
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── DemoController.cs
│ │ │ ├── HtmlController.cs
│ │ │ ├── log.html
│ │ │ ├── NlogTraceWriter.cs
│ │ │ ├── packages.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── SignalRTraceWrapper.cs
│ │ │ ├── Startup.cs
│ │ │ └── TraceHub.cs
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 7-8
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App_Start
│ │ │ │ ├── BundleConfig.cs
│ │ │ │ ├── FilterConfig.cs
│ │ │ │ ├── RouteConfig.cs
│ │ │ │ └── WebApiConfig.cs
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── Areas
│ │ │ │ └── HelpPage
│ │ │ │ ├── ApiDescriptionExtensions.cs
│ │ │ │ ├── App_Start
│ │ │ │ │ └── HelpPageConfig.cs
│ │ │ │ ├── Controllers
│ │ │ │ │ └── HelpController.cs
│ │ │ │ ├── HelpPageAreaRegistration.cs
│ │ │ │ ├── HelpPageConfigurationExtensions.cs
│ │ │ │ ├── HelpPage.css
│ │ │ │ ├── ModelDescriptions
│ │ │ │ │ ├── CollectionModelDescription.cs
│ │ │ │ │ ├── ComplexTypeModelDescription.cs
│ │ │ │ │ ├── DictionaryModelDescription.cs
│ │ │ │ │ ├── EnumTypeModelDescription.cs
│ │ │ │ │ ├── EnumValueDescription.cs
│ │ │ │ │ ├── IModelDocumentationProvider.cs
│ │ │ │ │ ├── KeyValuePairModelDescription.cs
│ │ │ │ │ ├── ModelDescription.cs
│ │ │ │ │ ├── ModelDescriptionGenerator.cs
│ │ │ │ │ ├── ModelNameAttribute.cs
│ │ │ │ │ ├── ModelNameHelper.cs
│ │ │ │ │ ├── ParameterAnnotation.cs
│ │ │ │ │ ├── ParameterDescription.cs
│ │ │ │ │ └── SimpleTypeModelDescription.cs
│ │ │ │ ├── Models
│ │ │ │ │ └── HelpPageApiModel.cs
│ │ │ │ ├── SampleGeneration
│ │ │ │ │ ├── HelpPageSampleGenerator.cs
│ │ │ │ │ ├── HelpPageSampleKey.cs
│ │ │ │ │ ├── ImageSample.cs
│ │ │ │ │ ├── InvalidSample.cs
│ │ │ │ │ ├── ObjectGenerator.cs
│ │ │ │ │ ├── SampleDirection.cs
│ │ │ │ │ └── TextSample.cs
│ │ │ │ ├── Views
│ │ │ │ │ ├── Help
│ │ │ │ │ │ ├── Api.cshtml
│ │ │ │ │ │ ├── DisplayTemplates
│ │ │ │ │ │ │ ├── ApiGroup.cshtml
│ │ │ │ │ │ │ ├── CollectionModelDescription.cshtml
│ │ │ │ │ │ │ ├── ComplexTypeModelDescription.cshtml
│ │ │ │ │ │ │ ├── DictionaryModelDescription.cshtml
│ │ │ │ │ │ │ ├── EnumTypeModelDescription.cshtml
│ │ │ │ │ │ │ ├── HelpPageApiModel.cshtml
│ │ │ │ │ │ │ ├── ImageSample.cshtml
│ │ │ │ │ │ │ ├── InvalidSample.cshtml
│ │ │ │ │ │ │ ├── KeyValuePairModelDescription.cshtml
│ │ │ │ │ │ │ ├── ModelDescriptionLink.cshtml
│ │ │ │ │ │ │ ├── Parameters.cshtml
│ │ │ │ │ │ │ ├── Samples.cshtml
│ │ │ │ │ │ │ ├── SimpleTypeModelDescription.cshtml
│ │ │ │ │ │ │ └── TextSample.cshtml
│ │ │ │ │ │ ├── Index.cshtml
│ │ │ │ │ │ └── ResourceModel.cshtml
│ │ │ │ │ ├── Shared
│ │ │ │ │ │ └── _Layout.cshtml
│ │ │ │ │ ├── _ViewStart.cshtml
│ │ │ │ │ └── Web.config
│ │ │ │ └── XmlDocumentationProvider.cs
│ │ │ ├── Content
│ │ │ │ ├── bootstrap.css
│ │ │ │ ├── bootstrap.min.css
│ │ │ │ └── Site.css
│ │ │ ├── Controllers
│ │ │ │ ├── Item.cs
│ │ │ │ └── ItemsController.cs
│ │ │ ├── fonts
│ │ │ │ ├── glyphicons-halflings-regular.eot
│ │ │ │ ├── glyphicons-halflings-regular.svg
│ │ │ │ ├── glyphicons-halflings-regular.ttf
│ │ │ │ └── glyphicons-halflings-regular.woff
│ │ │ ├── Global.asax
│ │ │ ├── Global.asax.cs
│ │ │ ├── packages.config
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Scripts
│ │ │ │ ├── bootstrap.js
│ │ │ │ ├── bootstrap.min.js
│ │ │ │ ├── jquery-1.10.2.intellisense.js
│ │ │ │ ├── jquery-1.10.2.js
│ │ │ │ ├── jquery-1.10.2.min.js
│ │ │ │ ├── jquery-1.10.2.min.map
│ │ │ │ ├── jquery.validate.js
│ │ │ │ ├── jquery.validate.min.js
│ │ │ │ ├── jquery.validate.unobtrusive.js
│ │ │ │ ├── jquery.validate.unobtrusive.min.js
│ │ │ │ ├── jquery.validate-vsdoc.js
│ │ │ │ └── modernizr-2.6.2.js
│ │ │ ├── Views
│ │ │ │ └── web.config
│ │ │ └── Web.config
│ │ └── Apress.Recipes.WebApi.sln
│ └── 7-9
│ └── Apress.Recipes.WebApi
│ ├── Apress.Recipes.WebApi
│ │ ├── App_Start
│ │ │ ├── BundleConfig.cs
│ │ │ ├── FilterConfig.cs
│ │ │ ├── RouteConfig.cs
│ │ │ └── WebApiConfig.cs
│ │ ├── Apress.Recipes.WebApi.csproj
│ │ ├── Areas
│ │ │ └── HelpPage
│ │ │ ├── ApiDescriptionExtensions.cs
│ │ │ ├── App_Start
│ │ │ │ └── HelpPageConfig.cs
│ │ │ ├── Controllers
│ │ │ │ └── HelpController.cs
│ │ │ ├── HelpPageAreaRegistration.cs
│ │ │ ├── HelpPageConfigurationExtensions.cs
│ │ │ ├── HelpPage.css
│ │ │ ├── ModelDescriptions
│ │ │ │ ├── CollectionModelDescription.cs
│ │ │ │ ├── ComplexTypeModelDescription.cs
│ │ │ │ ├── DictionaryModelDescription.cs
│ │ │ │ ├── EnumTypeModelDescription.cs
│ │ │ │ ├── EnumValueDescription.cs
│ │ │ │ ├── IModelDocumentationProvider.cs
│ │ │ │ ├── KeyValuePairModelDescription.cs
│ │ │ │ ├── ModelDescription.cs
│ │ │ │ ├── ModelDescriptionGenerator.cs
│ │ │ │ ├── ModelNameAttribute.cs
│ │ │ │ ├── ModelNameHelper.cs
│ │ │ │ ├── ParameterAnnotation.cs
│ │ │ │ ├── ParameterDescription.cs
│ │ │ │ └── SimpleTypeModelDescription.cs
│ │ │ ├── Models
│ │ │ │ └── HelpPageApiModel.cs
│ │ │ ├── SampleGeneration
│ │ │ │ ├── ByteSample.cs
│ │ │ │ ├── HelpPageSampleGenerator.cs
│ │ │ │ ├── HelpPageSampleKey.cs
│ │ │ │ ├── ImageSample.cs
│ │ │ │ ├── InvalidSample.cs
│ │ │ │ ├── ObjectGenerator.cs
│ │ │ │ ├── SampleDirection.cs
│ │ │ │ └── TextSample.cs
│ │ │ ├── Views
│ │ │ │ ├── Help
│ │ │ │ │ ├── Api.cshtml
│ │ │ │ │ ├── DisplayTemplates
│ │ │ │ │ │ ├── ApiGroup.cshtml
│ │ │ │ │ │ ├── ByteSample.cshtml
│ │ │ │ │ │ ├── CollectionModelDescription.cshtml
│ │ │ │ │ │ ├── ComplexTypeModelDescription.cshtml
│ │ │ │ │ │ ├── DictionaryModelDescription.cshtml
│ │ │ │ │ │ ├── EnumTypeModelDescription.cshtml
│ │ │ │ │ │ ├── HelpPageApiModel.cshtml
│ │ │ │ │ │ ├── ImageSample.cshtml
│ │ │ │ │ │ ├── InvalidSample.cshtml
│ │ │ │ │ │ ├── KeyValuePairModelDescription.cshtml
│ │ │ │ │ │ ├── ModelDescriptionLink.cshtml
│ │ │ │ │ │ ├── Parameters.cshtml
│ │ │ │ │ │ ├── Samples.cshtml
│ │ │ │ │ │ ├── SimpleTypeModelDescription.cshtml
│ │ │ │ │ │ └── TextSample.cshtml
│ │ │ │ │ ├── Index.cshtml
│ │ │ │ │ └── ResourceModel.cshtml
│ │ │ │ ├── Shared
│ │ │ │ │ └── _Layout.cshtml
│ │ │ │ ├── _ViewStart.cshtml
│ │ │ │ └── Web.config
│ │ │ └── XmlDocumentationProvider.cs
│ │ ├── Content
│ │ │ ├── bootstrap.css
│ │ │ ├── bootstrap.min.css
│ │ │ └── Site.css
│ │ ├── Controllers
│ │ │ └── ValuesController.cs
│ │ ├── fonts
│ │ │ ├── glyphicons-halflings-regular.eot
│ │ │ ├── glyphicons-halflings-regular.svg
│ │ │ ├── glyphicons-halflings-regular.ttf
│ │ │ └── glyphicons-halflings-regular.woff
│ │ ├── Global.asax
│ │ ├── Global.asax.cs
│ │ ├── Models
│ │ │ ├── Article.cs
│ │ │ └── IRss.cs
│ │ ├── packages.config
│ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ ├── RssFeedBuilder.cs
│ │ ├── RssMediaTypeFormatter.cs
│ │ ├── Scripts
│ │ │ ├── bootstrap.js
│ │ │ ├── bootstrap.min.js
│ │ │ ├── jquery-1.10.2.intellisense.js
│ │ │ ├── jquery-1.10.2.js
│ │ │ ├── jquery-1.10.2.min.js
│ │ │ ├── jquery-1.10.2.min.map
│ │ │ ├── jquery.validate.js
│ │ │ ├── jquery.validate.min.js
│ │ │ ├── jquery.validate.unobtrusive.js
│ │ │ ├── jquery.validate.unobtrusive.min.js
│ │ │ ├── jquery.validate-vsdoc.js
│ │ │ └── modernizr-2.6.2.js
│ │ ├── Views
│ │ │ └── web.config
│ │ └── Web.config
│ └── Apress.Recipes.WebApi.sln
├── Chapter 08
│ ├── 8-1
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── Content
│ │ │ │ ├── bootstrap.css
│ │ │ │ ├── bootstrap.min.css
│ │ │ │ ├── bootstrap-theme.css
│ │ │ │ └── bootstrap-theme.min.css
│ │ │ ├── ContentNegotiatedExceptionHandler.cs
│ │ │ ├── ErrorData.cs
│ │ │ ├── fonts
│ │ │ │ ├── glyphicons-halflings-regular.eot
│ │ │ │ ├── glyphicons-halflings-regular.svg
│ │ │ │ ├── glyphicons-halflings-regular.ttf
│ │ │ │ └── glyphicons-halflings-regular.woff
│ │ │ ├── HtmlPage1.html
│ │ │ ├── Index.html
│ │ │ ├── packages.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Scripts
│ │ │ │ ├── bootstrap.js
│ │ │ │ ├── bootstrap.min.js
│ │ │ │ ├── jquery-2.1.0.intellisense.js
│ │ │ │ ├── jquery-2.1.0.js
│ │ │ │ ├── jquery-2.1.0.min.js
│ │ │ │ ├── jquery-2.1.0.min.map
│ │ │ │ ├── knockout-3.1.0.debug.js
│ │ │ │ └── knockout-3.1.0.js
│ │ │ ├── Startup.cs
│ │ │ ├── TestController.cs
│ │ │ ├── Web.config
│ │ │ ├── Web.Debug.config
│ │ │ └── Web.Release.config
│ │ ├── Apress.Recipes.WebApi.RemoteServer
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.RemoteServer.csproj
│ │ │ ├── Book.cs
│ │ │ ├── BooksController.cs
│ │ │ ├── JsonpMediaTypeFormatter.cs
│ │ │ ├── JsonpQueryStringMapping.cs
│ │ │ ├── packages.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ └── Startup.cs
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 8-2
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── Content
│ │ │ │ ├── bootstrap.css
│ │ │ │ ├── bootstrap.min.css
│ │ │ │ ├── bootstrap-theme.css
│ │ │ │ └── bootstrap-theme.min.css
│ │ │ ├── fonts
│ │ │ │ ├── glyphicons-halflings-regular.eot
│ │ │ │ ├── glyphicons-halflings-regular.svg
│ │ │ │ ├── glyphicons-halflings-regular.ttf
│ │ │ │ └── glyphicons-halflings-regular.woff
│ │ │ ├── index.html
│ │ │ ├── packages.config
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Scripts
│ │ │ │ ├── bootstrap.js
│ │ │ │ ├── bootstrap.min.js
│ │ │ │ ├── jquery-2.1.0.intellisense.js
│ │ │ │ ├── jquery-2.1.0.js
│ │ │ │ ├── jquery-2.1.0.min.js
│ │ │ │ ├── jquery-2.1.0.min.map
│ │ │ │ ├── knockout-3.1.0.debug.js
│ │ │ │ └── knockout-3.1.0.js
│ │ │ ├── Web.config
│ │ │ ├── Web.Debug.config
│ │ │ └── Web.Release.config
│ │ ├── Apress.Recipes.WebApi.RemoteServer
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.RemoteServer.csproj
│ │ │ ├── Book.cs
│ │ │ ├── BooksController.cs
│ │ │ ├── packages.config
│ │ │ ├── Program.cs
│ │ │ └── Properties
│ │ │ └── AssemblyInfo.cs
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 8-3
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── Content
│ │ │ │ ├── bootstrap.css
│ │ │ │ ├── bootstrap.min.css
│ │ │ │ ├── bootstrap-theme.css
│ │ │ │ └── bootstrap-theme.min.css
│ │ │ ├── fonts
│ │ │ │ ├── glyphicons-halflings-regular.eot
│ │ │ │ ├── glyphicons-halflings-regular.svg
│ │ │ │ ├── glyphicons-halflings-regular.ttf
│ │ │ │ └── glyphicons-halflings-regular.woff
│ │ │ ├── index.html
│ │ │ ├── packages.config
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Scripts
│ │ │ │ ├── bootstrap.js
│ │ │ │ ├── bootstrap.min.js
│ │ │ │ ├── jquery-2.1.0.intellisense.js
│ │ │ │ ├── jquery-2.1.0.js
│ │ │ │ ├── jquery-2.1.0.min.js
│ │ │ │ ├── jquery-2.1.0.min.map
│ │ │ │ ├── knockout-3.1.0.debug.js
│ │ │ │ └── knockout-3.1.0.js
│ │ │ ├── Web.config
│ │ │ ├── Web.Debug.config
│ │ │ └── Web.Release.config
│ │ ├── Apress.Recipes.WebApi.RemoteServer
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.RemoteServer.csproj
│ │ │ ├── Book.cs
│ │ │ ├── BooksController.cs
│ │ │ ├── ConfigurableCorsPolicyAttribute.cs
│ │ │ ├── CorsElementCollection.cs
│ │ │ ├── CorsElement.cs
│ │ │ ├── CorsSection.cs
│ │ │ ├── packages.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ └── Startup.cs
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 8-4
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── packages.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Startup.cs
│ │ │ ├── StreamController.cs
│ │ │ └── TestItem.cs
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 8-5
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App_Start
│ │ │ │ ├── BundleConfig.cs
│ │ │ │ ├── FilterConfig.cs
│ │ │ │ ├── RouteConfig.cs
│ │ │ │ └── WebApiConfig.cs
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── Areas
│ │ │ │ └── HelpPage
│ │ │ │ ├── ApiDescriptionExtensions.cs
│ │ │ │ ├── App_Start
│ │ │ │ │ └── HelpPageConfig.cs
│ │ │ │ ├── Controllers
│ │ │ │ │ └── HelpController.cs
│ │ │ │ ├── HelpPageAreaRegistration.cs
│ │ │ │ ├── HelpPageConfigurationExtensions.cs
│ │ │ │ ├── HelpPage.css
│ │ │ │ ├── Models
│ │ │ │ │ └── HelpPageApiModel.cs
│ │ │ │ ├── SampleGeneration
│ │ │ │ │ ├── HelpPageSampleGenerator.cs
│ │ │ │ │ ├── HelpPageSampleKey.cs
│ │ │ │ │ ├── ImageSample.cs
│ │ │ │ │ ├── InvalidSample.cs
│ │ │ │ │ ├── ObjectGenerator.cs
│ │ │ │ │ ├── SampleDirection.cs
│ │ │ │ │ └── TextSample.cs
│ │ │ │ ├── Views
│ │ │ │ │ ├── Help
│ │ │ │ │ │ ├── Api.cshtml
│ │ │ │ │ │ ├── DisplayTemplates
│ │ │ │ │ │ │ ├── ApiGroup.cshtml
│ │ │ │ │ │ │ ├── HelpPageApiModel.cshtml
│ │ │ │ │ │ │ ├── ImageSample.cshtml
│ │ │ │ │ │ │ ├── InvalidSample.cshtml
│ │ │ │ │ │ │ ├── Parameters.cshtml
│ │ │ │ │ │ │ ├── Samples.cshtml
│ │ │ │ │ │ │ └── TextSample.cshtml
│ │ │ │ │ │ └── Index.cshtml
│ │ │ │ │ ├── Shared
│ │ │ │ │ │ └── _Layout.cshtml
│ │ │ │ │ ├── _ViewStart.cshtml
│ │ │ │ │ └── Web.config
│ │ │ │ └── XmlDocumentationProvider.cs
│ │ │ ├── Content
│ │ │ │ ├── bootstrap.css
│ │ │ │ ├── bootstrap.min.css
│ │ │ │ └── Site.css
│ │ │ ├── Controllers
│ │ │ │ ├── ChatController.cs
│ │ │ │ └── HomeController.cs
│ │ │ ├── favicon.ico
│ │ │ ├── fonts
│ │ │ │ ├── glyphicons-halflings-regular.eot
│ │ │ │ ├── glyphicons-halflings-regular.svg
│ │ │ │ ├── glyphicons-halflings-regular.ttf
│ │ │ │ └── glyphicons-halflings-regular.woff
│ │ │ ├── Global.asax
│ │ │ ├── Global.asax.cs
│ │ │ ├── Models
│ │ │ │ └── Message.cs
│ │ │ ├── packages.config
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Scripts
│ │ │ │ ├── bootstrap.js
│ │ │ │ ├── bootstrap.min.js
│ │ │ │ ├── jquery-1.10.2.intellisense.js
│ │ │ │ ├── jquery-1.10.2.js
│ │ │ │ ├── jquery-1.10.2.min.js
│ │ │ │ ├── jquery-1.10.2.min.map
│ │ │ │ ├── knockout-3.1.0.debug.js
│ │ │ │ ├── knockout-3.1.0.js
│ │ │ │ ├── modernizr-2.6.2.js
│ │ │ │ ├── _references.js
│ │ │ │ ├── respond.js
│ │ │ │ └── respond.min.js
│ │ │ ├── Views
│ │ │ │ ├── Home
│ │ │ │ │ └── Index.cshtml
│ │ │ │ ├── Shared
│ │ │ │ │ ├── Error.cshtml
│ │ │ │ │ └── _Layout.cshtml
│ │ │ │ ├── _ViewStart.cshtml
│ │ │ │ └── Web.config
│ │ │ ├── Web.config
│ │ │ ├── Web.Debug.config
│ │ │ └── Web.Release.config
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 8-6
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App_Start
│ │ │ │ ├── BundleConfig.cs
│ │ │ │ ├── FilterConfig.cs
│ │ │ │ ├── RouteConfig.cs
│ │ │ │ └── WebApiConfig.cs
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── Areas
│ │ │ │ └── HelpPage
│ │ │ │ ├── ApiDescriptionExtensions.cs
│ │ │ │ ├── App_Start
│ │ │ │ │ └── HelpPageConfig.cs
│ │ │ │ ├── Controllers
│ │ │ │ │ └── HelpController.cs
│ │ │ │ ├── HelpPageAreaRegistration.cs
│ │ │ │ ├── HelpPageConfigurationExtensions.cs
│ │ │ │ ├── HelpPage.css
│ │ │ │ ├── ModelDescriptions
│ │ │ │ │ ├── CollectionModelDescription.cs
│ │ │ │ │ ├── ComplexTypeModelDescription.cs
│ │ │ │ │ ├── DictionaryModelDescription.cs
│ │ │ │ │ ├── EnumTypeModelDescription.cs
│ │ │ │ │ ├── EnumValueDescription.cs
│ │ │ │ │ ├── IModelDocumentationProvider.cs
│ │ │ │ │ ├── KeyValuePairModelDescription.cs
│ │ │ │ │ ├── ModelDescription.cs
│ │ │ │ │ ├── ModelDescriptionGenerator.cs
│ │ │ │ │ ├── ModelNameAttribute.cs
│ │ │ │ │ ├── ModelNameHelper.cs
│ │ │ │ │ ├── ParameterAnnotation.cs
│ │ │ │ │ ├── ParameterDescription.cs
│ │ │ │ │ └── SimpleTypeModelDescription.cs
│ │ │ │ ├── Models
│ │ │ │ │ └── HelpPageApiModel.cs
│ │ │ │ ├── SampleGeneration
│ │ │ │ │ ├── HelpPageSampleGenerator.cs
│ │ │ │ │ ├── HelpPageSampleKey.cs
│ │ │ │ │ ├── ImageSample.cs
│ │ │ │ │ ├── InvalidSample.cs
│ │ │ │ │ ├── ObjectGenerator.cs
│ │ │ │ │ ├── SampleDirection.cs
│ │ │ │ │ └── TextSample.cs
│ │ │ │ ├── Views
│ │ │ │ │ ├── Help
│ │ │ │ │ │ ├── Api.cshtml
│ │ │ │ │ │ ├── DisplayTemplates
│ │ │ │ │ │ │ ├── ApiGroup.cshtml
│ │ │ │ │ │ │ ├── CollectionModelDescription.cshtml
│ │ │ │ │ │ │ ├── ComplexTypeModelDescription.cshtml
│ │ │ │ │ │ │ ├── DictionaryModelDescription.cshtml
│ │ │ │ │ │ │ ├── EnumTypeModelDescription.cshtml
│ │ │ │ │ │ │ ├── HelpPageApiModel.cshtml
│ │ │ │ │ │ │ ├── ImageSample.cshtml
│ │ │ │ │ │ │ ├── InvalidSample.cshtml
│ │ │ │ │ │ │ ├── KeyValuePairModelDescription.cshtml
│ │ │ │ │ │ │ ├── ModelDescriptionLink.cshtml
│ │ │ │ │ │ │ ├── Parameters.cshtml
│ │ │ │ │ │ │ ├── Samples.cshtml
│ │ │ │ │ │ │ ├── SimpleTypeModelDescription.cshtml
│ │ │ │ │ │ │ └── TextSample.cshtml
│ │ │ │ │ │ ├── Index.cshtml
│ │ │ │ │ │ └── ResourceModel.cshtml
│ │ │ │ │ ├── Shared
│ │ │ │ │ │ └── _Layout.cshtml
│ │ │ │ │ ├── _ViewStart.cshtml
│ │ │ │ │ └── Web.config
│ │ │ │ └── XmlDocumentationProvider.cs
│ │ │ ├── BooksBroadcaster.cs
│ │ │ ├── BooksHub.cs
│ │ │ ├── Content
│ │ │ │ ├── bootstrap.css
│ │ │ │ ├── bootstrap.css.map
│ │ │ │ ├── bootstrap.min.css
│ │ │ │ ├── bootstrap-theme.css
│ │ │ │ ├── bootstrap-theme.css.map
│ │ │ │ ├── bootstrap-theme.min.css
│ │ │ │ └── Site.css
│ │ │ ├── Controllers
│ │ │ │ ├── BooksController.cs
│ │ │ │ └── HomeController.cs
│ │ │ ├── favicon.ico
│ │ │ ├── fonts
│ │ │ │ ├── glyphicons-halflings-regular.eot
│ │ │ │ ├── glyphicons-halflings-regular.svg
│ │ │ │ ├── glyphicons-halflings-regular.ttf
│ │ │ │ └── glyphicons-halflings-regular.woff
│ │ │ ├── Global.asax
│ │ │ ├── Global.asax.cs
│ │ │ ├── IBooksBroadcaster.cs
│ │ │ ├── Models
│ │ │ │ └── Book.cs
│ │ │ ├── packages.config
│ │ │ ├── Project_Readme.html
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Scripts
│ │ │ │ ├── bootstrap.js
│ │ │ │ ├── bootstrap.min.js
│ │ │ │ ├── jquery-2.1.0.intellisense.js
│ │ │ │ ├── jquery-2.1.0.js
│ │ │ │ ├── jquery-2.1.0.min.js
│ │ │ │ ├── jquery-2.1.0.min.map
│ │ │ │ ├── jquery.signalR-2.0.2.js
│ │ │ │ ├── jquery.signalR-2.0.2.min.js
│ │ │ │ ├── knockout-3.1.0.debug.js
│ │ │ │ ├── knockout-3.1.0.js
│ │ │ │ ├── modernizr-2.7.2.js
│ │ │ │ ├── _references.js
│ │ │ │ ├── respond.js
│ │ │ │ ├── respond.matchmedia.addListener.js
│ │ │ │ ├── respond.matchmedia.addListener.min.js
│ │ │ │ └── respond.min.js
│ │ │ ├── Startup.cs
│ │ │ ├── Views
│ │ │ │ ├── Home
│ │ │ │ │ └── Index.cshtml
│ │ │ │ ├── Shared
│ │ │ │ │ ├── Error.cshtml
│ │ │ │ │ └── _Layout.cshtml
│ │ │ │ ├── _ViewStart.cshtml
│ │ │ │ └── Web.config
│ │ │ ├── Web.config
│ │ │ ├── Web.Debug.config
│ │ │ └── Web.Release.config
│ │ └── Apress.Recipes.WebApi.sln
│ └── 8-7
│ └── Apress.WebApi.Recipes
│ ├── Apress.WebApi.Recipes
│ │ ├── App_Start
│ │ │ ├── BundleConfig.cs
│ │ │ ├── FilterConfig.cs
│ │ │ ├── RouteConfig.cs
│ │ │ └── WebApiConfig.cs
│ │ ├── Apress.WebApi.Recipes.csproj
│ │ ├── Areas
│ │ │ └── HelpPage
│ │ │ ├── ApiDescriptionExtensions.cs
│ │ │ ├── App_Start
│ │ │ │ └── HelpPageConfig.cs
│ │ │ ├── Controllers
│ │ │ │ └── HelpController.cs
│ │ │ ├── HelpPageAreaRegistration.cs
│ │ │ ├── HelpPageConfigurationExtensions.cs
│ │ │ ├── HelpPage.css
│ │ │ ├── ModelDescriptions
│ │ │ │ ├── CollectionModelDescription.cs
│ │ │ │ ├── ComplexTypeModelDescription.cs
│ │ │ │ ├── DictionaryModelDescription.cs
│ │ │ │ ├── EnumTypeModelDescription.cs
│ │ │ │ ├── EnumValueDescription.cs
│ │ │ │ ├── IModelDocumentationProvider.cs
│ │ │ │ ├── KeyValuePairModelDescription.cs
│ │ │ │ ├── ModelDescription.cs
│ │ │ │ ├── ModelDescriptionGenerator.cs
│ │ │ │ ├── ModelNameAttribute.cs
│ │ │ │ ├── ModelNameHelper.cs
│ │ │ │ ├── ParameterAnnotation.cs
│ │ │ │ ├── ParameterDescription.cs
│ │ │ │ └── SimpleTypeModelDescription.cs
│ │ │ ├── Models
│ │ │ │ └── HelpPageApiModel.cs
│ │ │ ├── SampleGeneration
│ │ │ │ ├── HelpPageSampleGenerator.cs
│ │ │ │ ├── HelpPageSampleKey.cs
│ │ │ │ ├── ImageSample.cs
│ │ │ │ ├── InvalidSample.cs
│ │ │ │ ├── ObjectGenerator.cs
│ │ │ │ ├── SampleDirection.cs
│ │ │ │ └── TextSample.cs
│ │ │ ├── Views
│ │ │ │ ├── Help
│ │ │ │ │ ├── Api.cshtml
│ │ │ │ │ ├── DisplayTemplates
│ │ │ │ │ │ ├── ApiGroup.cshtml
│ │ │ │ │ │ ├── CollectionModelDescription.cshtml
│ │ │ │ │ │ ├── ComplexTypeModelDescription.cshtml
│ │ │ │ │ │ ├── DictionaryModelDescription.cshtml
│ │ │ │ │ │ ├── EnumTypeModelDescription.cshtml
│ │ │ │ │ │ ├── HelpPageApiModel.cshtml
│ │ │ │ │ │ ├── ImageSample.cshtml
│ │ │ │ │ │ ├── InvalidSample.cshtml
│ │ │ │ │ │ ├── KeyValuePairModelDescription.cshtml
│ │ │ │ │ │ ├── ModelDescriptionLink.cshtml
│ │ │ │ │ │ ├── Parameters.cshtml
│ │ │ │ │ │ ├── Samples.cshtml
│ │ │ │ │ │ ├── SimpleTypeModelDescription.cshtml
│ │ │ │ │ │ └── TextSample.cshtml
│ │ │ │ │ ├── Index.cshtml
│ │ │ │ │ └── ResourceModel.cshtml
│ │ │ │ ├── Shared
│ │ │ │ │ └── _Layout.cshtml
│ │ │ │ ├── _ViewStart.cshtml
│ │ │ │ └── Web.config
│ │ │ └── XmlDocumentationProvider.cs
│ │ ├── ChatWebSocketHandler.cs
│ │ ├── Content
│ │ │ ├── bootstrap.css
│ │ │ ├── bootstrap.css.map
│ │ │ ├── bootstrap.min.css
│ │ │ ├── bootstrap-theme.css
│ │ │ ├── bootstrap-theme.css.map
│ │ │ ├── bootstrap-theme.min.css
│ │ │ └── Site.css
│ │ ├── Controllers
│ │ │ ├── ChatController.cs
│ │ │ └── HomeController.cs
│ │ ├── favicon.ico
│ │ ├── fonts
│ │ │ ├── glyphicons-halflings-regular.eot
│ │ │ ├── glyphicons-halflings-regular.svg
│ │ │ ├── glyphicons-halflings-regular.ttf
│ │ │ └── glyphicons-halflings-regular.woff
│ │ ├── Global.asax
│ │ ├── Global.asax.cs
│ │ ├── Models
│ │ │ └── Message.cs
│ │ ├── packages.config
│ │ ├── Project_Readme.html
│ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ ├── Scripts
│ │ │ ├── bootstrap.js
│ │ │ ├── bootstrap.min.js
│ │ │ ├── jquery-2.1.0.intellisense.js
│ │ │ ├── jquery-2.1.0.js
│ │ │ ├── jquery-2.1.0.min.js
│ │ │ ├── jquery-2.1.0.min.map
│ │ │ ├── knockout-3.1.0.debug.js
│ │ │ ├── knockout-3.1.0.js
│ │ │ ├── modernizr-2.7.2.js
│ │ │ ├── _references.js
│ │ │ ├── respond.js
│ │ │ ├── respond.matchmedia.addListener.js
│ │ │ ├── respond.matchmedia.addListener.min.js
│ │ │ └── respond.min.js
│ │ ├── Views
│ │ │ ├── Home
│ │ │ │ └── Index.cshtml
│ │ │ ├── Shared
│ │ │ │ ├── Error.cshtml
│ │ │ │ └── _Layout.cshtml
│ │ │ ├── _ViewStart.cshtml
│ │ │ └── Web.config
│ │ ├── Web.config
│ │ ├── Web.Debug.config
│ │ └── Web.Release.config
│ └── Apress.WebApi.Recipes.sln
├── Chapter 09
│ ├── 9-1
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── DependencyTestController.cs
│ │ │ ├── HelloService.cs
│ │ │ ├── IService.cs
│ │ │ ├── packages.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── SimpleHttpControllerActivator.cs
│ │ │ ├── Startup.cs
│ │ │ ├── TinyIoC.cs
│ │ │ └── TinyIoCHttpControllerActivator.cs
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 9-2
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── DependencyTestController.cs
│ │ │ ├── HelloService.cs
│ │ │ ├── IService.cs
│ │ │ ├── packages.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ └── Startup.cs
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 9-3
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── DependencyTestController.cs
│ │ │ ├── HelloService.cs
│ │ │ ├── IService.cs
│ │ │ ├── NinjectResolver.cs
│ │ │ ├── NinjectScope.cs
│ │ │ ├── packages.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── SampleHandler.cs
│ │ │ └── Startup.cs
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 9-4
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── DependencyTestController.cs
│ │ │ ├── HelloService.cs
│ │ │ ├── IService.cs
│ │ │ ├── MyActionFilter.cs
│ │ │ ├── MyFormatter.cs
│ │ │ ├── NinjectResolver.cs
│ │ │ ├── NinjectScope.cs
│ │ │ ├── packages.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── SampleHandler.cs
│ │ │ └── Startup.cs
│ │ └── Apress.Recipes.WebApi.sln
│ └── 9-5
│ └── Apress.Recipes.WebApi
│ ├── Apress.Recipes.WebApi
│ │ ├── App.config
│ │ ├── Apress.Recipes.WebApi.csproj
│ │ ├── DependencyTestController.cs
│ │ ├── HelloService.cs
│ │ ├── IService.cs
│ │ ├── packages.config
│ │ ├── Program.cs
│ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ ├── Startup.cs
│ │ ├── TinyIoC.cs
│ │ ├── TinyIoCResolver.cs
│ │ └── TinyIoCScope.cs
│ └── Apress.Recipes.WebApi.sln
├── Chapter 10
│ ├── 10-2
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── packages.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── RequireHttps2Attribute.cs
│ │ │ ├── RequireHttpsAttribute.cs
│ │ │ ├── RequireHttpsHandler.cs
│ │ │ ├── Startup.cs
│ │ │ └── TestController.cs
│ │ ├── Apress.Recipes.WebApi.SelfHost
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.SelfHost.csproj
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── RequireHttpsAttribute.cs
│ │ │ └── TestController.cs
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 10-3
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── packages.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── RequireHttpsAttribute.cs
│ │ │ ├── Startup.cs
│ │ │ └── TestController.cs
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 10-4
│ │ ├── Apress.Recipes.WebApi.OwinSelfHost
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.OwinSelfHost.csproj
│ │ │ ├── packages.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Startup.cs
│ │ │ └── TestController.cs
│ │ ├── Apress.Recipes.WebApi.SelfHost
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.SelfHost.csproj
│ │ │ ├── packages.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── TestController.cs
│ │ │ └── WindowsAuthSelfHostConfiguration.cs
│ │ ├── Apress.Recipes.WebApi.sln
│ │ └── Apress.Recipes.WebApi.WebHost
│ │ ├── App_Start
│ │ │ ├── BundleConfig.cs
│ │ │ ├── FilterConfig.cs
│ │ │ ├── RouteConfig.cs
│ │ │ └── WebApiConfig.cs
│ │ ├── Apress.Recipes.WebApi.WebHost.csproj
│ │ ├── Areas
│ │ │ └── HelpPage
│ │ │ ├── ApiDescriptionExtensions.cs
│ │ │ ├── App_Start
│ │ │ │ └── HelpPageConfig.cs
│ │ │ ├── Controllers
│ │ │ │ └── HelpController.cs
│ │ │ ├── HelpPageAreaRegistration.cs
│ │ │ ├── HelpPageConfigurationExtensions.cs
│ │ │ ├── HelpPage.css
│ │ │ ├── ModelDescriptions
│ │ │ │ ├── CollectionModelDescription.cs
│ │ │ │ ├── ComplexTypeModelDescription.cs
│ │ │ │ ├── DictionaryModelDescription.cs
│ │ │ │ ├── EnumTypeModelDescription.cs
│ │ │ │ ├── EnumValueDescription.cs
│ │ │ │ ├── IModelDocumentationProvider.cs
│ │ │ │ ├── KeyValuePairModelDescription.cs
│ │ │ │ ├── ModelDescription.cs
│ │ │ │ ├── ModelDescriptionGenerator.cs
│ │ │ │ ├── ModelNameAttribute.cs
│ │ │ │ ├── ModelNameHelper.cs
│ │ │ │ ├── ParameterAnnotation.cs
│ │ │ │ ├── ParameterDescription.cs
│ │ │ │ └── SimpleTypeModelDescription.cs
│ │ │ ├── Models
│ │ │ │ └── HelpPageApiModel.cs
│ │ │ ├── SampleGeneration
│ │ │ │ ├── HelpPageSampleGenerator.cs
│ │ │ │ ├── HelpPageSampleKey.cs
│ │ │ │ ├── ImageSample.cs
│ │ │ │ ├── InvalidSample.cs
│ │ │ │ ├── ObjectGenerator.cs
│ │ │ │ ├── SampleDirection.cs
│ │ │ │ └── TextSample.cs
│ │ │ ├── Views
│ │ │ │ ├── Help
│ │ │ │ │ ├── Api.cshtml
│ │ │ │ │ ├── DisplayTemplates
│ │ │ │ │ │ ├── ApiGroup.cshtml
│ │ │ │ │ │ ├── CollectionModelDescription.cshtml
│ │ │ │ │ │ ├── ComplexTypeModelDescription.cshtml
│ │ │ │ │ │ ├── DictionaryModelDescription.cshtml
│ │ │ │ │ │ ├── EnumTypeModelDescription.cshtml
│ │ │ │ │ │ ├── HelpPageApiModel.cshtml
│ │ │ │ │ │ ├── ImageSample.cshtml
│ │ │ │ │ │ ├── InvalidSample.cshtml
│ │ │ │ │ │ ├── KeyValuePairModelDescription.cshtml
│ │ │ │ │ │ ├── ModelDescriptionLink.cshtml
│ │ │ │ │ │ ├── Parameters.cshtml
│ │ │ │ │ │ ├── Samples.cshtml
│ │ │ │ │ │ ├── SimpleTypeModelDescription.cshtml
│ │ │ │ │ │ └── TextSample.cshtml
│ │ │ │ │ ├── Index.cshtml
│ │ │ │ │ └── ResourceModel.cshtml
│ │ │ │ ├── Shared
│ │ │ │ │ └── _Layout.cshtml
│ │ │ │ ├── _ViewStart.cshtml
│ │ │ │ └── Web.config
│ │ │ └── XmlDocumentationProvider.cs
│ │ ├── Content
│ │ │ ├── bootstrap.css
│ │ │ ├── bootstrap.min.css
│ │ │ └── Site.css
│ │ ├── Controllers
│ │ │ └── ValuesController.cs
│ │ ├── favicon.ico
│ │ ├── fonts
│ │ │ ├── glyphicons-halflings-regular.eot
│ │ │ ├── glyphicons-halflings-regular.svg
│ │ │ ├── glyphicons-halflings-regular.ttf
│ │ │ └── glyphicons-halflings-regular.woff
│ │ ├── Global.asax
│ │ ├── Global.asax.cs
│ │ ├── packages.config
│ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ ├── Scripts
│ │ │ ├── bootstrap.js
│ │ │ ├── bootstrap.min.js
│ │ │ ├── jquery-1.10.2.intellisense.js
│ │ │ ├── jquery-1.10.2.js
│ │ │ ├── jquery-1.10.2.min.js
│ │ │ ├── jquery-1.10.2.min.map
│ │ │ ├── modernizr-2.6.2.js
│ │ │ ├── _references.js
│ │ │ ├── respond.js
│ │ │ └── respond.min.js
│ │ ├── Web.config
│ │ ├── Web.Debug.config
│ │ └── Web.Release.config
│ ├── 10-5
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── packages.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ └── TestController.cs
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 10-6
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── packages.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Startup.cs
│ │ │ ├── TestController.cs
│ │ │ └── Token.cs
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 10-7
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── BasicAuthHandler.cs
│ │ │ ├── packages.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Startup.cs
│ │ │ └── TestController.cs
│ │ └── Apress.Recipes.WebApi.sln
│ └── 10-8
│ └── Apress.Recipes.WebApi
│ ├── Apress.Recipes.WebApi
│ │ ├── App_Start
│ │ │ └── WebApiConfig.cs
│ │ ├── Apress.Recipes.WebApi.csproj
│ │ ├── Areas
│ │ │ └── HelpPage
│ │ │ ├── ApiDescriptionExtensions.cs
│ │ │ ├── App_Start
│ │ │ │ └── HelpPageConfig.cs
│ │ │ ├── Controllers
│ │ │ │ └── HelpController.cs
│ │ │ ├── HelpPageAreaRegistration.cs
│ │ │ ├── HelpPageConfigurationExtensions.cs
│ │ │ ├── HelpPage.css
│ │ │ ├── ModelDescriptions
│ │ │ │ ├── CollectionModelDescription.cs
│ │ │ │ ├── ComplexTypeModelDescription.cs
│ │ │ │ ├── DictionaryModelDescription.cs
│ │ │ │ ├── EnumTypeModelDescription.cs
│ │ │ │ ├── EnumValueDescription.cs
│ │ │ │ ├── IModelDocumentationProvider.cs
│ │ │ │ ├── KeyValuePairModelDescription.cs
│ │ │ │ ├── ModelDescription.cs
│ │ │ │ ├── ModelDescriptionGenerator.cs
│ │ │ │ ├── ModelNameAttribute.cs
│ │ │ │ ├── ModelNameHelper.cs
│ │ │ │ ├── ParameterAnnotation.cs
│ │ │ │ ├── ParameterDescription.cs
│ │ │ │ └── SimpleTypeModelDescription.cs
│ │ │ ├── Models
│ │ │ │ └── HelpPageApiModel.cs
│ │ │ ├── SampleGeneration
│ │ │ │ ├── HelpPageSampleGenerator.cs
│ │ │ │ ├── HelpPageSampleKey.cs
│ │ │ │ ├── ImageSample.cs
│ │ │ │ ├── InvalidSample.cs
│ │ │ │ ├── ObjectGenerator.cs
│ │ │ │ ├── SampleDirection.cs
│ │ │ │ └── TextSample.cs
│ │ │ ├── Views
│ │ │ │ ├── Help
│ │ │ │ │ ├── Api.cshtml
│ │ │ │ │ ├── DisplayTemplates
│ │ │ │ │ │ ├── ApiGroup.cshtml
│ │ │ │ │ │ ├── CollectionModelDescription.cshtml
│ │ │ │ │ │ ├── ComplexTypeModelDescription.cshtml
│ │ │ │ │ │ ├── DictionaryModelDescription.cshtml
│ │ │ │ │ │ ├── EnumTypeModelDescription.cshtml
│ │ │ │ │ │ ├── HelpPageApiModel.cshtml
│ │ │ │ │ │ ├── ImageSample.cshtml
│ │ │ │ │ │ ├── InvalidSample.cshtml
│ │ │ │ │ │ ├── KeyValuePairModelDescription.cshtml
│ │ │ │ │ │ ├── ModelDescriptionLink.cshtml
│ │ │ │ │ │ ├── Parameters.cshtml
│ │ │ │ │ │ ├── Samples.cshtml
│ │ │ │ │ │ ├── SimpleTypeModelDescription.cshtml
│ │ │ │ │ │ └── TextSample.cshtml
│ │ │ │ │ ├── Index.cshtml
│ │ │ │ │ └── ResourceModel.cshtml
│ │ │ │ ├── Shared
│ │ │ │ │ └── _Layout.cshtml
│ │ │ │ ├── _ViewStart.cshtml
│ │ │ │ └── Web.config
│ │ │ └── XmlDocumentationProvider.cs
│ │ ├── ClearHeaderModule.cs
│ │ ├── Content
│ │ │ ├── bootstrap.css
│ │ │ ├── bootstrap.min.css
│ │ │ └── Site.css
│ │ ├── Controllers
│ │ │ └── ValuesController.cs
│ │ ├── favicon.ico
│ │ ├── fonts
│ │ │ ├── glyphicons-halflings-regular.eot
│ │ │ ├── glyphicons-halflings-regular.svg
│ │ │ ├── glyphicons-halflings-regular.ttf
│ │ │ └── glyphicons-halflings-regular.woff
│ │ ├── Global.asax
│ │ ├── Global.asax.cs
│ │ ├── packages.config
│ │ ├── Project_Readme.html
│ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ ├── Scripts
│ │ │ ├── bootstrap.js
│ │ │ ├── bootstrap.min.js
│ │ │ ├── jquery-1.10.2.intellisense.js
│ │ │ ├── jquery-1.10.2.js
│ │ │ ├── jquery-1.10.2.min.js
│ │ │ ├── jquery-1.10.2.min.map
│ │ │ ├── modernizr-2.6.2.js
│ │ │ ├── _references.js
│ │ │ ├── respond.js
│ │ │ └── respond.min.js
│ │ ├── Web.config
│ │ ├── Web.Debug.config
│ │ └── Web.Release.config
│ └── Apress.Recipes.WebApi.sln
├── Chapter 11
│ ├── 11-1
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── IItemService.cs
│ │ │ ├── Item.cs
│ │ │ ├── ItemsController.cs
│ │ │ ├── packages.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ └── Startup.cs
│ │ ├── Apress.Recipes.WebApi.sln
│ │ └── Apress.Recipes.WebApi.Test
│ │ ├── Apress.Recipes.WebApi.Test.csproj
│ │ ├── ItemsControllerTests.cs
│ │ ├── packages.config
│ │ └── Properties
│ │ └── AssemblyInfo.cs
│ ├── 11-2
│ │ └── Apress.Recipes.WebApi
│ │ ├── apress.recipes.webapi
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── ILoggingService.cs
│ │ │ ├── LoggingHandler.cs
│ │ │ ├── LoggingHandlerTests.cs
│ │ │ ├── packages.config
│ │ │ └── Properties
│ │ │ └── AssemblyInfo.cs
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 11-3
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── CacheAttribute.cs
│ │ │ ├── CacheAttributeTests.cs
│ │ │ ├── packages.config
│ │ │ └── Properties
│ │ │ └── AssemblyInfo.cs
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 11-4
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── EvilItem.cs
│ │ │ ├── Item.cs
│ │ │ ├── packages.config
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── ProtoBufFormatter.cs
│ │ │ └── ProtoBufFormatterTest.cs
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 11-5
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── EvilItem.cs
│ │ │ ├── Item.cs
│ │ │ ├── ItemsController.cs
│ │ │ ├── ItemsControllerTest.cs
│ │ │ ├── OtherController.cs
│ │ │ ├── packages.config
│ │ │ └── Properties
│ │ │ └── AssemblyInfo.cs
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 11-6
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── AttributeRouteTests.cs
│ │ │ ├── HappyItemsController.cs
│ │ │ ├── Item.cs
│ │ │ ├── ItemsController.cs
│ │ │ ├── packages.config
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── ReflectionHelpers.cs
│ │ │ ├── RouteContext.cs
│ │ │ └── RouteTests.cs
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 11-7
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── CacheAttribute.cs
│ │ │ ├── HelloController.cs
│ │ │ ├── ILoggingService.cs
│ │ │ ├── IntegrationTest.cs
│ │ │ ├── LoggingHandler.cs
│ │ │ ├── packages.config
│ │ │ └── Properties
│ │ │ └── AssemblyInfo.cs
│ │ └── Apress.Recipes.WebApi.sln
│ └── 11-8
│ └── Apress.Recipes.WebApi
│ ├── Apress.Recipes.WebApi
│ │ ├── App.config
│ │ ├── Apress.Recipes.WebApi.csproj
│ │ ├── CacheAttribute.cs
│ │ ├── HelloController.cs
│ │ ├── ILoggingService.cs
│ │ ├── IntegrationTest.cs
│ │ ├── LoggingMiddleware.cs
│ │ ├── packages.config
│ │ ├── Program.cs
│ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ └── Startup.cs
│ └── Apress.Recipes.WebApi.sln
├── Chapter 12
│ ├── 10-1
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App_Data
│ │ │ │ ├── PlayersAppContext-20140613131531_log.ldf
│ │ │ │ └── PlayersAppContext-20140613131531.mdf
│ │ │ ├── App_Start
│ │ │ │ ├── BundleConfig.cs
│ │ │ │ ├── FilterConfig.cs
│ │ │ │ ├── RouteConfig.cs
│ │ │ │ └── WebApiConfig.cs
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── Areas
│ │ │ │ └── HelpPage
│ │ │ │ ├── ApiDescriptionExtensions.cs
│ │ │ │ ├── App_Start
│ │ │ │ │ └── HelpPageConfig.cs
│ │ │ │ ├── Controllers
│ │ │ │ │ └── HelpController.cs
│ │ │ │ ├── HelpPageAreaRegistration.cs
│ │ │ │ ├── HelpPageConfigurationExtensions.cs
│ │ │ │ ├── HelpPage.css
│ │ │ │ ├── ModelDescriptions
│ │ │ │ │ ├── CollectionModelDescription.cs
│ │ │ │ │ ├── ComplexTypeModelDescription.cs
│ │ │ │ │ ├── DictionaryModelDescription.cs
│ │ │ │ │ ├── EnumTypeModelDescription.cs
│ │ │ │ │ ├── EnumValueDescription.cs
│ │ │ │ │ ├── IModelDocumentationProvider.cs
│ │ │ │ │ ├── KeyValuePairModelDescription.cs
│ │ │ │ │ ├── ModelDescription.cs
│ │ │ │ │ ├── ModelDescriptionGenerator.cs
│ │ │ │ │ ├── ModelNameAttribute.cs
│ │ │ │ │ ├── ModelNameHelper.cs
│ │ │ │ │ ├── ParameterAnnotation.cs
│ │ │ │ │ ├── ParameterDescription.cs
│ │ │ │ │ └── SimpleTypeModelDescription.cs
│ │ │ │ ├── Models
│ │ │ │ │ └── HelpPageApiModel.cs
│ │ │ │ ├── SampleGeneration
│ │ │ │ │ ├── HelpPageSampleGenerator.cs
│ │ │ │ │ ├── HelpPageSampleKey.cs
│ │ │ │ │ ├── ImageSample.cs
│ │ │ │ │ ├── InvalidSample.cs
│ │ │ │ │ ├── ObjectGenerator.cs
│ │ │ │ │ ├── SampleDirection.cs
│ │ │ │ │ └── TextSample.cs
│ │ │ │ ├── Views
│ │ │ │ │ ├── Help
│ │ │ │ │ │ ├── Api.cshtml
│ │ │ │ │ │ ├── DisplayTemplates
│ │ │ │ │ │ │ ├── ApiGroup.cshtml
│ │ │ │ │ │ │ ├── CollectionModelDescription.cshtml
│ │ │ │ │ │ │ ├── ComplexTypeModelDescription.cshtml
│ │ │ │ │ │ │ ├── DictionaryModelDescription.cshtml
│ │ │ │ │ │ │ ├── EnumTypeModelDescription.cshtml
│ │ │ │ │ │ │ ├── HelpPageApiModel.cshtml
│ │ │ │ │ │ │ ├── ImageSample.cshtml
│ │ │ │ │ │ │ ├── InvalidSample.cshtml
│ │ │ │ │ │ │ ├── KeyValuePairModelDescription.cshtml
│ │ │ │ │ │ │ ├── ModelDescriptionLink.cshtml
│ │ │ │ │ │ │ ├── Parameters.cshtml
│ │ │ │ │ │ │ ├── Samples.cshtml
│ │ │ │ │ │ │ ├── SimpleTypeModelDescription.cshtml
│ │ │ │ │ │ │ └── TextSample.cshtml
│ │ │ │ │ │ ├── Index.cshtml
│ │ │ │ │ │ └── ResourceModel.cshtml
│ │ │ │ │ ├── Shared
│ │ │ │ │ │ └── _Layout.cshtml
│ │ │ │ │ ├── _ViewStart.cshtml
│ │ │ │ │ └── Web.config
│ │ │ │ └── XmlDocumentationProvider.cs
│ │ │ ├── Content
│ │ │ │ ├── bootstrap.css
│ │ │ │ ├── bootstrap.min.css
│ │ │ │ └── Site.css
│ │ │ ├── Controllers
│ │ │ │ ├── HomeController.cs
│ │ │ │ ├── PlayersController.cs
│ │ │ │ └── ValuesController.cs
│ │ │ ├── favicon.ico
│ │ │ ├── fonts
│ │ │ │ ├── glyphicons-halflings-regular.eot
│ │ │ │ ├── glyphicons-halflings-regular.svg
│ │ │ │ ├── glyphicons-halflings-regular.ttf
│ │ │ │ └── glyphicons-halflings-regular.woff
│ │ │ ├── Global.asax
│ │ │ ├── Global.asax.cs
│ │ │ ├── Migrations
│ │ │ │ ├── 201406131121114_InitialCreate.cs
│ │ │ │ ├── 201406131121114_InitialCreate.Designer.cs
│ │ │ │ ├── 201406131121114_InitialCreate.resx
│ │ │ │ └── Configuration.cs
│ │ │ ├── Models
│ │ │ │ ├── Player.cs
│ │ │ │ └── PlayersAppContext.cs
│ │ │ ├── packages.config
│ │ │ ├── Project_Readme.html
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Scripts
│ │ │ │ ├── bootstrap.js
│ │ │ │ ├── bootstrap.min.js
│ │ │ │ ├── jquery-1.10.2.intellisense.js
│ │ │ │ ├── jquery-1.10.2.js
│ │ │ │ ├── jquery-1.10.2.min.js
│ │ │ │ ├── jquery-1.10.2.min.map
│ │ │ │ ├── modernizr-2.6.2.js
│ │ │ │ ├── _references.js
│ │ │ │ ├── respond.js
│ │ │ │ └── respond.min.js
│ │ │ ├── Views
│ │ │ │ ├── Home
│ │ │ │ │ └── Index.cshtml
│ │ │ │ ├── Shared
│ │ │ │ │ ├── Error.cshtml
│ │ │ │ │ └── _Layout.cshtml
│ │ │ │ ├── _ViewStart.cshtml
│ │ │ │ └── Web.config
│ │ │ ├── Web.config
│ │ │ ├── Web.Debug.config
│ │ │ └── Web.Release.config
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 10-2
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── packages.config
│ │ │ ├── Player.cs
│ │ │ ├── PlayersController.cs
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ └── Startup.cs
│ │ └── Apress.Recipes.WebApi.sln
│ ├── 10-3
│ │ └── Apress.Recipes.WebApi
│ │ ├── Apress.Recipes.WebApi
│ │ │ ├── App.config
│ │ │ ├── Apress.Recipes.WebApi.csproj
│ │ │ ├── packages.config
│ │ │ ├── Player.cs
│ │ │ ├── PlayersController.cs
│ │ │ ├── Program.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── SkaterStat.cs
│ │ │ ├── Startup.cs
│ │ │ └── StatsController.cs
│ │ └── Apress.Recipes.WebApi.sln
│ └── 10-4
│ └── Apress.Recipes.WebApi
│ ├── Apress.Recipes.WebApi
│ │ ├── App.config
│ │ ├── Apress.Recipes.WebApi.csproj
│ │ ├── packages.config
│ │ ├── Player.cs
│ │ ├── PlayersController.cs
│ │ ├── Program.cs
│ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ ├── SkaterStat.cs
│ │ └── Startup.cs
│ └── Apress.Recipes.WebApi.sln
├── LICENSE
└── README.md
803 directories, 2649 files
标签:
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论