diff --git a/Mvc.NoFun.sln b/Mvc.NoFun.sln index 3d29a9003e..b72d4d4bf1 100644 --- a/Mvc.NoFun.sln +++ b/Mvc.NoFun.sln @@ -19,8 +19,6 @@ Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Microsoft.AspNet.Mvc.Razor. EndProject Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Microsoft.AspNet.Mvc.Core.Test", "test\Microsoft.AspNet.Mvc.Core.Test\Microsoft.AspNet.Mvc.Core.Test.xproj", "{A8AA326E-8EE8-4F11-B750-23028E0949D7}" EndProject -Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "MvcSample.Web", "samples\MvcSample.Web\MvcSample.Web.xproj", "{FBB2B86E-972B-4185-9FF2-62CAB5F8388F}" -EndProject Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Microsoft.AspNet.Mvc.Razor.Host", "src\Microsoft.AspNet.Mvc.Razor.Host\Microsoft.AspNet.Mvc.Razor.Host.xproj", "{520B3AA4-363A-497C-8C15-80423C5AFC85}" EndProject Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Microsoft.AspNet.Mvc.Razor.Host.Test", "test\Microsoft.AspNet.Mvc.Razor.Host.Test\Microsoft.AspNet.Mvc.Razor.Host.Test.xproj", "{7C4F5973-0491-4028-B1DC-A9BA73FF9F77}" @@ -86,6 +84,8 @@ Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Microsoft.AspNet.Mvc.Locali EndProject Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Microsoft.AspNet.Mvc.TestDiagnosticListener.Sources", "test\Microsoft.AspNet.Mvc.TestDiagnosticListener.Sources\Microsoft.AspNet.Mvc.TestDiagnosticListener.Sources.xproj", "{9879B5D5-2325-4A81-B4DF-F279FE8FEEB4}" EndProject +Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "MvcSandbox", "samples\MvcSandbox\MvcSandbox.xproj", "{14ED4476-9F24-4776-8417-EA6927F6C9C9}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -146,16 +146,6 @@ Global {A8AA326E-8EE8-4F11-B750-23028E0949D7}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {A8AA326E-8EE8-4F11-B750-23028E0949D7}.Release|Mixed Platforms.Build.0 = Release|Any CPU {A8AA326E-8EE8-4F11-B750-23028E0949D7}.Release|x86.ActiveCfg = Release|Any CPU - {FBB2B86E-972B-4185-9FF2-62CAB5F8388F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FBB2B86E-972B-4185-9FF2-62CAB5F8388F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FBB2B86E-972B-4185-9FF2-62CAB5F8388F}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {FBB2B86E-972B-4185-9FF2-62CAB5F8388F}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {FBB2B86E-972B-4185-9FF2-62CAB5F8388F}.Debug|x86.ActiveCfg = Debug|Any CPU - {FBB2B86E-972B-4185-9FF2-62CAB5F8388F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FBB2B86E-972B-4185-9FF2-62CAB5F8388F}.Release|Any CPU.Build.0 = Release|Any CPU - {FBB2B86E-972B-4185-9FF2-62CAB5F8388F}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {FBB2B86E-972B-4185-9FF2-62CAB5F8388F}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {FBB2B86E-972B-4185-9FF2-62CAB5F8388F}.Release|x86.ActiveCfg = Release|Any CPU {520B3AA4-363A-497C-8C15-80423C5AFC85}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {520B3AA4-363A-497C-8C15-80423C5AFC85}.Debug|Any CPU.Build.0 = Debug|Any CPU {520B3AA4-363A-497C-8C15-80423C5AFC85}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU @@ -504,6 +494,18 @@ Global {9879B5D5-2325-4A81-B4DF-F279FE8FEEB4}.Release|Mixed Platforms.Build.0 = Release|Any CPU {9879B5D5-2325-4A81-B4DF-F279FE8FEEB4}.Release|x86.ActiveCfg = Release|Any CPU {9879B5D5-2325-4A81-B4DF-F279FE8FEEB4}.Release|x86.Build.0 = Release|Any CPU + {14ED4476-9F24-4776-8417-EA6927F6C9C9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {14ED4476-9F24-4776-8417-EA6927F6C9C9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {14ED4476-9F24-4776-8417-EA6927F6C9C9}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {14ED4476-9F24-4776-8417-EA6927F6C9C9}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {14ED4476-9F24-4776-8417-EA6927F6C9C9}.Debug|x86.ActiveCfg = Debug|Any CPU + {14ED4476-9F24-4776-8417-EA6927F6C9C9}.Debug|x86.Build.0 = Debug|Any CPU + {14ED4476-9F24-4776-8417-EA6927F6C9C9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {14ED4476-9F24-4776-8417-EA6927F6C9C9}.Release|Any CPU.Build.0 = Release|Any CPU + {14ED4476-9F24-4776-8417-EA6927F6C9C9}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {14ED4476-9F24-4776-8417-EA6927F6C9C9}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {14ED4476-9F24-4776-8417-EA6927F6C9C9}.Release|x86.ActiveCfg = Release|Any CPU + {14ED4476-9F24-4776-8417-EA6927F6C9C9}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -514,7 +516,6 @@ Global {C48DA9D7-ACB5-4408-AA79-27ECB60A67EF} = {32285FA4-6B46-4D6B-A840-2B13E4C8B58E} {3F6E355E-4869-41D9-943B-D54771221A7F} = {3BA657BF-28B1-42DA-B5B0-1C4601FCF7B1} {A8AA326E-8EE8-4F11-B750-23028E0949D7} = {3BA657BF-28B1-42DA-B5B0-1C4601FCF7B1} - {FBB2B86E-972B-4185-9FF2-62CAB5F8388F} = {DAAE4C74-D06F-4874-A166-33305D2643CE} {520B3AA4-363A-497C-8C15-80423C5AFC85} = {32285FA4-6B46-4D6B-A840-2B13E4C8B58E} {7C4F5973-0491-4028-B1DC-A9BA73FF9F77} = {3BA657BF-28B1-42DA-B5B0-1C4601FCF7B1} {5F945B82-FE5F-425C-956C-8BC2F2020254} = {3BA657BF-28B1-42DA-B5B0-1C4601FCF7B1} @@ -545,5 +546,6 @@ Global {50893B10-5735-4F35-9995-F81DA3F0189E} = {32285FA4-6B46-4D6B-A840-2B13E4C8B58E} {8FC726B5-E766-44E0-8B38-1313B6D8D9A7} = {3BA657BF-28B1-42DA-B5B0-1C4601FCF7B1} {9879B5D5-2325-4A81-B4DF-F279FE8FEEB4} = {3BA657BF-28B1-42DA-B5B0-1C4601FCF7B1} + {14ED4476-9F24-4776-8417-EA6927F6C9C9} = {DAAE4C74-D06F-4874-A166-33305D2643CE} EndGlobalSection EndGlobal diff --git a/Mvc.sln b/Mvc.sln index 8e7fa86b91..308001f973 100644 --- a/Mvc.sln +++ b/Mvc.sln @@ -19,8 +19,6 @@ Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Microsoft.AspNet.Mvc.Razor. EndProject Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Microsoft.AspNet.Mvc.Core.Test", "test\Microsoft.AspNet.Mvc.Core.Test\Microsoft.AspNet.Mvc.Core.Test.xproj", "{A8AA326E-8EE8-4F11-B750-23028E0949D7}" EndProject -Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "MvcSample.Web", "samples\MvcSample.Web\MvcSample.Web.xproj", "{FBB2B86E-972B-4185-9FF2-62CAB5F8388F}" -EndProject Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Microsoft.AspNet.Mvc.Razor.Host", "src\Microsoft.AspNet.Mvc.Razor.Host\Microsoft.AspNet.Mvc.Razor.Host.xproj", "{520B3AA4-363A-497C-8C15-80423C5AFC85}" EndProject Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Microsoft.AspNet.Mvc.Razor.Host.Test", "test\Microsoft.AspNet.Mvc.Razor.Host.Test\Microsoft.AspNet.Mvc.Razor.Host.Test.xproj", "{7C4F5973-0491-4028-B1DC-A9BA73FF9F77}" @@ -180,6 +178,8 @@ Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Microsoft.AspNet.Mvc.Locali EndProject Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Microsoft.AspNet.Mvc.TestDiagnosticListener.Sources", "test\Microsoft.AspNet.Mvc.TestDiagnosticListener.Sources\Microsoft.AspNet.Mvc.TestDiagnosticListener.Sources.xproj", "{9879B5D5-2325-4A81-B4DF-F279FE8FEEB4}" EndProject +Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "MvcSandbox", "samples\MvcSandbox\MvcSandbox.xproj", "{14ED4476-9F24-4776-8417-EA6927F6C9C9}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -240,16 +240,6 @@ Global {A8AA326E-8EE8-4F11-B750-23028E0949D7}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {A8AA326E-8EE8-4F11-B750-23028E0949D7}.Release|Mixed Platforms.Build.0 = Release|Any CPU {A8AA326E-8EE8-4F11-B750-23028E0949D7}.Release|x86.ActiveCfg = Release|Any CPU - {FBB2B86E-972B-4185-9FF2-62CAB5F8388F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FBB2B86E-972B-4185-9FF2-62CAB5F8388F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FBB2B86E-972B-4185-9FF2-62CAB5F8388F}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {FBB2B86E-972B-4185-9FF2-62CAB5F8388F}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {FBB2B86E-972B-4185-9FF2-62CAB5F8388F}.Debug|x86.ActiveCfg = Debug|Any CPU - {FBB2B86E-972B-4185-9FF2-62CAB5F8388F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FBB2B86E-972B-4185-9FF2-62CAB5F8388F}.Release|Any CPU.Build.0 = Release|Any CPU - {FBB2B86E-972B-4185-9FF2-62CAB5F8388F}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {FBB2B86E-972B-4185-9FF2-62CAB5F8388F}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {FBB2B86E-972B-4185-9FF2-62CAB5F8388F}.Release|x86.ActiveCfg = Release|Any CPU {520B3AA4-363A-497C-8C15-80423C5AFC85}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {520B3AA4-363A-497C-8C15-80423C5AFC85}.Debug|Any CPU.Build.0 = Debug|Any CPU {520B3AA4-363A-497C-8C15-80423C5AFC85}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU @@ -1101,6 +1091,18 @@ Global {9879B5D5-2325-4A81-B4DF-F279FE8FEEB4}.Release|Mixed Platforms.Build.0 = Release|Any CPU {9879B5D5-2325-4A81-B4DF-F279FE8FEEB4}.Release|x86.ActiveCfg = Release|Any CPU {9879B5D5-2325-4A81-B4DF-F279FE8FEEB4}.Release|x86.Build.0 = Release|Any CPU + {14ED4476-9F24-4776-8417-EA6927F6C9C9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {14ED4476-9F24-4776-8417-EA6927F6C9C9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {14ED4476-9F24-4776-8417-EA6927F6C9C9}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {14ED4476-9F24-4776-8417-EA6927F6C9C9}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {14ED4476-9F24-4776-8417-EA6927F6C9C9}.Debug|x86.ActiveCfg = Debug|Any CPU + {14ED4476-9F24-4776-8417-EA6927F6C9C9}.Debug|x86.Build.0 = Debug|Any CPU + {14ED4476-9F24-4776-8417-EA6927F6C9C9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {14ED4476-9F24-4776-8417-EA6927F6C9C9}.Release|Any CPU.Build.0 = Release|Any CPU + {14ED4476-9F24-4776-8417-EA6927F6C9C9}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {14ED4476-9F24-4776-8417-EA6927F6C9C9}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {14ED4476-9F24-4776-8417-EA6927F6C9C9}.Release|x86.ActiveCfg = Release|Any CPU + {14ED4476-9F24-4776-8417-EA6927F6C9C9}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -1111,7 +1113,6 @@ Global {C48DA9D7-ACB5-4408-AA79-27ECB60A67EF} = {32285FA4-6B46-4D6B-A840-2B13E4C8B58E} {3F6E355E-4869-41D9-943B-D54771221A7F} = {3BA657BF-28B1-42DA-B5B0-1C4601FCF7B1} {A8AA326E-8EE8-4F11-B750-23028E0949D7} = {3BA657BF-28B1-42DA-B5B0-1C4601FCF7B1} - {FBB2B86E-972B-4185-9FF2-62CAB5F8388F} = {DAAE4C74-D06F-4874-A166-33305D2643CE} {520B3AA4-363A-497C-8C15-80423C5AFC85} = {32285FA4-6B46-4D6B-A840-2B13E4C8B58E} {7C4F5973-0491-4028-B1DC-A9BA73FF9F77} = {3BA657BF-28B1-42DA-B5B0-1C4601FCF7B1} {16703B76-C9F7-4C75-AE6C-53D92E308E3C} = {3BA657BF-28B1-42DA-B5B0-1C4601FCF7B1} @@ -1189,5 +1190,6 @@ Global {50893B10-5735-4F35-9995-F81DA3F0189E} = {32285FA4-6B46-4D6B-A840-2B13E4C8B58E} {8FC726B5-E766-44E0-8B38-1313B6D8D9A7} = {3BA657BF-28B1-42DA-B5B0-1C4601FCF7B1} {9879B5D5-2325-4A81-B4DF-F279FE8FEEB4} = {3BA657BF-28B1-42DA-B5B0-1C4601FCF7B1} + {14ED4476-9F24-4776-8417-EA6927F6C9C9} = {DAAE4C74-D06F-4874-A166-33305D2643CE} EndGlobalSection EndGlobal diff --git a/samples/MvcSample.Web/ApiExplorerController.cs b/samples/MvcSample.Web/ApiExplorerController.cs deleted file mode 100644 index 6a345621d8..0000000000 --- a/samples/MvcSample.Web/ApiExplorerController.cs +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using Microsoft.AspNet.Mvc; -using Microsoft.AspNet.Mvc.ApiExplorer; - -namespace MvcSample.Web -{ - [Route("ApiExplorer")] - public class ApiExplorerController : Controller - { - public ApiExplorerController(IApiDescriptionGroupCollectionProvider provider) - { - Provider = provider; - } - - public IApiDescriptionGroupCollectionProvider Provider { get; } - - [HttpGet] - public IActionResult All() - { - var descriptions = Provider.ApiDescriptionGroups.Items; - return View(descriptions); - } - } -} \ No newline at end of file diff --git a/samples/MvcSample.Web/Areas/Travel/Controllers/Flight.cs b/samples/MvcSample.Web/Areas/Travel/Controllers/Flight.cs deleted file mode 100644 index 0288dc1406..0000000000 --- a/samples/MvcSample.Web/Areas/Travel/Controllers/Flight.cs +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using Microsoft.AspNet.Mvc; - -namespace MvcSample.Web -{ - [Area("Travel")] - public class Flight : Controller - { - public IActionResult Fly() - { - return View(); - } - } -} diff --git a/samples/MvcSample.Web/Areas/Travel/Views/Flight/Fly.cshtml b/samples/MvcSample.Web/Areas/Travel/Views/Flight/Fly.cshtml deleted file mode 100644 index 7dfa432720..0000000000 --- a/samples/MvcSample.Web/Areas/Travel/Views/Flight/Fly.cshtml +++ /dev/null @@ -1,29 +0,0 @@ -@using MvcSample.Web.Models -@model User -@{ - Layout = "/Views/Shared/_Layout.cshtml"; - ViewBag.Title = "This is the FLY action"; -} - -
-

ASP.NET

-

ASP.NET is a free web framework for building great Web sites and Web applications using HTML, CSS and JavaScript.

-

Learn more »

-
-
-
-

Back to the main Area.

-

Takes you out of the area implicitly.

-

Go to Home/Create

-
-
-

Go to another action in the Area.

-

Keeps you in the area implicitly.

-

Go to Travel/Home/Index

-
-
-

Back to the main Area (explicit).

-

Leaves the area explicitly.

-

Go to Home/Index

-
-
diff --git a/samples/MvcSample.Web/AutoGenerateRouteNamesAttribute.cs b/samples/MvcSample.Web/AutoGenerateRouteNamesAttribute.cs deleted file mode 100644 index 304eda81ea..0000000000 --- a/samples/MvcSample.Web/AutoGenerateRouteNamesAttribute.cs +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System; -using Microsoft.AspNet.Mvc.ApplicationModels; - -namespace MvcSample.Web -{ - // Adds an auto-generated route-name to each action in the controller - public class AutoGenerateRouteNamesAttribute : Attribute, IControllerModelConvention - { - public void Apply(ControllerModel model) - { - foreach (var action in model.Actions) - { - if (action.AttributeRouteModel == null) - { - action.AttributeRouteModel = new AttributeRouteModel(); - } - - if (action.AttributeRouteModel.Name == null) - { - action.AttributeRouteModel.Name = string.Format( - "{0}_{1}", - model.ControllerName, - action.ActionName); - } - } - } - } -} \ No newline at end of file diff --git a/samples/MvcSample.Web/Components/TagCloud.cs b/samples/MvcSample.Web/Components/TagCloud.cs deleted file mode 100644 index 825cb7b823..0000000000 --- a/samples/MvcSample.Web/Components/TagCloud.cs +++ /dev/null @@ -1,56 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System; -using System.Linq; -using System.Threading.Tasks; -using Microsoft.AspNet.Mvc; - -namespace MvcSample.Web.Components -{ - [ViewComponent(Name = "Tags")] - public class TagCloud : ViewComponent - { - private readonly string[] Tags = - ("Lorem ipsum dolor sit amet consectetur adipisicing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliqua" + - "Ut enim ad minim veniam quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat Duis aute irure " + - "dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur Excepteur sint occaecat cupidatat" + - "non proident, sunt in culpa qui officia deserunt mollit anim id est laborum") - .Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries) - .OrderBy(s => Guid.NewGuid().ToString()) - .ToArray(); - - public async Task InvokeAsync(int count, string returnAs) - { - var tags = await GetTagsAsync(count); - - if (returnAs.Equals("Content", StringComparison.OrdinalIgnoreCase)) - { - return Content(string.Join(", ", tags)); - } - if (returnAs.Equals("Json", StringComparison.OrdinalIgnoreCase)) - { - return Json(tags); - } - - return View(tags); - } - - public IViewComponentResult Invoke(int count) - { - var tags = GetTags(count); - return View(tags); - } - - private Task GetTagsAsync(int count) - { - return Task.FromResult(GetTags(count)); - } - - private string[] GetTags(int count) - { - @ViewBag.Title = count.ToString() + " Tags:"; - return Tags.Take(count).ToArray(); - } - } -} \ No newline at end of file diff --git a/samples/MvcSample.Web/Controllers/ApiExplorerSamples/ProductsAdminController.cs b/samples/MvcSample.Web/Controllers/ApiExplorerSamples/ProductsAdminController.cs deleted file mode 100644 index 7da9287154..0000000000 --- a/samples/MvcSample.Web/Controllers/ApiExplorerSamples/ProductsAdminController.cs +++ /dev/null @@ -1,45 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System; -using System.Collections.Generic; -using Microsoft.AspNet.Mvc; - -namespace MvcSample.Web.ApiExplorerSamples -{ - [ApiExplorerSettings(GroupName = "Admin API")] - [Route("api/Admin/Products")] - public class ProductsAdminController : Controller - { - [HttpPut] - [Produces("application/json", Type = typeof(Product))] - public IActionResult AddProduct([FromBody] Product product) - { - return null; - } - - [HttpPost("{id?}")] - [Produces("application/json", Type = typeof(Product))] - public IActionResult UpdateProduct(UpdateProductDTO dto) - { - return null; - } - - [HttpPost("{id}/Stock")] - public void SetQuantityInStock(int id, int quantity) - { - } - - [HttpPost("{id}/Price")] - public void SetPrice(int id, decimal price) - { - } - - [Produces("application/json", "application/xml")] - [HttpGet("{id}/Orders")] - public IEnumerable GetOrders(DateTime? fromData = null, DateTime? toDate = null) - { - return null; - } - } -} \ No newline at end of file diff --git a/samples/MvcSample.Web/Controllers/ApiExplorerSamples/ProductsController.cs b/samples/MvcSample.Web/Controllers/ApiExplorerSamples/ProductsController.cs deleted file mode 100644 index 8925a2202b..0000000000 --- a/samples/MvcSample.Web/Controllers/ApiExplorerSamples/ProductsController.cs +++ /dev/null @@ -1,40 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System.Collections.Generic; -using Microsoft.AspNet.Mvc; - -namespace MvcSample.Web.ApiExplorerSamples -{ - [ApiExplorerSettings(GroupName = "Public API")] - [Produces("application/json")] - [Route("api/Products")] - public class ProductsController : Controller - { - [HttpGet("{id:int}")] - public Product GetById(int id) - { - return null; - } - - [HttpGet("Search/{name}")] - public IEnumerable SearchByName(string name) - { - return null; - } - - [Produces("application/json", Type = typeof(ProductOrderConfirmation))] - [HttpPut("{id:int}/Buy")] - public IActionResult Buy(int projectId, int quantity = 1) - { - return null; - } - - [Produces("application/json", Type = typeof(ProductOrderConfirmation))] - [HttpPut("{order.acountId:int}/PlaceOrder")] - public IActionResult PlaceOrder(Order order) - { - return null; - } - } -} \ No newline at end of file diff --git a/samples/MvcSample.Web/Controllers/FormUrlEncodedController.cs b/samples/MvcSample.Web/Controllers/FormUrlEncodedController.cs deleted file mode 100644 index ffaa609b86..0000000000 --- a/samples/MvcSample.Web/Controllers/FormUrlEncodedController.cs +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System.Linq; -using Microsoft.AspNet.Mvc; - -namespace MvcSample.Web.Controllers -{ - public class FormUrlEncodedController : Controller - { - [Route("[controller]")] - public IActionResult Index() - { - return View(); - } - - [Route("[controller]/[action]")] - public bool IsValidPerson(Person person) - { - return ModelState.IsValid && person.PastJobs.Any(); - } - } -} \ No newline at end of file diff --git a/samples/MvcSample.Web/Controllers/FormatFilterController.cs b/samples/MvcSample.Web/Controllers/FormatFilterController.cs deleted file mode 100644 index a0b564a0d0..0000000000 --- a/samples/MvcSample.Web/Controllers/FormatFilterController.cs +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using Microsoft.AspNet.Mvc; - -namespace MvcSample.Web.Controllers -{ - [Route("[controller]/[action]/{id}.{format?}")] - public class FormatFilterController : Controller - { - public Product GetProduct(int id) - { - return new Product() { SampleInt = id }; - } - - [Produces("application/json", "text/json")] - public Product ProducesMethod(int id) - { - return new Product() { SampleInt = id }; ; - } - } -} \ No newline at end of file diff --git a/samples/MvcSample.Web/Controllers/JsonPatchController.cs b/samples/MvcSample.Web/Controllers/JsonPatchController.cs deleted file mode 100644 index d52db85cdb..0000000000 --- a/samples/MvcSample.Web/Controllers/JsonPatchController.cs +++ /dev/null @@ -1,60 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System.Collections.Generic; -using System.Linq; -using Microsoft.AspNet.JsonPatch; -using Microsoft.AspNet.Mvc; - -namespace MvcSample.Web.Controllers -{ - [Route("api/[controller]")] - public class JsonPatchController : Controller - { - public ActionResult Index() - { - return View(); - } - - [HttpPatch] - public IActionResult Patch([FromBody] JsonPatchDocument patchDoc) - { - var customer = new Customer - { - Name = "John", - Orders = new List() - { - new Order - { - OrderName = "Order1" - }, - new Order - { - OrderName = "Order2" - } - } - }; - - patchDoc.ApplyTo(customer, ModelState); - - if (!ModelState.IsValid) - { - return HttpBadRequest(ModelState); - } - - return new ObjectResult(customer); - } - - public class Customer - { - public string Name { get; set; } - - public List Orders { get; set; } - } - - public class Order - { - public string OrderName { get; set; } - } - } -} diff --git a/samples/MvcSample.Web/Filters/AgeEnhancerFilterAttribute.cs b/samples/MvcSample.Web/Filters/AgeEnhancerFilterAttribute.cs deleted file mode 100644 index 6525d6f0c4..0000000000 --- a/samples/MvcSample.Web/Filters/AgeEnhancerFilterAttribute.cs +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System; -using Microsoft.AspNet.Mvc; -using Microsoft.AspNet.Mvc.Filters; - -namespace MvcSample.Web.Filters -{ - public class AgeEnhancerFilterAttribute : ActionFilterAttribute - { - public override void OnActionExecuting(ActionExecutingContext context) - { - object age = null; - - var controller = context.Controller as FiltersController; - - if (controller != null) - { - controller.CustomUser.Log += "Age Enhanced!" + Environment.NewLine; - } - - if (context.ActionArguments.TryGetValue("age", out age)) - { - if (age is int) - { - var intAge = (int)age; - - if (intAge < 21) - { - intAge += 5; - } - else if (intAge > 30) - { - intAge = 29; - } - - context.ActionArguments["age"] = intAge; - } - } - } - } -} diff --git a/samples/MvcSample.Web/Filters/BlockAnonymous.cs b/samples/MvcSample.Web/Filters/BlockAnonymous.cs deleted file mode 100644 index 65399d8ea0..0000000000 --- a/samples/MvcSample.Web/Filters/BlockAnonymous.cs +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using Microsoft.AspNet.Mvc.Filters; - -namespace MvcSample.Web.Filters -{ - public class BlockAnonymous : AuthorizationFilterAttribute - { - public override void OnAuthorization(AuthorizationContext context) - { - if (!HasAllowAnonymous(context)) - { - var user = context.HttpContext.User; - var userIsAnonymous = - user == null || - user.Identity == null || - !user.Identity.IsAuthenticated; - - if (userIsAnonymous) - { - base.Fail(context); - } - } - } - } -} \ No newline at end of file diff --git a/samples/MvcSample.Web/Filters/DelayAttribute.cs b/samples/MvcSample.Web/Filters/DelayAttribute.cs deleted file mode 100644 index bfbe954810..0000000000 --- a/samples/MvcSample.Web/Filters/DelayAttribute.cs +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System; -using System.Threading.Tasks; -using Microsoft.AspNet.Mvc; -using Microsoft.AspNet.Mvc.Filters; - -namespace MvcSample.Web.Filters -{ - public class DelayAttribute : ActionFilterAttribute - { - public DelayAttribute(int milliseconds) - { - Delay = TimeSpan.FromMilliseconds(milliseconds); - } - - public TimeSpan Delay { get; private set; } - - public override async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next) - { - if (context.HttpContext.Request.Method == "GET") - { - // slow down incoming GET requests - await Task.Delay(Delay); - } - - var executedContext = await next(); - - if (executedContext.Result is ViewResult) - { - // slow down outgoing view results - await Task.Delay(Delay); - } - } - } -} \ No newline at end of file diff --git a/samples/MvcSample.Web/Filters/ErrorMessagesAttribute.cs b/samples/MvcSample.Web/Filters/ErrorMessagesAttribute.cs deleted file mode 100644 index 24ea70b199..0000000000 --- a/samples/MvcSample.Web/Filters/ErrorMessagesAttribute.cs +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using Microsoft.AspNet.Mvc; -using Microsoft.AspNet.Mvc.Filters; -using Microsoft.Net.Http.Headers; - -namespace MvcSample.Web -{ - public class ErrorMessagesAttribute : ActionFilterAttribute - { - public override void OnActionExecuted(ActionExecutedContext context) - { - if (context.Exception != null && !context.ExceptionHandled) - { - context.ExceptionHandled = true; - - context.Result = new ContentResult - { - ContentType = new MediaTypeHeaderValue("text/plain"), - Content = "Boom " + context.Exception.Message - }; - } - } - } -} \ No newline at end of file diff --git a/samples/MvcSample.Web/Filters/FakeUserAttribute.cs b/samples/MvcSample.Web/Filters/FakeUserAttribute.cs deleted file mode 100644 index 33e39e6a87..0000000000 --- a/samples/MvcSample.Web/Filters/FakeUserAttribute.cs +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System.Security.Claims; -using Microsoft.AspNet.Mvc.Filters; - -namespace MvcSample.Web -{ - public class FakeUserAttribute : AuthorizationFilterAttribute - { - public override void OnAuthorization(AuthorizationContext context) - { - context.HttpContext.User = new ClaimsPrincipal( - new ClaimsIdentity( - new Claim[] { - new Claim("Permission", "CanViewPage"), - new Claim(ClaimTypes.Role, "Administrator"), - new Claim(ClaimTypes.NameIdentifier, "John")}, - "Basic")); - } - } -} diff --git a/samples/MvcSample.Web/Filters/InspectResultPageAttribute.cs b/samples/MvcSample.Web/Filters/InspectResultPageAttribute.cs deleted file mode 100644 index 82e6e8443e..0000000000 --- a/samples/MvcSample.Web/Filters/InspectResultPageAttribute.cs +++ /dev/null @@ -1,41 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System; -using Microsoft.AspNet.Mvc; -using Microsoft.AspNet.Mvc.Filters; -using MvcSample.Web.Models; - -namespace MvcSample.Web.Filters -{ - [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = true, Inherited = true)] - public class InspectResultPageAttribute : Attribute, IFilterFactory - { - public IFilterMetadata CreateInstance(IServiceProvider serviceProvider) - { - return new InspectResultPageFilter(); - } - - private class InspectResultPageFilter : IResultFilter - { - public void OnResultExecuting(ResultExecutingContext context) - { - var viewResult = context.Result as ViewResult; - - if (viewResult != null) - { - var user = viewResult.ViewData.Model as User; - - if (user != null) - { - user.Name += "**" + user.Name + "**"; - } - } - } - - public void OnResultExecuted(ResultExecutedContext context) - { - } - } - } -} diff --git a/samples/MvcSample.Web/Filters/PassThroughAttribute.cs b/samples/MvcSample.Web/Filters/PassThroughAttribute.cs deleted file mode 100644 index 1c1823007e..0000000000 --- a/samples/MvcSample.Web/Filters/PassThroughAttribute.cs +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System.Threading.Tasks; -using Microsoft.AspNet.Mvc.Filters; - -namespace MvcSample.Web -{ - public class PassThroughAttribute : AuthorizationFilterAttribute - { -#pragma warning disable 1998 - public override async Task OnAuthorizationAsync(AuthorizationContext context) - { - } -#pragma warning restore 1998 - } -} diff --git a/samples/MvcSample.Web/Filters/UserNameProvider.cs b/samples/MvcSample.Web/Filters/UserNameProvider.cs deleted file mode 100644 index 04165edd7e..0000000000 --- a/samples/MvcSample.Web/Filters/UserNameProvider.cs +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using Microsoft.AspNet.Mvc.Filters; - -namespace MvcSample.Web.Filters -{ - public class UserNameProvider : IActionFilter - { - private readonly UserNameService _nameService; - - public UserNameProvider(UserNameService nameService) - { - _nameService = nameService; - } - - public void OnActionExecuting(ActionExecutingContext context) - { - object originalUserName = null; - - context.ActionArguments.TryGetValue("userName", out originalUserName); - - var userName = originalUserName as string; - - if (string.IsNullOrWhiteSpace(userName)) - { - context.ActionArguments["userName"] = _nameService.GetName(); - } - } - - public void OnActionExecuted(ActionExecutedContext context) - { - } - } -} diff --git a/samples/MvcSample.Web/Filters/UserNameService.cs b/samples/MvcSample.Web/Filters/UserNameService.cs deleted file mode 100644 index f1fc31ec25..0000000000 --- a/samples/MvcSample.Web/Filters/UserNameService.cs +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -namespace MvcSample.Web.Filters -{ - public class UserNameService - { - private static readonly string[] _userNames = new[] { "Jon", "David", "Goliath" }; - private static int _index; - - public string GetName() - { - return _userNames[_index++ % 3]; - } - } -} diff --git a/samples/MvcSample.Web/FiltersController.cs b/samples/MvcSample.Web/FiltersController.cs deleted file mode 100644 index a6c0f22d47..0000000000 --- a/samples/MvcSample.Web/FiltersController.cs +++ /dev/null @@ -1,77 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System; -using Microsoft.AspNet.Authorization; -using Microsoft.AspNet.Mvc; -using Microsoft.AspNet.Mvc.Filters; -using MvcSample.Web.Filters; -using MvcSample.Web.Models; - -namespace MvcSample.Web -{ - [ServiceFilter(typeof(PassThroughAttribute), Order = 1)] - [ServiceFilter(typeof(PassThroughAttribute))] - [PassThrough(Order = 0)] - [PassThrough(Order = 2)] - [InspectResultPage] - [BlockAnonymous] - [TypeFilter(typeof(UserNameProvider), Order = -1)] - public class FiltersController : Controller - { - public User CustomUser { get; set; } - - public FiltersController() - { - CustomUser = new User() { Name = "User Name", Address = "Home Address" }; - } - - [ServiceFilter(typeof(PassThroughAttribute))] - [AllowAnonymous] - [AgeEnhancerFilter] - [Delay(500)] - public ActionResult Index(int age = 20, string userName = "SampleUser") - { - if (!string.IsNullOrEmpty(userName)) - { - CustomUser.Name = userName; - } - - CustomUser.Age = age; - - return View("MyView", CustomUser); - } - - public ActionResult Blocked(int age = 20, string userName = "SampleUser") - { - return Index(age, userName); - } - - public ActionResult ChallengeUser(int age = 20, string userName = "SampleUser") - { - return new ChallengeResult(); - } - - public ActionResult NotGrantedClaim(int age = 20, string userName = "SampleUser") - { - return Index(age, userName); - } - - [FakeUser] - public ActionResult AllGranted(int age = 20, string userName = "SampleUser") - { - return Index(age, userName); - } - - [ErrorMessages, AllowAnonymous] - public ActionResult Crash(string message = "Sample crash message") - { - throw new Exception(message); - } - - public override void OnActionExecuting(ActionExecutingContext context) - { - ViewBag.DidTheFilterRun = "Totally!"; - } - } -} \ No newline at end of file diff --git a/samples/MvcSample.Web/Home2Controller.cs b/samples/MvcSample.Web/Home2Controller.cs deleted file mode 100644 index eb213a2b1f..0000000000 --- a/samples/MvcSample.Web/Home2Controller.cs +++ /dev/null @@ -1,58 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System.Threading.Tasks; -using Microsoft.AspNet.Http; -using Microsoft.AspNet.Mvc; -using MvcSample.Web.Models; - -namespace MvcSample.Web.RandomNameSpace -{ - public class Home2Controller - { - private User _user = new User() { Name = "User Name", Address = "Home Address" }; - - [ActionContext] - public ActionContext ActionContext { get; set; } - - public HttpResponse Response => ActionContext.HttpContext.Response; - - public string Index() - { - return "Hello World: my namespace is " + this.GetType().Namespace; - } - - public ActionResult Something() - { - return new ContentResult - { - Content = "Hello World From Content" - }; - } - - public ActionResult Hello() - { - return new ContentResult - { - Content = "Hello World", - }; - } - - public async Task Raw() - { - await Response.WriteAsync("Hello World raw"); - } - - public ActionResult UserJson() - { - var jsonResult = new JsonResult(_user); - - return jsonResult; - } - - public User User() - { - return _user; - } - } -} \ No newline at end of file diff --git a/samples/MvcSample.Web/HomeController.cs b/samples/MvcSample.Web/HomeController.cs deleted file mode 100644 index d7ffea4664..0000000000 --- a/samples/MvcSample.Web/HomeController.cs +++ /dev/null @@ -1,255 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Threading.Tasks; -using Microsoft.AspNet.Hosting; -using Microsoft.AspNet.Http; -using Microsoft.AspNet.Mvc; -using Microsoft.AspNet.Mvc.Rendering; -using MvcSample.Web.Models; - -namespace MvcSample.Web -{ - public class HomeController : Controller - { - private static readonly IEnumerable _addresses = CreateAddresses(); - private static readonly IEnumerable _ages = CreateAges(); - - public ActionResult Index() - { - return View("MyView", CreateUser()); - } - - public IActionResult NullUser() - { - return View(); - } - - public ActionResult ValidationSummary() - { - ModelState.AddModelError("something", "Something happened, show up in validation summary."); - - return View("ValidationSummary"); - } - - public ActionResult InjectSample() - { - return View(); - } - - [SkipStatusCodePages] - public ActionResult NotFound() - { - return HttpNotFound(); - } - - public ActionResult SendFileFromDisk() - { - return File("sample.txt", "text/plain"); - } - - public ActionResult SendFileFromDiskWithName() - { - return File("sample.txt", "text/plain", "sample-file.txt"); - } - - public bool IsDefaultNameSpace() - { - var namespaceToken = RouteData.DataTokens["NameSpace"] as string; - return namespaceToken == "default"; - } - - /// - /// Action that shows metadata when model is null. - /// - public ActionResult Create() - { - ViewBag.Address = _addresses; - ViewBag.Ages = _ages; - - return View(); - } - - /// - /// Action that shows metadata when model is non-null. - /// - public ActionResult Edit(User user) - { - ViewBag.Address = _addresses; - ViewBag.Ages = _ages; - ViewBag.Gift = "the banana"; - - return View("Create"); - } - - /// - /// Action that exercises query\form based model binding. - /// - public ActionResult SaveUser(User user) - { - return View("MyView", user); - } - - /// - /// Action that shows multiple file upload. - /// - public async Task PostFile( - [FromServices] IHostingEnvironment hostingEnvironment, - IList files) - { - if (!ModelState.IsValid) - { - return View("MyView"); - } - - foreach (var f in files) - { - await f.SaveAsAsync(Path.Combine(hostingEnvironment.WebRootPath, "test-file" + files.IndexOf(f))); - } - return View(); - } - - public ActionResult AddTempData() - { - TempData["controllerData"] = "Temporary data from controller through ViewBag."; - TempData["tempData"] = "Temporary data directly from TempData."; - return RedirectToAction("UseTempData"); - } - - public ActionResult UseTempData() - { - var data = TempData["controllerData"]; - ViewBag.TempData = data; - - return View("MyView", CreateUser()); - } - - /// - /// Action that exercises input formatter - /// - public ActionResult Post([FromBody]User user) - { - return View("MyView", user); - } - - public ActionResult Something() - { - return new ContentResult - { - Content = "Hello World From Content" - }; - } - - public ActionResult Hello() - { - return Content("Hello World"); - } - - public void Raw() - { - HttpContext.Response.WriteAsync("Hello World raw"); - } - - public ActionResult Language() - { - return View(); - } - - [Produces("application/json", "application/xml", "application/custom", "text/json", Type = typeof(User))] - public object ReturnUser() - { - return CreateUser(); - } - - public User CreateUser() - { - User user = new User() - { - Name = "My name", - Address = "My address", - Alive = true, - Age = 13, - GPA = 13.37M, - Dependent = new User() - { - Name = "Dependents name", - Address = "Dependents address", - Alive = false, - }, - Profession = "Software Engineer", - About = "I like playing Football" - }; - - return user; - } - - [HttpGet("/AttributeRouting/{other}", Order = 0)] - public string LowerPrecedence(string param) - { - return "Lower"; - } - - // Normally this route would be tried before the one above - // as it is more explicit (doesn't have a parameter), but - // due to the fact that it has a higher order, it will be - // tried after the route above. - [HttpGet("/AttributeRouting/HigherPrecedence", Order = 1)] - public string HigherOrder() - { - return "Higher"; - } - - // Both routes have the same template, which would make - // them ambiguous, but the order we defined in the routes - // disambiguates them. - [HttpGet("/AttributeRouting/SameTemplate", Order = 0)] - public string SameTemplateHigherOrderPrecedence() - { - return "HigherOrderPrecedence"; - } - - [HttpGet("/AttributeRouting/SameTemplate", Order = 1)] - public string SameTemplateLowerOrderPrecedence() - { - return "LowerOrderPrecedence"; - } - - /// - /// Action that exercises default view names. - /// - public ActionResult MyView() - { - return View(CreateUser()); - } - - public ActionResult FlushPoint() - { - return View(); - } - - private static IEnumerable CreateAddresses() - { - var addresses = new[] - { - "121 Fake St., Redmond, WA, USA", - "123 Fake St., Redmond, WA, USA", - "125 Fake St., Redmond, WA, USA", - "127 Fake St., Redmond, WA, USA", - "129 Fake St., Redmond, WA, USA", - "131 Fake St., Redmond, WA, USA", - }; - - return new SelectList(addresses); - } - - private static IEnumerable CreateAges() - { - var ages = Enumerable.Range(27, 47).Select(age => new { Age = age, Display = age.ToString("####"), }); - - return new SelectList(ages, dataValueField: "Age", dataTextField: "Display"); - } - } -} \ No newline at end of file diff --git a/samples/MvcSample.Web/LinkController.cs b/samples/MvcSample.Web/LinkController.cs deleted file mode 100644 index d3803485ae..0000000000 --- a/samples/MvcSample.Web/LinkController.cs +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using Microsoft.AspNet.Mvc; - -namespace MvcSample.Web -{ - public class LinkController : Controller - { - public ActionResult Details() - { - return View(); - } - - public string About() - { - return Url.Action(null); - } - - public string Get() - { - // Creates a url like: http://localhost:58195/Home/Create#CoolBeans! - return Url.RouteUrl(null, new { controller = "Home", action = "Create" }, protocol: "http", host: null, fragment: "CoolBeans!"); - } - - public string Link1() - { - return Url.Action("Index", "Home"); - } - - public string Link2() - { - return Url.Action("Link2"); - } - } -} diff --git a/samples/MvcSample.Web/Models/Address.cs b/samples/MvcSample.Web/Models/Address.cs deleted file mode 100644 index c2ebc20bd6..0000000000 --- a/samples/MvcSample.Web/Models/Address.cs +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System.ComponentModel.DataAnnotations; - -namespace MvcSample.Web -{ - public class Address - { - [Required] - public string Street { get; set; } - - [Required] - public string City { get; set; } - - [Required] - public string State { get; set; } - - [Required] - public int ZipCode { get; set; } - } -} \ No newline at end of file diff --git a/samples/MvcSample.Web/Models/ApiExplorerSamples/Order.cs b/samples/MvcSample.Web/Models/ApiExplorerSamples/Order.cs deleted file mode 100644 index dbd9f68b43..0000000000 --- a/samples/MvcSample.Web/Models/ApiExplorerSamples/Order.cs +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using Microsoft.AspNet.Mvc; -using System.Collections.Generic; - -namespace MvcSample.Web.ApiExplorerSamples -{ - public class Order - { - [FromRoute] - public int AccountId { get; set; } - - [FromBody] - public List Items { get; set; } - - [FromQuery] - public bool? IncludeWarranty { get; set; } - - public class OrderItem - { - public int ProductId { get; set; } - - public int Quantity { get; set; } - } - } -} \ No newline at end of file diff --git a/samples/MvcSample.Web/Models/ApiExplorerSamples/Product.cs b/samples/MvcSample.Web/Models/ApiExplorerSamples/Product.cs deleted file mode 100644 index 8ab070eb3e..0000000000 --- a/samples/MvcSample.Web/Models/ApiExplorerSamples/Product.cs +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -namespace MvcSample.Web.ApiExplorerSamples -{ - public class Product - { - public int Id { get; set; } - - public string Name { get; set; } - - public string Description { get; set; } - - public decimal Price { get; set; } - } -} \ No newline at end of file diff --git a/samples/MvcSample.Web/Models/ApiExplorerSamples/ProductChangeDTO.cs b/samples/MvcSample.Web/Models/ApiExplorerSamples/ProductChangeDTO.cs deleted file mode 100644 index 1247b32a5f..0000000000 --- a/samples/MvcSample.Web/Models/ApiExplorerSamples/ProductChangeDTO.cs +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -namespace MvcSample.Web.ApiExplorerSamples -{ - public class ProductChangeDTO - { - public string Name { get; set; } - - public string Description { get; set; } - - public decimal Price { get; set; } - } -} \ No newline at end of file diff --git a/samples/MvcSample.Web/Models/ApiExplorerSamples/ProductOrderConfirmation.cs b/samples/MvcSample.Web/Models/ApiExplorerSamples/ProductOrderConfirmation.cs deleted file mode 100644 index b15b991b24..0000000000 --- a/samples/MvcSample.Web/Models/ApiExplorerSamples/ProductOrderConfirmation.cs +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -namespace MvcSample.Web.ApiExplorerSamples -{ - public class ProductOrderConfirmation - { - public Product Product { get; set; } - - public decimal PricePerUnit { get; set; } - - public int Quantity { get; set; } - - public decimal TotalPrice { get; set; } - } -} \ No newline at end of file diff --git a/samples/MvcSample.Web/Models/ApiExplorerSamples/UpdateProductDTO.cs b/samples/MvcSample.Web/Models/ApiExplorerSamples/UpdateProductDTO.cs deleted file mode 100644 index 0929725e74..0000000000 --- a/samples/MvcSample.Web/Models/ApiExplorerSamples/UpdateProductDTO.cs +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using Microsoft.AspNet.Mvc; - -namespace MvcSample.Web.ApiExplorerSamples -{ - public class UpdateProductDTO - { - public int Id { get; set; } - - [FromBody] - public Product Product { get; set; } - - [FromHeader(Name = "Admin-User")] - public string AdminId { get; set; } - - public string Comments { get; set; } - } -} \ No newline at end of file diff --git a/samples/MvcSample.Web/Models/Job.cs b/samples/MvcSample.Web/Models/Job.cs deleted file mode 100644 index 82e6281986..0000000000 --- a/samples/MvcSample.Web/Models/Job.cs +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System.ComponentModel.DataAnnotations; - -namespace MvcSample.Web -{ - public class Job - { - [Required] - public string JobTitle { get; set; } - - [Required] - public string EmployerName { get; set; } - - [Required] - public int Years { get; set; } - } -} \ No newline at end of file diff --git a/samples/MvcSample.Web/Models/Person.cs b/samples/MvcSample.Web/Models/Person.cs deleted file mode 100644 index aa0568aae0..0000000000 --- a/samples/MvcSample.Web/Models/Person.cs +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System.Collections.Generic; -using System.ComponentModel.DataAnnotations; - -namespace MvcSample.Web -{ - public class Person - { - [Required] - public string Name { get; set; } - - [Required] - public Address Address { get; set; } - - [Required] - public IEnumerable PastJobs { get; set; } - } -} \ No newline at end of file diff --git a/samples/MvcSample.Web/Models/Product.cs b/samples/MvcSample.Web/Models/Product.cs deleted file mode 100644 index 0175d701a4..0000000000 --- a/samples/MvcSample.Web/Models/Product.cs +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. -using System; - -namespace MvcSample.Web -{ - public class Product - { - public int SampleInt { get; set; } - } -} \ No newline at end of file diff --git a/samples/MvcSample.Web/Models/TestEnum.cs b/samples/MvcSample.Web/Models/TestEnum.cs deleted file mode 100644 index d638350c71..0000000000 --- a/samples/MvcSample.Web/Models/TestEnum.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel.DataAnnotations; -using System.Linq; -using System.Threading.Tasks; - -namespace MvcSample.Web.Models -{ - public enum TestEnum - { - Zero = 0, - [Display(GroupName = "Primes")] - One = 1, - [Display(GroupName = "Evens", Name = "Dos")] - Two = 2, - [Display(GroupName = "Primes")] - Three = 3, - [Display(Name = "4th")] - Four = 4 - } -} diff --git a/samples/MvcSample.Web/Models/User.cs b/samples/MvcSample.Web/Models/User.cs deleted file mode 100644 index 048221c744..0000000000 --- a/samples/MvcSample.Web/Models/User.cs +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System.Collections.Generic; -using System.ComponentModel.DataAnnotations; - -namespace MvcSample.Web.Models -{ - [DisplayColumn("Name")] - public class User - { - public User() - { - OwnedAddresses = new List(); - ParentsAges = new List(); - } - - [Required] - [MinLength(4)] - public string Name { get; set; } - public string Address { get; set; } - [Range(27, 70)] - public int Age { get; set; } - public decimal GPA { get; set; } - public User Dependent { get; set; } - public bool Alive { get; set; } - [DisplayFormat(ConvertEmptyStringToNull = true, NullDisplayText = "You can explain about your profession")] - public string Profession { get; set; } - public string About { get; set; } - public string Log { get; set; } - public IEnumerable OwnedAddresses { get; private set; } - public TestEnum EnumInformation { get; set; } - - // This does not bind correctly. Only gets highest value. - public List ParentsAges { get; private set; } - } -} \ No newline at end of file diff --git a/samples/MvcSample.Web/OverloadController.cs b/samples/MvcSample.Web/OverloadController.cs deleted file mode 100644 index d94dd891e2..0000000000 --- a/samples/MvcSample.Web/OverloadController.cs +++ /dev/null @@ -1,73 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System; -using Microsoft.AspNet.Mvc; -using Microsoft.AspNet.Mvc.ActionConstraints; -using Microsoft.AspNet.Mvc.WebApiCompatShim; -using MvcSample.Web.Models; - -namespace MvcSample.Web -{ - public class OverloadController - { - // All results implement IActionResult so it can be safely returned. - public IActionResult Get() - { - return Content("Get()"); - } - - [Overload] - public ActionResult Get(int id) - { - return Content("Get(id)"); - } - - [Overload] - public ActionResult Get(int id, string name) - { - return Content("Get(id, name)"); - } - - [Overload] - public ActionResult Get(string bleh) - { - return Content("Get(bleh)"); - } - - public ActionResult WithUser() - { - return Content("WithUser()"); - } - - // Called for all posts regardless of values provided - [HttpPost] - public ActionResult WithUser(User user) - { - return Content("WithUser(User)"); - } - - public ActionResult WithUser(int projectId, User user) - { - return Content("WithUser(int, User)"); - } - - private ContentResult Content(string content) - { - var result = new ContentResult - { - Content = content, - }; - - return result; - } - - private class OverloadAttribute : Attribute, IActionConstraintFactory - { - public IActionConstraint CreateInstance(IServiceProvider services) - { - return new OverloadActionConstraint(); - } - } - } -} diff --git a/samples/MvcSample.Web/Services/TestService.cs b/samples/MvcSample.Web/Services/TestService.cs deleted file mode 100644 index 02753d9c8e..0000000000 --- a/samples/MvcSample.Web/Services/TestService.cs +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System; - -namespace MvcSample.Web.Services -{ - public interface ITestService - { - string GetFoo(); - } - - - public class TestService : ITestService - { - public string GetFoo() - { - return "Hello world " + DateTime.UtcNow; - } - } -} \ No newline at end of file diff --git a/samples/MvcSample.Web/SimplePocoController.cs b/samples/MvcSample.Web/SimplePocoController.cs deleted file mode 100644 index a3724e6552..0000000000 --- a/samples/MvcSample.Web/SimplePocoController.cs +++ /dev/null @@ -1,46 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System.Diagnostics; -using System.Globalization; -using Microsoft.AspNet.Mvc; -using Microsoft.AspNet.Mvc.Filters; - -namespace MvcSample.Web -{ - public class SimplePocoController : IActionFilter, IResultFilter - { - private Stopwatch _timer; - - public string Index() - { - return "Hello world"; - } - - public void OnActionExecuting(ActionExecutingContext context) - { - _timer = Stopwatch.StartNew(); - } - - public void OnActionExecuted(ActionExecutedContext context) - { - var time = _timer.ElapsedMilliseconds; - context.HttpContext.Response.Headers.Add( - "ActionElapsedTime", - new string[] { time.ToString(CultureInfo.InvariantCulture) + " ms" }); - } - - public void OnResultExecuting(ResultExecutingContext context) - { - _timer = Stopwatch.StartNew(); - } - - public void OnResultExecuted(ResultExecutedContext context) - { - var time = _timer.ElapsedMilliseconds; - context.HttpContext.Response.Headers.Add( - "ResultElapsedTime", - new string[] { time.ToString(CultureInfo.InvariantCulture) + " ms" }); - } - } -} diff --git a/samples/MvcSample.Web/SimpleRest.cs b/samples/MvcSample.Web/SimpleRest.cs deleted file mode 100644 index 514f0d0763..0000000000 --- a/samples/MvcSample.Web/SimpleRest.cs +++ /dev/null @@ -1,39 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using Microsoft.AspNet.Mvc; - -namespace MvcSample.Web -{ - [AutoGenerateRouteNames] - [Route("api/REST")] - public class SimpleRest : Controller - { - [HttpGet] - public string ThisIsAGetMethod() - { - return "Get method"; - } - - [HttpGet("[action]")] - public string GetOtherThing() - { - // Will be GetOtherThing - return (string)RouteData.Values["action"]; - } - - [HttpGet("Link")] - public string GenerateLink(string action = null, string controller = null) - { - return Url.Action(action, controller); - } - - [HttpGet("Link/{name}")] - public string GenerateLinkByName(string name = null) - { - // This action leverages [AutoGenerateRouteNames]. Try a URL like api/Rest/Link/SimpleRest_ThisIsAGetMethod - // which matches the auto-generated name for the ThisIsAGetMethod action. - return Url.RouteUrl(name); - } - } -} diff --git a/samples/MvcSample.Web/Startup.cs b/samples/MvcSample.Web/Startup.cs deleted file mode 100644 index c470374ff3..0000000000 --- a/samples/MvcSample.Web/Startup.cs +++ /dev/null @@ -1,73 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System; -using Microsoft.AspNet.Builder; -using Microsoft.AspNet.Localization; -using Microsoft.AspNet.Mvc; -using Microsoft.AspNet.Mvc.Razor; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Logging; -using MvcSample.Web.Filters; -using MvcSample.Web.Services; - -namespace MvcSample.Web -{ - public class Startup - { - public IServiceProvider ConfigureServices(IServiceCollection services) - { - services.AddCaching(); - services.AddSession(); - - services.AddMvc(options => - { - options.Filters.Add(typeof(PassThroughAttribute), order: 17); - options.Filters.Add(new FormatFilterAttribute()); - }) - .AddXmlDataContractSerializerFormatters() - .AddViewLocalization(LanguageViewLocationExpanderFormat.SubFolder); - - services.AddSingleton(); - services.AddSingleton(); - services.AddTransient(); - - return services.BuildServiceProvider(); - } - - public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory) - { - loggerFactory.AddConsole((category, level) => - { - if (category.StartsWith("Microsoft.")) - { - return level >= LogLevel.Information; - } - - return level >= LogLevel.Verbose; - }); - - app.UseStatusCodePages(); - app.UseFileServer(); - - app.UseRequestLocalization(new RequestCulture("en-US")); - - app.UseSession(); - app.UseMvc(routes => - { - routes.MapRoute("areaRoute", "{area:exists}/{controller}/{action}"); - routes.MapRoute( - "controllerActionRoute", - "{controller}/{action}", - new { controller = "Home", action = "Index" }, - constraints: null, - dataTokens: new { NameSpace = "default" }); - - routes.MapRoute( - "controllerRoute", - "{controller}", - new { controller = "Home" }); - }); - } - } -} diff --git a/samples/MvcSample.Web/ViewMetadata.cs b/samples/MvcSample.Web/ViewMetadata.cs deleted file mode 100644 index c9ab69c7ce..0000000000 --- a/samples/MvcSample.Web/ViewMetadata.cs +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -#if VIEWMETADATA -using System; -using System.Collections.Generic; - -public class ViewMetadata -{ - public static Dictionary Metadata - { - get - { - return new Dictionary - { - { - "~/Views/Home/MyView.cshtml", - typeof(MvcSample.Views.MyView) - }, - { - "~/Views/Shared/_Layout.cshtml", - typeof(MvcSample.Views.Layout) - } - }; - } - } -} -#endif \ No newline at end of file diff --git a/samples/MvcSample.Web/Views/ApiExplorer/All.cshtml b/samples/MvcSample.Web/Views/ApiExplorer/All.cshtml deleted file mode 100644 index 5564d29336..0000000000 --- a/samples/MvcSample.Web/Views/ApiExplorer/All.cshtml +++ /dev/null @@ -1,23 +0,0 @@ -@using Microsoft.AspNet.Mvc.ApiExplorer -@model IReadOnlyList - -@section header -{ - -} - -
- - @foreach (var group in Model) - { -
-

Group: @group.GroupName

- - @foreach (var item in group.Items) - { - await Html.RenderPartialAsync("_ApiDescription", item); - } - -
- } -
\ No newline at end of file diff --git a/samples/MvcSample.Web/Views/ApiExplorer/_ApiDescription.cshtml b/samples/MvcSample.Web/Views/ApiExplorer/_ApiDescription.cshtml deleted file mode 100644 index 8b7417a863..0000000000 --- a/samples/MvcSample.Web/Views/ApiExplorer/_ApiDescription.cshtml +++ /dev/null @@ -1,59 +0,0 @@ -@using Microsoft.AspNet.Mvc.ApiExplorer -@model ApiDescription - -
-

- - @(Model.HttpMethod ?? "*") - @(Model.RelativePath ?? "Unknown Url") - -

-
- -
Parameters:
- @if (Model.ParameterDescriptions.Count > 0) - { - - - - - - - - - - @foreach (var parameter in Model.ParameterDescriptions) - { - - - - - - } - -
NameData TypeSource
@parameter.Name@(parameter.Type?.FullName ?? "Unknown Type")@parameter.Source.Id
- } - -
Response Formats
- @if (Model.SupportedResponseFormats.Count > 0) - { - - - - - - - - - - @foreach (var response in Model.SupportedResponseFormats) - { - - - - - - } - -
Data TypeMedia TypeFormatter
@Model.ResponseType.FullName@response.MediaType.ToString()@response.Formatter.GetType().Name
- } -
\ No newline at end of file diff --git a/samples/MvcSample.Web/Views/FormUrlEncoded/Index.cshtml b/samples/MvcSample.Web/Views/FormUrlEncoded/Index.cshtml deleted file mode 100644 index 62a0d42ad2..0000000000 --- a/samples/MvcSample.Web/Views/FormUrlEncoded/Index.cshtml +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - JQuery FormUrlEncoded example - - - - - -

-

- - diff --git a/samples/MvcSample.Web/Views/Home/Create.cshtml b/samples/MvcSample.Web/Views/Home/Create.cshtml deleted file mode 100644 index b39329393c..0000000000 --- a/samples/MvcSample.Web/Views/Home/Create.cshtml +++ /dev/null @@ -1,127 +0,0 @@ -@using MvcSample.Web.Models -@using Microsoft.AspNet.Mvc.ModelBinding -@model User -@{ - ViewBag.Title = (Model == null && ViewData.ModelState.Count == 0) ? "Create Page" : "Edit Page"; - if (ViewBag.Gift == null) - { - ViewBag.Gift = "nothing"; - } -} - -
-

@ViewBag.Title

-

Thanks for @ViewBag.Gift

- @if (Model == null) - { -

Howdy, your model is null.

- } - else - { -

Hello @Html.DisplayTextFor(model => model.Name)! Happy @(Model.Age)th birthday.

- } - - @{ - var metadata = ViewData.ModelMetadata; - if (metadata != null) - { - var typeName = metadata.ModelType.Name; - var description = metadata.Description ?? "no description"; -

@typeName has description '@description' and contains

-
    - @foreach (var property in metadata.Properties) - { -
  • Property @property.PropertyName is type @property.ModelType.Name and '@(property.Description ?? "no description")'
  • - } -
- } - } -
- -
-
- @using (Html.BeginForm(controllerName: "Home", actionName: "Edit", method: FormMethod.Post)) - { - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - @Html.TextBox("Name") - - @Html.ValidationMessage("Name.Name", "Name is required", new { @style = "font-weight: bold" }) -
- - - @Html.DropDownList("Address", "Select an Address") -
- - - @Html.DropDownListFor(model => model.Age, (IEnumerable)ViewBag.Ages, htmlAttributes: new { @class = "form-control" }) - - @Html.ValidationMessageFor(model => model.Age, "Age must be between 27 and 70", new { @style = "font-weight: bold" }) -
- - - -
- - - @Html.TextArea("About", "You can explain about your hobbies, work etc.", 5, 40, htmlAttributes: new { style = "font-weight:bold" }) -
- - - @Html.Editor("OwnedAddresses") -
- - - @Html.ListBoxFor(model => model.ParentsAges, (IEnumerable)ViewBag.Ages, htmlAttributes: new { @class = "form-control" }) -
- - - @Html.DropDownList("EnumInformation", Html.GetEnumSelectList()) -
- -
- } -
-
\ No newline at end of file diff --git a/samples/MvcSample.Web/Views/Home/EditorTemplates/IEnumerable`1.cshtml b/samples/MvcSample.Web/Views/Home/EditorTemplates/IEnumerable`1.cshtml deleted file mode 100644 index 8982023b3f..0000000000 --- a/samples/MvcSample.Web/Views/Home/EditorTemplates/IEnumerable`1.cshtml +++ /dev/null @@ -1,4 +0,0 @@ -@using System.Collections.Generic -@model IEnumerable - -@Html.ListBox(null, (IEnumerable)ViewBag.Address) \ No newline at end of file diff --git a/samples/MvcSample.Web/Views/Home/FlushPoint.cshtml b/samples/MvcSample.Web/Views/Home/FlushPoint.cshtml deleted file mode 100644 index a2f5dd1de1..0000000000 --- a/samples/MvcSample.Web/Views/Home/FlushPoint.cshtml +++ /dev/null @@ -1,61 +0,0 @@ -@{ - Layout = "/Views/Shared/_FlushPointLayout.cshtml"; - ViewBag.Title = "Home Page"; -} - -@section content -{ -
-

ASP.NET

-

ASP.NET is a free web framework for building great Web sites and Web applications using HTML, CSS and JavaScript.

-

Learn more »

-
- -
-
-

Getting started

-

- ASP.NET MVC gives you a powerful, patterns-based way to build dynamic websites that - enables a clean separation of concerns and gives you full control over markup - for enjoyable, agile development. -

-

Learn more »

-
-
-

Get more libraries

-

NuGet is a free Visual Studio extension that makes it easy to add, remove, and update libraries and tools in Visual Studio projects.

-

Learn more »

-
-
-

Web Hosting

-

You can easily find a web hosting company that offers the right mix of features and price for your applications.

-

Learn more »

-
-
- -
- One Microsoft Way
- Redmond, WA 98052-6399
- P: - 425.555.0100 -
- -
- Support: Support@example.com
- Marketing: Marketing@example.com -
- -@await FlushAsync() -@{ - await Task.Delay(TimeSpan.FromSeconds(1)); -} -
-
- Integer pharetra dignissim tortor, quis facilisis tellus faucibus in. Phasellus fringilla pellentesque justo eu tempor. Sed eget viverra lacus, eget gravida turpis. Donec dapibus sodales leo, non pharetra lacus volutpat quis. Quisque et auctor nulla. Nunc a orci ut libero luctus ornare ut eget erat. Integer eu risus tempor, scelerisque lacus nec, dignissim nisl. Ut ac leo nec velit tempus fringilla. Phasellus id nisi tortor. Aliquam magna nunc, congue eget sem quis, porta accumsan magna. Sed sit amet dapibus sem, placerat malesuada felis. Quisque vel dui ut est luctus congue. -
- -
- Aliquam nec elementum orci, ut interdum mi. Sed lorem lacus, malesuada in nisi a, auctor lobortis ipsum. Ut id erat suscipit, pharetra dui eu, sodales erat. Duis nibh turpis, vestibulum sit amet leo vitae, faucibus iaculis lectus. Nam lacinia purus fringilla dolor dictum posuere nec in libero. Integer id tempor elit. Mauris adipiscing ut sem id tincidunt. Cras turpis elit, dignissim vitae adipiscing vitae, ullamcorper in felis. Nullam et adipiscing neque. Integer ullamcorper eget tortor in sodales. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Suspendisse pretium tristique libero, ut gravida est placerat quis. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Sed sed lorem cursus, porttitor nibh eu, bibendum turpis. -
-
-} \ No newline at end of file diff --git a/samples/MvcSample.Web/Views/Home/InjectSample.cshtml b/samples/MvcSample.Web/Views/Home/InjectSample.cshtml deleted file mode 100644 index 2f3f14c8c7..0000000000 --- a/samples/MvcSample.Web/Views/Home/InjectSample.cshtml +++ /dev/null @@ -1,7 +0,0 @@ -@using MvcSample.Web.Services -@inject MvcSample.Web.Services.ITestService MyService -@inject ITestService MyService2 - -@MyService.GetFoo() -@MyService2.GetFoo() - diff --git a/samples/MvcSample.Web/Views/Home/Language.cshtml b/samples/MvcSample.Web/Views/Home/Language.cshtml deleted file mode 100644 index 9f36c7f0f1..0000000000 --- a/samples/MvcSample.Web/Views/Home/Language.cshtml +++ /dev/null @@ -1,5 +0,0 @@ -
    -
  • COLOR
  • -
  • HUMOR
  • -
  • ITEMIZE
  • -
diff --git a/samples/MvcSample.Web/Views/Home/NullUser.cshtml b/samples/MvcSample.Web/Views/Home/NullUser.cshtml deleted file mode 100644 index fdd8a4d8ca..0000000000 --- a/samples/MvcSample.Web/Views/Home/NullUser.cshtml +++ /dev/null @@ -1,42 +0,0 @@ -@* - For more information on enabling MVC for empty projects, visit http://go.microsoft.com/fwlink/?LinkID=397860 -*@ -@{ - // ViewBag.Title = "Home Page"; -} - -@using MvcSample.Web.Models -@model User - -
-
- EditorForModel: - @Html.EditorForModel() -
-
- Editor of empty string: - @Html.Editor("") -
-
- EditorFor of identity expression: - @Html.EditorFor(m => m) -
- -
- DisplayForModel: - '@Html.DisplayForModel()' -
- -
- Display: - for name '@Html.Display("Name")' - and alive '@Html.Display("Alive")' -
- -
- Editor: - for name @Html.Editor("Name") - alive @Html.Editor("Alive") - and alive expression @Html.EditorFor(m => m.Alive) -
-
\ No newline at end of file diff --git a/samples/MvcSample.Web/Views/Home/PostFile.cshtml b/samples/MvcSample.Web/Views/Home/PostFile.cshtml deleted file mode 100644 index f2398f19d4..0000000000 --- a/samples/MvcSample.Web/Views/Home/PostFile.cshtml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - File Upload Successful - - -

File upload successful.

- - \ No newline at end of file diff --git a/samples/MvcSample.Web/Views/Home/ValidationSummary.cshtml b/samples/MvcSample.Web/Views/Home/ValidationSummary.cshtml deleted file mode 100644 index 66e7cc3466..0000000000 --- a/samples/MvcSample.Web/Views/Home/ValidationSummary.cshtml +++ /dev/null @@ -1,26 +0,0 @@ - - -

ValidationSummary Test Page.

-

Below are all overloads for Html.ValidationSummary. You should see 8 validation summary titles and 4 validation summary error messages.

-
- -
- @Html.ValidationSummary() - @Html.ValidationSummary(excludePropertyErrors: true) - @Html.ValidationSummary(message: "Hello from validation message summary 1.") - @Html.ValidationSummary(message: "Hello from validation message summary 2.", tag: "h2") - @Html.ValidationSummary(excludePropertyErrors: true, message: "Hello from validation message summary 3") - @Html.ValidationSummary(message: "Hello from validation message summary 4", htmlAttributes: new { style = "color: red" }) - @Html.ValidationSummary(message: "Hello from validation message summary 5", htmlAttributes: new { style = "color: red" }, tag: "h2") - @Html.ValidationSummary(excludePropertyErrors: true, message: "Hello from validation message summary 6", tag: "h2") - @Html.ValidationSummary(excludePropertyErrors: true, message: "Hello from validation message summary 7", htmlAttributes: new { style = "color: green" }) - @Html.ValidationSummary(message: "Hello from validation message summary 8", htmlAttributes: new Dictionary { { "style", "color: blue" } }, tag: "h2") -
\ No newline at end of file diff --git a/samples/MvcSample.Web/Views/Home/en-gb/Language.cshtml b/samples/MvcSample.Web/Views/Home/en-gb/Language.cshtml deleted file mode 100644 index 5d750371cb..0000000000 --- a/samples/MvcSample.Web/Views/Home/en-gb/Language.cshtml +++ /dev/null @@ -1,5 +0,0 @@ -
    -
  • COLOUR
  • -
  • HUMOUR
  • -
  • ITEMISE
  • -
diff --git a/samples/MvcSample.Web/Views/Home/fr/Language.cshtml b/samples/MvcSample.Web/Views/Home/fr/Language.cshtml deleted file mode 100644 index 363c8b3f42..0000000000 --- a/samples/MvcSample.Web/Views/Home/fr/Language.cshtml +++ /dev/null @@ -1,5 +0,0 @@ -
    -
  • COULEUR
  • -
  • HUMOUR
  • -
  • DÉTAILLER
  • -
diff --git a/samples/MvcSample.Web/Views/JsonPatch/Index.cshtml b/samples/MvcSample.Web/Views/JsonPatch/Index.cshtml deleted file mode 100644 index 660fb9c426..0000000000 --- a/samples/MvcSample.Web/Views/JsonPatch/Index.cshtml +++ /dev/null @@ -1,142 +0,0 @@ - - - - - -
- -
- -
-
-
- -
- -
-
-
- -
- -
-
-
- -
- -
-
- -
- -
-
-
- -
- -
- diff --git a/samples/MvcSample.Web/Views/Link/Details.cshtml b/samples/MvcSample.Web/Views/Link/Details.cshtml deleted file mode 100644 index f627dfdcba..0000000000 --- a/samples/MvcSample.Web/Views/Link/Details.cshtml +++ /dev/null @@ -1,3 +0,0 @@ - - -@Url.Action("About") diff --git a/samples/MvcSample.Web/Views/Shared/Components/Tags/Default.cshtml b/samples/MvcSample.Web/Views/Shared/Components/Tags/Default.cshtml deleted file mode 100644 index 702a80c0a4..0000000000 --- a/samples/MvcSample.Web/Views/Shared/Components/Tags/Default.cshtml +++ /dev/null @@ -1,9 +0,0 @@ -@model string[] - -
-

@ViewBag.Title

- @foreach (var tag in Model) - { - @tag - } -
\ No newline at end of file diff --git a/samples/MvcSample.Web/Views/Shared/DisplayTemplates/Decimal.cshtml b/samples/MvcSample.Web/Views/Shared/DisplayTemplates/Decimal.cshtml deleted file mode 100644 index e022aa5776..0000000000 --- a/samples/MvcSample.Web/Views/Shared/DisplayTemplates/Decimal.cshtml +++ /dev/null @@ -1,14 +0,0 @@ -@* Override default Decimal template to display value in bold. *@ -@using System.Globalization - -@functions { - private object FormattedValue { - get { - if (ViewData.TemplateInfo.FormattedModelValue == ViewData.ModelExplorer.Model) { - return String.Format(CultureInfo.CurrentCulture, "{0:0.00}", ViewData.ModelExplorer.Model); - } - return ViewData.TemplateInfo.FormattedModelValue; - } - } -} -@Html.Encode(FormattedValue) \ No newline at end of file diff --git a/samples/MvcSample.Web/Views/Shared/EditorTemplates/Decimal.cshtml b/samples/MvcSample.Web/Views/Shared/EditorTemplates/Decimal.cshtml deleted file mode 100644 index a7d00a3938..0000000000 --- a/samples/MvcSample.Web/Views/Shared/EditorTemplates/Decimal.cshtml +++ /dev/null @@ -1,18 +0,0 @@ -@* Override default Decimal template to display value in bold and ignore Html attributes in ViewData. *@ -@using System.Globalization - -@functions { - private object FormattedValue { - get { - if (ViewData.TemplateInfo.FormattedModelValue == ViewData.ModelExplorer.Model) { - return string.Format(CultureInfo.CurrentCulture, "{0:0.00}", ViewData.ModelExplorer.Model); - } - return ViewData.TemplateInfo.FormattedModelValue; - } - } -} - -@Html.TextBox( - expression: null, - value: FormattedValue, - htmlAttributes: new { @class = "text-box single-line", style = "font-weight: bold", }) \ No newline at end of file diff --git a/samples/MvcSample.Web/Views/Shared/HelloWorldPartial.cshtml b/samples/MvcSample.Web/Views/Shared/HelloWorldPartial.cshtml deleted file mode 100644 index 4c2bac4876..0000000000 --- a/samples/MvcSample.Web/Views/Shared/HelloWorldPartial.cshtml +++ /dev/null @@ -1,6 +0,0 @@ -@using MvcSample.Web.Models -@model User - -Hello @(Model?.Name) from Partial - -Create Something! \ No newline at end of file diff --git a/samples/MvcSample.Web/Views/Shared/MyView.cshtml b/samples/MvcSample.Web/Views/Shared/MyView.cshtml deleted file mode 100644 index 1d6a32262b..0000000000 --- a/samples/MvcSample.Web/Views/Shared/MyView.cshtml +++ /dev/null @@ -1,420 +0,0 @@ -@using MvcSample.Web.Models -@model User -@{ - ViewBag.Title = "Home Page"; - string nullValue = null; - - ViewBag.Anon = new - { - Name = "FirstName LastName", - Address = new { Street = "123 Fake St.", City = "Redmond", State = "WA", Country = "USA", }, - }; -} - -@section header { - -} - -@section footer { - - -} - -@functions { - public Task AsyncValueRetrieval() - { - return Task.FromResult("Hello World"); - } - - public Task RenderHelloWorldPartial(User model) - { - // Imagine this method was a super complex method that was used as a helper method. - return Html.RenderPartialAsync("HelloWorldPartial", model); - } -} - -
-

ASP.NET

-

ASP.NET is a free web framework for building great Web sites and Web applications using HTML, CSS and JavaScript.

-

Learn more »

-

@ViewBag.TempData
@TempData["tempData"]

- File Upload Demo:
-
- - - -
-
-
-

Hello @Html.DisplayTextFor(User => User)! Happy @(Model?.Age) birthday.

-

This value was retrieved asynchronously: @(await AsyncValueRetrieval())

-

Partial Async: @await Html.PartialAsync("HelloWorldPartial", Model)

-

- Render Partial Async (Custom model): @{ await RenderHelloWorldPartial(new User() - { - Name="Bob" - }); - } -

- -
-

Book a flight

-

- Go to our cool travel reservation system. -

-

@Html.ActionLink("Reserve Now", "Fly", "Flight", new { area = "Travel" }, new { @class = "btn btn-default" })

-
-
-

Get more libraries

-

NuGet is a free Visual Studio extension that makes it easy to add, remove, and update libraries and tools in Visual Studio projects.

-

Learn more »

-
-
-

Web Hosting

-

You can easily find a web hosting company that offers the right mix of features and price for your applications.

-

Learn more »

-
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
- @Html.LabelForModel("ForModel") - - '@Html.DisplayNameForModel()' - - '@Html.NameForModel()' - - '@Html.ValueForModel()' -
- @Html.Label("Name") - - '@Html.DisplayName("Name")' - - '@Html.Name("Name")' - - '@Html.Value("Name")' -
- @Html.LabelFor(m => m.Address) - - '@Html.DisplayNameFor(m => m.Address)' - - '@Html.NameFor(m => m.Address)' - - '@Html.ValueFor(m => m.Address)' -
- @Html.Label("Anon.Address.Street") - - '@Html.DisplayName("Anon.Address.Street")' - - '@Html.Name("Anon.Address.Street")' - - '@Html.Value("Anon.Address.Street")' -
-
-
-

Tags from View():

- @await Component.InvokeAsync("Tags", 5, "View") -

Tags from Content():

-

@await Component.InvokeAsync("Tags", 5, "Content")

-

Tags from Json():

-

@await Component.InvokeAsync("Tags", 5, "Json")

-

'@ViewBag.Title' should match page heading (still)

-
-
- @using (Html.BeginForm()) - { - @Html.HiddenFor(m => m.Age) - - - - - - - - - - - - - - - - - - - - - -
- @Html.Label("Name") - - @Html.TextBox("Name") -
- @Html.LabelFor(m => m.Address, htmlAttributes: new { @class="control-label col-md-2" }) - - @Html.TextBoxFor(m => m.Address, htmlAttributes: new { @class = "form-control" }) -
- @Html.Label("Alive") - - @Html.CheckBox("Alive") - or - @Html.RadioButton("Alive", value: false) False - @Html.RadioButton("Alive", value: true) True -
- @Html.LabelFor(m => m.Dependent.Alive) - - @Html.CheckBoxFor(m => m.Dependent.Alive) - or - @Html.RadioButtonFor(m => m.Dependent.Alive, value: false) False - @Html.RadioButtonFor(m => m.Dependent.Alive, value: true) True -
- -
- } - @{ Html.BeginForm(method: FormMethod.Post, htmlAttributes: new { someAttribute = "some value", }); } - @Html.Hidden("Anon.Id") - - - - - - - - - - - - - - - - - - - - - - - - - -
- @Html.Label("Anon.Name") - - @Html.TextBox("Anon.Name") -
- @Html.Label("Anon.Address.Street") - - @Html.TextBox("Anon.Address.Street", (object)ViewBag.Anon.Address.Street) -
- @Html.Label("Anon.Address.City") - - @Html.TextBox("Anon.Address.City", value: null, format: "{0} (3)") -
- @Html.Label("Anon.Address.State") - - @Html.TextBox("Anon.Address.State", value: null, htmlAttributes: new { @class = "form-control" }) -
- @Html.Label("Anon.Address.Country") - - @Html.TextBox("Anon.Address.Country", value: null, format: "{0} (4)", - htmlAttributes: new { @class = "form-control" }) -
- -
- @{ Html.EndForm(); } -
-
- @using (Html.BeginForm(controllerName: "Home", actionName: "Edit", method: FormMethod.Post)) - { - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- @Html.Label("Name", "Display / Edit Name") - - '@Html.Display("Name")' - - @Html.Editor("Name") -
- @Html.Label("Dependent.Name", "Display / Edit Dependent.Name") - - '@Html.Display("Dependent.Name")' - - @Html.Editor("Dependent.Name") -
- @Html.Label("Alive", "Display / Edit Alive") - - '@Html.Display("Alive")' - - @Html.Editor("Alive") -
- @Html.Label("Dependent.Alive", "Display / Edit Dependent.Alive") - - '@Html.Display("Dependent.Alive")' - - @Html.Editor("Dependent.Alive") -
- @Html.Label("Age", "Display / Edit Age") - - '@Html.Display("Age")' - - @Html.Editor("Age") -
- @Html.Label("GPA", "Display / Edit GPA") - - '@Html.Display("GPA")' - - @Html.Editor("GPA") -
- } -
-
- @using (Html.BeginForm(controllerName: "Home", actionName: "Edit", method: FormMethod.Post)) - { - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- @Html.LabelFor(model => model.Name, "DisplayFor / EditFor Name") - - '@Html.DisplayFor(model => model.Name)' - - @Html.EditorFor(model => model.Name) -
- @Html.LabelFor(model => model.Dependent.Name, "DisplayFor / EditFor Dependent.Name") - - '@Html.DisplayFor(model => model.Dependent.Name)' - - @Html.EditorFor(model => model.Dependent.Name) -
- @Html.LabelFor(model => model.Alive, "DisplayFor / EditFor Alive") - - '@Html.DisplayFor(model => model.Alive)' - - @Html.EditorFor(model => model.Alive) -
- @Html.LabelFor(model => model.Dependent.Alive, "DisplayFor / EditFor Dependent.Alive") - - '@Html.DisplayFor(model => model.Dependent.Alive)' - - @Html.EditorFor(model => model.Dependent.Alive) -
- @Html.LabelFor(model => model.Age, "DisplayFor / EditFor Age") - - '@Html.DisplayFor(model => model.Age)' - - @Html.EditorFor(model => model.Age) -
- @Html.LabelFor(model => model.GPA, "DisplayFor / EditFor GPA") - - '@Html.DisplayFor(model => model.GPA)' - - @Html.EditorFor(model => model.GPA) -
- } -
- -
- @Html.DisplayForModel() -
-
- @Html.EditorForModel() -
-
diff --git a/samples/MvcSample.Web/Views/Shared/_FlushPointLayout.cshtml b/samples/MvcSample.Web/Views/Shared/_FlushPointLayout.cshtml deleted file mode 100644 index c62898b48e..0000000000 --- a/samples/MvcSample.Web/Views/Shared/_FlushPointLayout.cshtml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - @ViewBag.Title - My ASP.NET Application - - - - -
- @await FlushAsync() - @RenderBody() - @RenderSection("content") -
-
-

© @DateTime.Now.Year - My ASP.NET Application

-
-
- - diff --git a/samples/MvcSample.Web/Views/Shared/_Layout.cshtml b/samples/MvcSample.Web/Views/Shared/_Layout.cshtml deleted file mode 100644 index 2e843399cb..0000000000 --- a/samples/MvcSample.Web/Views/Shared/_Layout.cshtml +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - @ViewBag.Title - My ASP.NET Application - - - @await RenderSectionAsync("header", required: false) - - - -
- @RenderBody() -
-
-

© @DateTime.Now.Year - My ASP.NET Application

-
-
- @await RenderSectionAsync("footer", required: false) - - diff --git a/samples/MvcSample.Web/Views/Shared/fr/_Layout.cshtml b/samples/MvcSample.Web/Views/Shared/fr/_Layout.cshtml deleted file mode 100644 index bc88bc1ce5..0000000000 --- a/samples/MvcSample.Web/Views/Shared/fr/_Layout.cshtml +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - @ViewBag.Title - Ma Requête ASP.NET - - - @await RenderSectionAsync("header", required: false) - - - -
- @RenderBody() -
-
-

© @DateTime.Now.Year - Mon Application ASP.NET

-
-
- @await RenderSectionAsync("footer", required: false) - - diff --git a/samples/MvcSample.Web/bower.json b/samples/MvcSample.Web/bower.json deleted file mode 100644 index 6805ab323f..0000000000 --- a/samples/MvcSample.Web/bower.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "MvcSample.Web", - "description": "Web site demonstrating various MVC features.", - "private": true, - "dependencies": { - "jquery": "1.11.2" - }, - "exportsOverride": { - "jquery": { - "": "dist/jquery.{js,min.js,min.map}" - } - } -} diff --git a/samples/MvcSample.Web/gruntfile.js b/samples/MvcSample.Web/gruntfile.js deleted file mode 100644 index 34c745b143..0000000000 --- a/samples/MvcSample.Web/gruntfile.js +++ /dev/null @@ -1,21 +0,0 @@ - -module.exports = function (grunt) { - grunt.initConfig({ - bower: { - install: { - options: { - targetDir: "wwwroot/lib", - layout: "byComponent", - cleanTargetDir: false - } - } - } - }); - - // This command registers the default task which will install bower packages into wwwroot/lib - grunt.registerTask("default", ["bower:install"]); - - // The following line loads the grunt plugins. - // This line needs to be at the end of this this file. - grunt.loadNpmTasks("grunt-bower-task"); -}; \ No newline at end of file diff --git a/samples/MvcSample.Web/package.json b/samples/MvcSample.Web/package.json deleted file mode 100644 index 13d5d39599..0000000000 --- a/samples/MvcSample.Web/package.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "version": "0.0.0", - "name": "MvcSample.Web", - "private": true, - "description": "Web site demonstrating various MVC features.", - "devDependencies": { - "grunt": "^0.4.5", - "grunt-bower-task": "^0.4.0" - } -} \ No newline at end of file diff --git a/samples/MvcSample.Web/readme.md b/samples/MvcSample.Web/readme.md deleted file mode 100644 index c1be6a2f36..0000000000 --- a/samples/MvcSample.Web/readme.md +++ /dev/null @@ -1,4 +0,0 @@ -MvcSample.Web -=== -This sample web project illustrates various MVC 6 features. Please build from root -(`.\build.cmd` on Windows; `./build.sh` elsewhere) before using this site. \ No newline at end of file diff --git a/samples/MvcSample.Web/wwwroot/Content/api-description.css b/samples/MvcSample.Web/wwwroot/Content/api-description.css deleted file mode 100644 index 9ffca2b105..0000000000 --- a/samples/MvcSample.Web/wwwroot/Content/api-description.css +++ /dev/null @@ -1,32 +0,0 @@ -.api-description { - margin: 10px 0px 10px 0px; - padding: 5px; -} - -.api-description h5 { - margin-top: 20px; -} - -.api-description hr { - border: 0px; - border-top: 1px solid #D44B4B; - margin: 0px; - margin-bottom: 10px; -} - -.api-description table { - width: 100%; -} - -.api-description thead { - border-bottom: 1px solid black; -} - -.api-description td { - border-bottom: 1px solid #CCCCCC; - color: #666666; - padding: 5px; -} -.api-description tr:last-child td { - border-bottom: none; -} \ No newline at end of file diff --git a/samples/MvcSample.Web/wwwroot/Content/bootstrap.min.css b/samples/MvcSample.Web/wwwroot/Content/bootstrap.min.css deleted file mode 100644 index 89271635f7..0000000000 --- a/samples/MvcSample.Web/wwwroot/Content/bootstrap.min.css +++ /dev/null @@ -1,20 +0,0 @@ -/* NUGET: BEGIN LICENSE TEXT - * - * Microsoft grants you the right to use these script files for the sole - * purpose of either: (i) interacting through your browser with the Microsoft - * website or online service, subject to the applicable licensing or use - * terms; or (ii) using the files as included with a Microsoft product subject - * to that product's license terms. Microsoft reserves all other rights to the - * files not expressly granted by Microsoft, whether by implication, estoppel - * or otherwise. The notices and licenses below are for informational purposes only. - * - * NUGET: END LICENSE TEXT */ -/*! - * Bootstrap v3.0.0 - * - * Copyright 2013 Twitter, Inc - * Licensed under the Apache License v2.0 - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Designed and built with all the love in the world by @mdo and @fat. - *//*! normalize.css v2.1.0 | MIT License | git.io/normalize */article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,video{display:inline-block}audio:not([controls]){display:none;height:0}[hidden]{display:none}html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}a:focus{outline:thin dotted}a:active,a:hover{outline:0}h1{margin:.67em 0;font-size:2em}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}hr{height:0;-moz-box-sizing:content-box;box-sizing:content-box}mark{color:#000;background:#ff0}code,kbd,pre,samp{font-family:monospace,serif;font-size:1em}pre{white-space:pre-wrap}q{quotes:"\201C" "\201D" "\2018" "\2019"}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:0}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid #c0c0c0}legend{padding:0;border:0}button,input,select,textarea{margin:0;font-family:inherit;font-size:100%}button,input{line-height:normal}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button}button[disabled],html input[disabled]{cursor:default}input[type="checkbox"],input[type="radio"]{padding:0;box-sizing:border-box}input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0}@media print{*{color:#000!important;text-shadow:none!important;background:transparent!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}@page{margin:2cm .5cm}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.table td,.table th{background-color:#fff!important}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table-bordered th,.table-bordered td{border:1px solid #ddd!important}}*,*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:62.5%;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.428571429;color:#333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}button,input,select[multiple],textarea{background-image:none}a{color:#428bca;text-decoration:none}a:hover,a:focus{color:#2a6496;text-decoration:underline}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}img{vertical-align:middle}.img-responsive{display:block;height:auto;max-width:100%}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;height:auto;max-width:100%;padding:4px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);border:0}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16.099999999999998px;font-weight:200;line-height:1.4}@media(min-width:768px){.lead{font-size:21px}}small{font-size:85%}cite{font-style:normal}.text-muted{color:#999}.text-primary{color:#428bca}.text-warning{color:#c09853}.text-danger{color:#b94a48}.text-success{color:#468847}.text-info{color:#3a87ad}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:500;line-height:1.1}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small{font-weight:normal;line-height:1;color:#999}h1,h2,h3{margin-top:20px;margin-bottom:10px}h4,h5,h6{margin-top:10px;margin-bottom:10px}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}h1 small,.h1 small{font-size:24px}h2 small,.h2 small{font-size:18px}h3 small,.h3 small,h4 small,.h4 small{font-size:14px}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-bottom:20px}dt,dd{line-height:1.428571429}dt{font-weight:bold}dd{margin-left:0}@media(min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}.dl-horizontal dd:before,.dl-horizontal dd:after{display:table;content:" "}.dl-horizontal dd:after{clear:both}.dl-horizontal dd:before,.dl-horizontal dd:after{display:table;content:" "}.dl-horizontal dd:after{clear:both}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;border-left:5px solid #eee}blockquote p{font-size:17.5px;font-weight:300;line-height:1.25}blockquote p:last-child{margin-bottom:0}blockquote small{display:block;line-height:1.428571429;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}blockquote.pull-right small:before{content:''}blockquote.pull-right small:after{content:'\00A0 \2014'}q:before,q:after,blockquote:before,blockquote:after{content:""}address{display:block;margin-bottom:20px;font-style:normal;line-height:1.428571429}code,pre{font-family:Monaco,Menlo,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;white-space:nowrap;background-color:#f9f2f4;border-radius:4px}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.428571429;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre.prettyprint{margin-bottom:20px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.container:before,.container:after{display:table;content:" "}.container:after{clear:both}.container:before,.container:after{display:table;content:" "}.container:after{clear:both}.row{margin-right:-15px;margin-left:-15px}.row:before,.row:after{display:table;content:" "}.row:after{clear:both}.row:before,.row:after{display:table;content:" "}.row:after{clear:both}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11{float:left}.col-xs-1{width:8.333333333333332%}.col-xs-2{width:16.666666666666664%}.col-xs-3{width:25%}.col-xs-4{width:33.33333333333333%}.col-xs-5{width:41.66666666666667%}.col-xs-6{width:50%}.col-xs-7{width:58.333333333333336%}.col-xs-8{width:66.66666666666666%}.col-xs-9{width:75%}.col-xs-10{width:83.33333333333334%}.col-xs-11{width:91.66666666666666%}.col-xs-12{width:100%}@media(min-width:768px){.container{max-width:750px}.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11{float:left}.col-sm-1{width:8.333333333333332%}.col-sm-2{width:16.666666666666664%}.col-sm-3{width:25%}.col-sm-4{width:33.33333333333333%}.col-sm-5{width:41.66666666666667%}.col-sm-6{width:50%}.col-sm-7{width:58.333333333333336%}.col-sm-8{width:66.66666666666666%}.col-sm-9{width:75%}.col-sm-10{width:83.33333333333334%}.col-sm-11{width:91.66666666666666%}.col-sm-12{width:100%}.col-sm-push-1{left:8.333333333333332%}.col-sm-push-2{left:16.666666666666664%}.col-sm-push-3{left:25%}.col-sm-push-4{left:33.33333333333333%}.col-sm-push-5{left:41.66666666666667%}.col-sm-push-6{left:50%}.col-sm-push-7{left:58.333333333333336%}.col-sm-push-8{left:66.66666666666666%}.col-sm-push-9{left:75%}.col-sm-push-10{left:83.33333333333334%}.col-sm-push-11{left:91.66666666666666%}.col-sm-pull-1{right:8.333333333333332%}.col-sm-pull-2{right:16.666666666666664%}.col-sm-pull-3{right:25%}.col-sm-pull-4{right:33.33333333333333%}.col-sm-pull-5{right:41.66666666666667%}.col-sm-pull-6{right:50%}.col-sm-pull-7{right:58.333333333333336%}.col-sm-pull-8{right:66.66666666666666%}.col-sm-pull-9{right:75%}.col-sm-pull-10{right:83.33333333333334%}.col-sm-pull-11{right:91.66666666666666%}.col-sm-offset-1{margin-left:8.333333333333332%}.col-sm-offset-2{margin-left:16.666666666666664%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-4{margin-left:33.33333333333333%}.col-sm-offset-5{margin-left:41.66666666666667%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-7{margin-left:58.333333333333336%}.col-sm-offset-8{margin-left:66.66666666666666%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-10{margin-left:83.33333333333334%}.col-sm-offset-11{margin-left:91.66666666666666%}}@media(min-width:992px){.container{max-width:970px}.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11{float:left}.col-md-1{width:8.333333333333332%}.col-md-2{width:16.666666666666664%}.col-md-3{width:25%}.col-md-4{width:33.33333333333333%}.col-md-5{width:41.66666666666667%}.col-md-6{width:50%}.col-md-7{width:58.333333333333336%}.col-md-8{width:66.66666666666666%}.col-md-9{width:75%}.col-md-10{width:83.33333333333334%}.col-md-11{width:91.66666666666666%}.col-md-12{width:100%}.col-md-push-0{left:auto}.col-md-push-1{left:8.333333333333332%}.col-md-push-2{left:16.666666666666664%}.col-md-push-3{left:25%}.col-md-push-4{left:33.33333333333333%}.col-md-push-5{left:41.66666666666667%}.col-md-push-6{left:50%}.col-md-push-7{left:58.333333333333336%}.col-md-push-8{left:66.66666666666666%}.col-md-push-9{left:75%}.col-md-push-10{left:83.33333333333334%}.col-md-push-11{left:91.66666666666666%}.col-md-pull-0{right:auto}.col-md-pull-1{right:8.333333333333332%}.col-md-pull-2{right:16.666666666666664%}.col-md-pull-3{right:25%}.col-md-pull-4{right:33.33333333333333%}.col-md-pull-5{right:41.66666666666667%}.col-md-pull-6{right:50%}.col-md-pull-7{right:58.333333333333336%}.col-md-pull-8{right:66.66666666666666%}.col-md-pull-9{right:75%}.col-md-pull-10{right:83.33333333333334%}.col-md-pull-11{right:91.66666666666666%}.col-md-offset-0{margin-left:0}.col-md-offset-1{margin-left:8.333333333333332%}.col-md-offset-2{margin-left:16.666666666666664%}.col-md-offset-3{margin-left:25%}.col-md-offset-4{margin-left:33.33333333333333%}.col-md-offset-5{margin-left:41.66666666666667%}.col-md-offset-6{margin-left:50%}.col-md-offset-7{margin-left:58.333333333333336%}.col-md-offset-8{margin-left:66.66666666666666%}.col-md-offset-9{margin-left:75%}.col-md-offset-10{margin-left:83.33333333333334%}.col-md-offset-11{margin-left:91.66666666666666%}}@media(min-width:1200px){.container{max-width:1170px}.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11{float:left}.col-lg-1{width:8.333333333333332%}.col-lg-2{width:16.666666666666664%}.col-lg-3{width:25%}.col-lg-4{width:33.33333333333333%}.col-lg-5{width:41.66666666666667%}.col-lg-6{width:50%}.col-lg-7{width:58.333333333333336%}.col-lg-8{width:66.66666666666666%}.col-lg-9{width:75%}.col-lg-10{width:83.33333333333334%}.col-lg-11{width:91.66666666666666%}.col-lg-12{width:100%}.col-lg-push-0{left:auto}.col-lg-push-1{left:8.333333333333332%}.col-lg-push-2{left:16.666666666666664%}.col-lg-push-3{left:25%}.col-lg-push-4{left:33.33333333333333%}.col-lg-push-5{left:41.66666666666667%}.col-lg-push-6{left:50%}.col-lg-push-7{left:58.333333333333336%}.col-lg-push-8{left:66.66666666666666%}.col-lg-push-9{left:75%}.col-lg-push-10{left:83.33333333333334%}.col-lg-push-11{left:91.66666666666666%}.col-lg-pull-0{right:auto}.col-lg-pull-1{right:8.333333333333332%}.col-lg-pull-2{right:16.666666666666664%}.col-lg-pull-3{right:25%}.col-lg-pull-4{right:33.33333333333333%}.col-lg-pull-5{right:41.66666666666667%}.col-lg-pull-6{right:50%}.col-lg-pull-7{right:58.333333333333336%}.col-lg-pull-8{right:66.66666666666666%}.col-lg-pull-9{right:75%}.col-lg-pull-10{right:83.33333333333334%}.col-lg-pull-11{right:91.66666666666666%}.col-lg-offset-0{margin-left:0}.col-lg-offset-1{margin-left:8.333333333333332%}.col-lg-offset-2{margin-left:16.666666666666664%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-4{margin-left:33.33333333333333%}.col-lg-offset-5{margin-left:41.66666666666667%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-7{margin-left:58.333333333333336%}.col-lg-offset-8{margin-left:66.66666666666666%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-10{margin-left:83.33333333333334%}.col-lg-offset-11{margin-left:91.66666666666666%}}table{max-width:100%;background-color:transparent}th{text-align:left}.table{width:100%;margin-bottom:20px}.table thead>tr>th,.table tbody>tr>th,.table tfoot>tr>th,.table thead>tr>td,.table tbody>tr>td,.table tfoot>tr>td{padding:8px;line-height:1.428571429;vertical-align:top;border-top:1px solid #ddd}.table thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table caption+thead tr:first-child th,.table colgroup+thead tr:first-child th,.table thead:first-child tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child td{border-top:0}.table tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed thead>tr>th,.table-condensed tbody>tr>th,.table-condensed tfoot>tr>th,.table-condensed thead>tr>td,.table-condensed tbody>tr>td,.table-condensed tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd)>td,.table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th{background-color:#f5f5f5}table col[class*="col-"]{display:table-column;float:none}table td[class*="col-"],table th[class*="col-"]{display:table-cell;float:none}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8;border-color:#d6e9c6}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td{background-color:#d0e9c6;border-color:#c9e2b3}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede;border-color:#eed3d7}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td{background-color:#ebcccc;border-color:#e6c1c7}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3;border-color:#fbeed5}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td{background-color:#faf2cc;border-color:#f8e5be}@media(max-width:768px){.table-responsive{width:100%;margin-bottom:15px;overflow-x:scroll;overflow-y:hidden;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0;background-color:#fff}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>thead>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>thead>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}select[multiple],select[size]{height:auto}select optgroup{font-family:inherit;font-size:inherit;font-style:inherit}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}input[type="number"]::-webkit-outer-spin-button,input[type="number"]::-webkit-inner-spin-button{height:auto}.form-control:-moz-placeholder{color:#999}.form-control::-moz-placeholder{color:#999}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.428571429;color:#555;vertical-align:middle;background-color:#fff;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6)}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee}textarea.form-control{height:auto}.form-group{margin-bottom:15px}.radio,.checkbox{display:block;min-height:20px;padding-left:20px;margin-top:10px;margin-bottom:10px;vertical-align:middle}.radio label,.checkbox label{display:inline;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{float:left;margin-left:-20px}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;font-weight:normal;vertical-align:middle;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="checkbox"][disabled],.radio[disabled],.radio-inline[disabled],.checkbox[disabled],.checkbox-inline[disabled],fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"],fieldset[disabled] .radio,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}textarea.input-sm{height:auto}.input-lg{height:45px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-lg{height:45px;line-height:45px}textarea.input-lg{height:auto}.has-warning .help-block,.has-warning .control-label{color:#c09853}.has-warning .form-control{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e}.has-warning .input-group-addon{color:#c09853;background-color:#fcf8e3;border-color:#c09853}.has-error .help-block,.has-error .control-label{color:#b94a48}.has-error .form-control{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392}.has-error .input-group-addon{color:#b94a48;background-color:#f2dede;border-color:#b94a48}.has-success .help-block,.has-success .control-label{color:#468847}.has-success .form-control{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b}.has-success .input-group-addon{color:#468847;background-color:#dff0d8;border-color:#468847}.form-control-static{padding-top:7px;margin-bottom:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media(min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block}.form-inline .radio,.form-inline .checkbox{display:inline-block;padding-left:0;margin-top:0;margin-bottom:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:none;margin-left:0}}.form-horizontal .control-label,.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}.form-horizontal .form-group:before,.form-horizontal .form-group:after{display:table;content:" "}.form-horizontal .form-group:after{clear:both}.form-horizontal .form-group:before,.form-horizontal .form-group:after{display:table;content:" "}.form-horizontal .form-group:after{clear:both}@media(min-width:768px){.form-horizontal .control-label{text-align:right}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:normal;line-height:1.428571429;text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;border:1px solid transparent;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus{color:#333;text-decoration:none}.btn:active,.btn.active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{pointer-events:none;cursor:not-allowed;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{color:#333;background-color:#ebebeb;border-color:#adadad}.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#fff;border-color:#ccc}.btn-primary{color:#fff;background-color:#428bca;border-color:#357ebd}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{color:#fff;background-color:#3276b1;border-color:#285e8e}.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#428bca;border-color:#357ebd}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{color:#fff;background-color:#ed9c28;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{color:#fff;background-color:#d2322d;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{color:#fff;background-color:#47a447;border-color:#398439}.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:#4cae4c}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{color:#fff;background-color:#39b3d7;border-color:#269abc}.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da}.btn-link{font-weight:normal;color:#428bca;cursor:pointer;border-radius:0}.btn-link,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#2a6496;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#999;text-decoration:none}.btn-lg{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-sm,.btn-xs{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs{padding:1px 5px}.btn-block{display:block;width:100%;padding-right:0;padding-left:0}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@font-face{font-family:'Glyphicons Halflings';src:url('../fonts/glyphicons-halflings-regular.eot');src:url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),url('../fonts/glyphicons-halflings-regular.woff') format('woff'),url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'),url('../fonts/glyphicons-halflings-regular.svg#glyphicons-halflingsregular') format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';-webkit-font-smoothing:antialiased;font-style:normal;font-weight:normal;line-height:1}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-print:before{content:"\e045"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-briefcase:before{content:"\1f4bc"}.glyphicon-calendar:before{content:"\1f4c5"}.glyphicon-pushpin:before{content:"\1f4cc"}.glyphicon-paperclip:before{content:"\1f4ce"}.glyphicon-camera:before{content:"\1f4f7"}.glyphicon-lock:before{content:"\1f512"}.glyphicon-bell:before{content:"\1f514"}.glyphicon-bookmark:before{content:"\1f516"}.glyphicon-fire:before{content:"\1f525"}.glyphicon-wrench:before{content:"\1f527"}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid #000;border-right:4px solid transparent;border-bottom:0 dotted;border-left:4px solid transparent;content:""}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;list-style:none;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.428571429;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{color:#fff;text-decoration:none;background-color:#428bca}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;background-color:#428bca;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.428571429;color:#999}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0 dotted;border-bottom:4px solid #000;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media(min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}}.btn-default .caret{border-top-color:#333}.btn-primary .caret,.btn-success .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret{border-top-color:#fff}.dropup .btn-default .caret{border-bottom-color:#333}.dropup .btn-primary .caret,.dropup .btn-success .caret,.dropup .btn-warning .caret,.dropup .btn-danger .caret,.dropup .btn-info .caret{border-bottom-color:#fff}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group>.btn:focus,.btn-group-vertical>.btn:focus{outline:0}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar:before,.btn-toolbar:after{display:table;content:" "}.btn-toolbar:after{clear:both}.btn-toolbar:before,.btn-toolbar:after{display:table;content:" "}.btn-toolbar:after{clear:both}.btn-toolbar .btn-group{float:left}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn+.btn-group,.btn-toolbar>.btn-group+.btn-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group-xs>.btn{padding:5px 10px;padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after{display:table;content:" "}.btn-group-vertical>.btn-group:after{clear:both}.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after{display:table;content:" "}.btn-group-vertical>.btn-group:after{clear:both}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-right-radius:0;border-bottom-left-radius:4px;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child>.btn:last-child,.btn-group-vertical>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;border-collapse:separate;table-layout:fixed}.btn-group-justified .btn{display:table-cell;float:none;width:1%}[data-toggle="buttons"]>.btn>input[type="radio"],[data-toggle="buttons"]>.btn>input[type="checkbox"]{display:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group.col{float:none;padding-right:0;padding-left:0}.input-group .form-control{width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:45px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:45px;line-height:45px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:normal;line-height:1;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-4px}.input-group-btn>.btn:hover,.input-group-btn>.btn:active{z-index:2}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav:before,.nav:after{display:table;content:" "}.nav:after{clear:both}.nav:before,.nav:after{display:table;content:" "}.nav:after{clear:both}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#999}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#999;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eee;border-color:#428bca}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.428571429;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center}@media(min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}}.nav-tabs.nav-justified>li>a{margin-right:0;border-bottom:1px solid #ddd}.nav-tabs.nav-justified>.active>a{border-bottom-color:#fff}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:5px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#428bca}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center}@media(min-width:768px){.nav-justified>li{display:table-cell;width:1%}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-bottom:1px solid #ddd}.nav-tabs-justified>.active>a{border-bottom-color:#fff}.tabbable:before,.tabbable:after{display:table;content:" "}.tabbable:after{clear:both}.tabbable:before,.tabbable:after{display:table;content:" "}.tabbable:after{clear:both}.tab-content>.tab-pane,.pill-content>.pill-pane{display:none}.tab-content>.active,.pill-content>.active{display:block}.nav .caret{border-top-color:#428bca;border-bottom-color:#428bca}.nav a:hover .caret{border-top-color:#2a6496;border-bottom-color:#2a6496}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;z-index:1000;min-height:50px;margin-bottom:20px;border:1px solid transparent}.navbar:before,.navbar:after{display:table;content:" "}.navbar:after{clear:both}.navbar:before,.navbar:after{display:table;content:" "}.navbar:after{clear:both}@media(min-width:768px){.navbar{border-radius:4px}}.navbar-header:before,.navbar-header:after{display:table;content:" "}.navbar-header:after{clear:both}.navbar-header:before,.navbar-header:after{display:table;content:" "}.navbar-header:after{clear:both}@media(min-width:768px){.navbar-header{float:left}}.navbar-collapse{max-height:340px;padding-right:15px;padding-left:15px;overflow-x:visible;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse:before,.navbar-collapse:after{display:table;content:" "}.navbar-collapse:after{clear:both}.navbar-collapse:before,.navbar-collapse:after{display:table;content:" "}.navbar-collapse:after{clear:both}.navbar-collapse.in{overflow-y:auto}@media(min-width:768px){.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-collapse .navbar-nav.navbar-left:first-child{margin-left:-15px}.navbar-collapse .navbar-nav.navbar-right:last-child{margin-right:-15px}.navbar-collapse .navbar-text:last-child{margin-right:0}}.container>.navbar-header,.container>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media(min-width:768px){.container>.navbar-header,.container>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{border-width:0 0 1px}@media(min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;border-width:0 0 1px}@media(min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;z-index:1030}.navbar-fixed-bottom{bottom:0;margin-bottom:0}.navbar-brand{float:left;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}@media(min-width:768px){.navbar>.container .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;border:1px solid transparent;border-radius:4px}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media(min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media(max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media(min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}@media(min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1)}@media(min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;padding-left:0;margin-top:0;margin-bottom:0}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{float:none;margin-left:0}}@media(max-width:767px){.navbar-form .form-group{margin-bottom:5px}}@media(min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-nav.pull-right>li>.dropdown-menu,.navbar-nav>li>.dropdown-menu.pull-right{right:0;left:auto}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-text{float:left;margin-top:15px;margin-bottom:15px}@media(min-width:768px){.navbar-text{margin-right:15px;margin-left:15px}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#ccc}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e6e6e6}.navbar-default .navbar-nav>.dropdown>a:hover .caret,.navbar-default .navbar-nav>.dropdown>a:focus .caret{border-top-color:#333;border-bottom-color:#333}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.open>a .caret,.navbar-default .navbar-nav>.open>a:hover .caret,.navbar-default .navbar-nav>.open>a:focus .caret{border-top-color:#555;border-bottom-color:#555}.navbar-default .navbar-nav>.dropdown>a .caret{border-top-color:#777;border-bottom-color:#777}@media(max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#999}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .navbar-nav>li>a{color:#999}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.dropdown>a:hover .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .navbar-nav>.dropdown>a .caret{border-top-color:#999;border-bottom-color:#999}.navbar-inverse .navbar-nav>.open>a .caret,.navbar-inverse .navbar-nav>.open>a:hover .caret,.navbar-inverse .navbar-nav>.open>a:focus .caret{border-top-color:#fff;border-bottom-color:#fff}@media(max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#999}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover{color:#fff}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#999}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.428571429;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{background-color:#eee}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#fff;cursor:default;background-color:#428bca;border-color:#428bca}.pagination>.disabled>span,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#999;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager:before,.pager:after{display:table;content:" "}.pager:after{clear:both}.pager:before,.pager:after{display:table;content:" "}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}.label[href]:hover,.label[href]:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.label-default{background-color:#999}.label-default[href]:hover,.label-default[href]:focus{background-color:#808080}.label-primary{background-color:#428bca}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#3071a9}.label-success{background-color:#5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:bold;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;background-color:#999;border-radius:10px}.badge:empty{display:none}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}.btn .badge{position:relative;top:-1px}a.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#428bca;background-color:#fff}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px;margin-bottom:30px;font-size:21px;font-weight:200;line-height:2.1428571435;color:inherit;background-color:#eee}.jumbotron h1{line-height:1;color:inherit}.jumbotron p{line-height:1.4}.container .jumbotron{border-radius:6px}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron{padding-right:60px;padding-left:60px}.jumbotron h1{font-size:63px}}.thumbnail{display:inline-block;display:block;height:auto;max-width:100%;padding:4px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.thumbnail>img{display:block;height:auto;max-width:100%}a.thumbnail:hover,a.thumbnail:focus{border-color:#428bca}.thumbnail>img{margin-right:auto;margin-left:auto}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable{padding-right:35px}.alert-dismissable .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#356635}.alert-info{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#2d6987}.alert-warning{color:#c09853;background-color:#fcf8e3;border-color:#fbeed5}.alert-warning hr{border-top-color:#f8e5be}.alert-warning .alert-link{color:#a47e3c}.alert-danger{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.alert-danger hr{border-top-color:#e6c1c7}.alert-danger .alert-link{color:#953b39}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;color:#fff;text-align:center;background-color:#428bca;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width .6s ease;transition:width .6s ease}.progress-striped .progress-bar{background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-size:40px 40px}.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.media,.media-body{overflow:hidden;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,a.list-group-item:focus{text-decoration:none;background-color:#f5f5f5}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#e1edf7}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-body:before,.panel-body:after{display:table;content:" "}.panel-body:after{clear:both}.panel-body:before,.panel-body:after{display:table;content:" "}.panel-body:after{clear:both}.panel>.list-group{margin-bottom:0}.panel>.list-group .list-group-item{border-width:1px 0}.panel>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel>.list-group .list-group-item:last-child{border-bottom:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.table{margin-bottom:0}.panel>.panel-body+.table{border-top:1px solid #ddd}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-title{margin-top:0;margin-bottom:0;font-size:16px}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-group .panel{margin-bottom:0;overflow:hidden;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse .panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse .panel-body{border-top-color:#ddd}.panel-default>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#428bca}.panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.panel-primary>.panel-heading+.panel-collapse .panel-body{border-top-color:#428bca}.panel-primary>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#428bca}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse .panel-body{border-top-color:#d6e9c6}.panel-success>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#d6e9c6}.panel-warning{border-color:#fbeed5}.panel-warning>.panel-heading{color:#c09853;background-color:#fcf8e3;border-color:#fbeed5}.panel-warning>.panel-heading+.panel-collapse .panel-body{border-top-color:#fbeed5}.panel-warning>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#fbeed5}.panel-danger{border-color:#eed3d7}.panel-danger>.panel-heading{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.panel-danger>.panel-heading+.panel-collapse .panel-body{border-top-color:#eed3d7}.panel-danger>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#eed3d7}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse .panel-body{border-top-color:#bce8f1}.panel-info>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#bce8f1}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:bold;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}body.modal-open,.modal-open .navbar-fixed-top,.modal-open .navbar-fixed-bottom{margin-right:15px}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;display:none;overflow:auto;overflow-y:scroll}.modal.fade .modal-dialog{-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);transform:translate(0,-25%);-webkit-transition:-webkit-transform .3s ease-out;-moz-transition:-moz-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.modal-dialog{z-index:1050;width:auto;padding:10px;margin-right:auto;margin-left:auto}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);background-clip:padding-box}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1030;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{min-height:16.428571429px;padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.428571429}.modal-body{position:relative;padding:20px}.modal-footer{padding:19px 20px 20px;margin-top:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer:before,.modal-footer:after{display:table;content:" "}.modal-footer:after{clear:both}.modal-footer:before,.modal-footer:after{display:table;content:" "}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}@media screen and (min-width:768px){.modal-dialog{right:auto;left:50%;width:600px;padding-top:30px;padding-bottom:30px}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}}.tooltip{position:absolute;z-index:1030;display:block;font-size:12px;line-height:1.4;opacity:0;filter:alpha(opacity=0);visibility:visible}.tooltip.in{opacity:.9;filter:alpha(opacity=90)}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-color:#000;border-width:5px 5px 0}.tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-top-color:#000;border-width:5px 5px 0}.tooltip.top-right .tooltip-arrow{right:5px;bottom:0;border-top-color:#000;border-width:5px 5px 0}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-right-color:#000;border-width:5px 5px 5px 0}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-left-color:#000;border-width:5px 0 5px 5px}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-color:#000;border-width:0 5px 5px}.tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-bottom-color:#000;border-width:0 5px 5px}.tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-bottom-color:#000;border-width:0 5px 5px}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;white-space:normal;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);background-clip:padding-box}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover .arrow{border-width:11px}.popover .arrow:after{border-width:10px;content:""}.popover.top .arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);border-bottom-width:0}.popover.top .arrow:after{bottom:1px;margin-left:-10px;border-top-color:#fff;border-bottom-width:0;content:" "}.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,0.25);border-left-width:0}.popover.right .arrow:after{bottom:-10px;left:1px;border-right-color:#fff;border-left-width:0;content:" "}.popover.bottom .arrow{top:-11px;left:50%;margin-left:-11px;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);border-top-width:0}.popover.bottom .arrow:after{top:1px;margin-left:-10px;border-bottom-color:#fff;border-top-width:0;content:" "}.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-left-color:#999;border-left-color:rgba(0,0,0,0.25);border-right-width:0}.popover.left .arrow:after{right:1px;bottom:-10px;border-left-color:#fff;border-right-width:0;content:" "}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;height:auto;max-width:100%;line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6);opacity:.5;filter:alpha(opacity=50)}.carousel-control.left{background-image:-webkit-gradient(linear,0 top,100% top,from(rgba(0,0,0,0.5)),to(rgba(0,0,0,0.0001)));background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,0.5) 0),color-stop(rgba(0,0,0,0.0001) 100%));background-image:-moz-linear-gradient(left,rgba(0,0,0,0.5) 0,rgba(0,0,0,0.0001) 100%);background-image:linear-gradient(to right,rgba(0,0,0,0.5) 0,rgba(0,0,0,0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000',endColorstr='#00000000',GradientType=1)}.carousel-control.right{right:0;left:auto;background-image:-webkit-gradient(linear,0 top,100% top,from(rgba(0,0,0,0.0001)),to(rgba(0,0,0,0.5)));background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,0.0001) 0),color-stop(rgba(0,0,0,0.5) 100%));background-image:-moz-linear-gradient(left,rgba(0,0,0,0.0001) 0,rgba(0,0,0,0.5) 100%);background-image:linear-gradient(to right,rgba(0,0,0,0.0001) 0,rgba(0,0,0,0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000',endColorstr='#80000000',GradientType=1)}.carousel-control:hover,.carousel-control:focus{color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;left:50%;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;margin-top:-10px;margin-left:-10px;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;margin-left:-15px;font-size:30px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after{display:table;content:" "}.clearfix:after{clear:both}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.affix{position:fixed}@-ms-viewport{width:device-width}@media screen and (max-width:400px){@-ms-viewport{width:320px}}.hidden{display:none!important;visibility:hidden!important}.visible-xs{display:none!important}tr.visible-xs{display:none!important}th.visible-xs,td.visible-xs{display:none!important}@media(max-width:767px){.visible-xs{display:block!important}tr.visible-xs{display:table-row!important}th.visible-xs,td.visible-xs{display:table-cell!important}}@media(min-width:768px) and (max-width:991px){.visible-xs.visible-sm{display:block!important}tr.visible-xs.visible-sm{display:table-row!important}th.visible-xs.visible-sm,td.visible-xs.visible-sm{display:table-cell!important}}@media(min-width:992px) and (max-width:1199px){.visible-xs.visible-md{display:block!important}tr.visible-xs.visible-md{display:table-row!important}th.visible-xs.visible-md,td.visible-xs.visible-md{display:table-cell!important}}@media(min-width:1200px){.visible-xs.visible-lg{display:block!important}tr.visible-xs.visible-lg{display:table-row!important}th.visible-xs.visible-lg,td.visible-xs.visible-lg{display:table-cell!important}}.visible-sm{display:none!important}tr.visible-sm{display:none!important}th.visible-sm,td.visible-sm{display:none!important}@media(max-width:767px){.visible-sm.visible-xs{display:block!important}tr.visible-sm.visible-xs{display:table-row!important}th.visible-sm.visible-xs,td.visible-sm.visible-xs{display:table-cell!important}}@media(min-width:768px) and (max-width:991px){.visible-sm{display:block!important}tr.visible-sm{display:table-row!important}th.visible-sm,td.visible-sm{display:table-cell!important}}@media(min-width:992px) and (max-width:1199px){.visible-sm.visible-md{display:block!important}tr.visible-sm.visible-md{display:table-row!important}th.visible-sm.visible-md,td.visible-sm.visible-md{display:table-cell!important}}@media(min-width:1200px){.visible-sm.visible-lg{display:block!important}tr.visible-sm.visible-lg{display:table-row!important}th.visible-sm.visible-lg,td.visible-sm.visible-lg{display:table-cell!important}}.visible-md{display:none!important}tr.visible-md{display:none!important}th.visible-md,td.visible-md{display:none!important}@media(max-width:767px){.visible-md.visible-xs{display:block!important}tr.visible-md.visible-xs{display:table-row!important}th.visible-md.visible-xs,td.visible-md.visible-xs{display:table-cell!important}}@media(min-width:768px) and (max-width:991px){.visible-md.visible-sm{display:block!important}tr.visible-md.visible-sm{display:table-row!important}th.visible-md.visible-sm,td.visible-md.visible-sm{display:table-cell!important}}@media(min-width:992px) and (max-width:1199px){.visible-md{display:block!important}tr.visible-md{display:table-row!important}th.visible-md,td.visible-md{display:table-cell!important}}@media(min-width:1200px){.visible-md.visible-lg{display:block!important}tr.visible-md.visible-lg{display:table-row!important}th.visible-md.visible-lg,td.visible-md.visible-lg{display:table-cell!important}}.visible-lg{display:none!important}tr.visible-lg{display:none!important}th.visible-lg,td.visible-lg{display:none!important}@media(max-width:767px){.visible-lg.visible-xs{display:block!important}tr.visible-lg.visible-xs{display:table-row!important}th.visible-lg.visible-xs,td.visible-lg.visible-xs{display:table-cell!important}}@media(min-width:768px) and (max-width:991px){.visible-lg.visible-sm{display:block!important}tr.visible-lg.visible-sm{display:table-row!important}th.visible-lg.visible-sm,td.visible-lg.visible-sm{display:table-cell!important}}@media(min-width:992px) and (max-width:1199px){.visible-lg.visible-md{display:block!important}tr.visible-lg.visible-md{display:table-row!important}th.visible-lg.visible-md,td.visible-lg.visible-md{display:table-cell!important}}@media(min-width:1200px){.visible-lg{display:block!important}tr.visible-lg{display:table-row!important}th.visible-lg,td.visible-lg{display:table-cell!important}}.hidden-xs{display:block!important}tr.hidden-xs{display:table-row!important}th.hidden-xs,td.hidden-xs{display:table-cell!important}@media(max-width:767px){.hidden-xs{display:none!important}tr.hidden-xs{display:none!important}th.hidden-xs,td.hidden-xs{display:none!important}}@media(min-width:768px) and (max-width:991px){.hidden-xs.hidden-sm{display:none!important}tr.hidden-xs.hidden-sm{display:none!important}th.hidden-xs.hidden-sm,td.hidden-xs.hidden-sm{display:none!important}}@media(min-width:992px) and (max-width:1199px){.hidden-xs.hidden-md{display:none!important}tr.hidden-xs.hidden-md{display:none!important}th.hidden-xs.hidden-md,td.hidden-xs.hidden-md{display:none!important}}@media(min-width:1200px){.hidden-xs.hidden-lg{display:none!important}tr.hidden-xs.hidden-lg{display:none!important}th.hidden-xs.hidden-lg,td.hidden-xs.hidden-lg{display:none!important}}.hidden-sm{display:block!important}tr.hidden-sm{display:table-row!important}th.hidden-sm,td.hidden-sm{display:table-cell!important}@media(max-width:767px){.hidden-sm.hidden-xs{display:none!important}tr.hidden-sm.hidden-xs{display:none!important}th.hidden-sm.hidden-xs,td.hidden-sm.hidden-xs{display:none!important}}@media(min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}tr.hidden-sm{display:none!important}th.hidden-sm,td.hidden-sm{display:none!important}}@media(min-width:992px) and (max-width:1199px){.hidden-sm.hidden-md{display:none!important}tr.hidden-sm.hidden-md{display:none!important}th.hidden-sm.hidden-md,td.hidden-sm.hidden-md{display:none!important}}@media(min-width:1200px){.hidden-sm.hidden-lg{display:none!important}tr.hidden-sm.hidden-lg{display:none!important}th.hidden-sm.hidden-lg,td.hidden-sm.hidden-lg{display:none!important}}.hidden-md{display:block!important}tr.hidden-md{display:table-row!important}th.hidden-md,td.hidden-md{display:table-cell!important}@media(max-width:767px){.hidden-md.hidden-xs{display:none!important}tr.hidden-md.hidden-xs{display:none!important}th.hidden-md.hidden-xs,td.hidden-md.hidden-xs{display:none!important}}@media(min-width:768px) and (max-width:991px){.hidden-md.hidden-sm{display:none!important}tr.hidden-md.hidden-sm{display:none!important}th.hidden-md.hidden-sm,td.hidden-md.hidden-sm{display:none!important}}@media(min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}tr.hidden-md{display:none!important}th.hidden-md,td.hidden-md{display:none!important}}@media(min-width:1200px){.hidden-md.hidden-lg{display:none!important}tr.hidden-md.hidden-lg{display:none!important}th.hidden-md.hidden-lg,td.hidden-md.hidden-lg{display:none!important}}.hidden-lg{display:block!important}tr.hidden-lg{display:table-row!important}th.hidden-lg,td.hidden-lg{display:table-cell!important}@media(max-width:767px){.hidden-lg.hidden-xs{display:none!important}tr.hidden-lg.hidden-xs{display:none!important}th.hidden-lg.hidden-xs,td.hidden-lg.hidden-xs{display:none!important}}@media(min-width:768px) and (max-width:991px){.hidden-lg.hidden-sm{display:none!important}tr.hidden-lg.hidden-sm{display:none!important}th.hidden-lg.hidden-sm,td.hidden-lg.hidden-sm{display:none!important}}@media(min-width:992px) and (max-width:1199px){.hidden-lg.hidden-md{display:none!important}tr.hidden-lg.hidden-md{display:none!important}th.hidden-lg.hidden-md,td.hidden-lg.hidden-md{display:none!important}}@media(min-width:1200px){.hidden-lg{display:none!important}tr.hidden-lg{display:none!important}th.hidden-lg,td.hidden-lg{display:none!important}}.visible-print{display:none!important}tr.visible-print{display:none!important}th.visible-print,td.visible-print{display:none!important}@media print{.visible-print{display:block!important}tr.visible-print{display:table-row!important}th.visible-print,td.visible-print{display:table-cell!important}.hidden-print{display:none!important}tr.hidden-print{display:none!important}th.hidden-print,td.hidden-print{display:none!important}} \ No newline at end of file diff --git a/samples/MvcSample.Web/wwwroot/Scripts/Mvc.js b/samples/MvcSample.Web/wwwroot/Scripts/Mvc.js deleted file mode 100644 index ed532b881b..0000000000 --- a/samples/MvcSample.Web/wwwroot/Scripts/Mvc.js +++ /dev/null @@ -1,65 +0,0 @@ -// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -var MVC = (function () { - "use strict"; - - // Takes the data which needs to be converted to form-url encoded format understadable by MVC. - // This does not depend on jQuery. Can be used independently. - var _stringify = function (data) { - // This holds the stringified result. - var result = ""; - - if (typeof data !== "object") - { - return result; - } - - for (var element in data) { - if (data.hasOwnProperty(element)) { - result += process(element, data[element]); - } - } - - // An '&' is appended at the end. Removing it. - return result.substring(0, result.length - 1); - }; - - function process(key, value, prefix) { - // Ignore functions. - if (typeof value === "function") { - return; - } - - if (Object.prototype.toString.call(value) === "[object Array]") { - var result = ""; - for (var i = 0; i < value.length; i++) { - var tempPrefix = (prefix || key) + "[" + i + "]"; - result += process(key, value[i], tempPrefix); - } - - return result; - } - else if (typeof value === "object") { - var result = ""; - for (var prop in value) { - // This is to prevent looping through inherited proeprties. - if (value.hasOwnProperty(prop)) { - var tempPrefix = (prefix || key) + "." + prop; - result += process(prop, value[prop], tempPrefix); - } - } - - return result; - } - else { - return encodeURIComponent(prefix || key) + "=" + encodeURIComponent(value) + "&"; - } - } - - return { - // Converts a Json object into MVC understandable format - // when submitted as form-url-encoded data. - stringify: _stringify - }; -})() \ No newline at end of file diff --git a/samples/MvcSample.Web/wwwroot/sample.txt b/samples/MvcSample.Web/wwwroot/sample.txt deleted file mode 100644 index 6abaf945fa..0000000000 --- a/samples/MvcSample.Web/wwwroot/sample.txt +++ /dev/null @@ -1 +0,0 @@ -This is a sample file returned from a controller \ No newline at end of file diff --git a/samples/MvcSandbox/.bowerrc b/samples/MvcSandbox/.bowerrc new file mode 100644 index 0000000000..6406626abf --- /dev/null +++ b/samples/MvcSandbox/.bowerrc @@ -0,0 +1,3 @@ +{ + "directory": "wwwroot/lib" +} diff --git a/samples/MvcSandbox/.gitignore b/samples/MvcSandbox/.gitignore new file mode 100644 index 0000000000..ea32980d43 --- /dev/null +++ b/samples/MvcSandbox/.gitignore @@ -0,0 +1,2 @@ +# Ignore everything +* diff --git a/samples/MvcSample.Web/Areas/Travel/Controllers/HomeController.cs b/samples/MvcSandbox/Controllers/HomeController.cs similarity index 56% rename from samples/MvcSample.Web/Areas/Travel/Controllers/HomeController.cs rename to samples/MvcSandbox/Controllers/HomeController.cs index 889dd155bb..77f79ca49e 100644 --- a/samples/MvcSample.Web/Areas/Travel/Controllers/HomeController.cs +++ b/samples/MvcSandbox/Controllers/HomeController.cs @@ -1,16 +1,15 @@ -// Copyright (c) .NET Foundation. All rights reserved. +// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using Microsoft.AspNet.Mvc; -namespace MvcSample.Web.Areas.Travel.Controllers +namespace MvcSandbox.Controllers { - [Area("Travel")] public class HomeController : Controller { public IActionResult Index() { - return Content("This is the Travel/Home/Index action."); + return View(); } } -} \ No newline at end of file +} diff --git a/samples/MvcSample.Web/MvcSample.Web.xproj b/samples/MvcSandbox/MvcSandbox.xproj similarity index 77% rename from samples/MvcSample.Web/MvcSample.Web.xproj rename to samples/MvcSandbox/MvcSandbox.xproj index 5662cd3d9f..f8ebc21b1e 100644 --- a/samples/MvcSample.Web/MvcSample.Web.xproj +++ b/samples/MvcSandbox/MvcSandbox.xproj @@ -6,13 +6,18 @@ - fbb2b86e-972b-4185-9ff2-62cab5f8388f + 14ed4476-9f24-4776-8417-ea6927f6c9c9 + MvcSandbox ..\..\artifacts\obj\$(MSBuildProjectName) ..\..\artifacts\bin\$(MSBuildProjectName)\ 2.0 - 40954 + + + + + - \ No newline at end of file + diff --git a/samples/MvcSandbox/Startup.cs b/samples/MvcSandbox/Startup.cs new file mode 100644 index 0000000000..0e10082e22 --- /dev/null +++ b/samples/MvcSandbox/Startup.cs @@ -0,0 +1,36 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +using System; +using Microsoft.AspNet.Builder; +using Microsoft.AspNet.Hosting; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Logging; + +namespace MvcSandbox +{ + public class Startup + { + // This method gets called by the runtime. Use this method to add services to the container. + public IServiceProvider ConfigureServices(IServiceCollection services) + { + services.AddMvc(); + + return services.BuildServiceProvider(); + } + + // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. + public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory) + { + + app.UseStaticFiles(); + loggerFactory.AddConsole(); + app.UseMvc(routes => + { + routes.MapRoute( + name: "default", + template: "{controller=Home}/{action=Index}/{id?}"); + }); + } + } +} diff --git a/samples/MvcSandbox/Views/Home/Index.cshtml b/samples/MvcSandbox/Views/Home/Index.cshtml new file mode 100644 index 0000000000..93a5e737b0 --- /dev/null +++ b/samples/MvcSandbox/Views/Home/Index.cshtml @@ -0,0 +1,12 @@ +@{ + ViewData["Title"] = "Home Page"; +} + +
+
+

Sandbox

+
    +
  • This sandbox should give you a quick view of a basic MVC application.
  • +
+
+
diff --git a/samples/MvcSandbox/Views/Shared/_Layout.cshtml b/samples/MvcSandbox/Views/Shared/_Layout.cshtml new file mode 100644 index 0000000000..d74abe0fce --- /dev/null +++ b/samples/MvcSandbox/Views/Shared/_Layout.cshtml @@ -0,0 +1,65 @@ + + + + + + @ViewData["Title"] - MvcSandbox + + + + + + + + + + + + +
+ @RenderBody() +
+
+

© 2015 - MvcSandbox

+
+
+ + + + + + + + + + + + + @RenderSection("scripts", required: false) + + diff --git a/samples/MvcSandbox/Views/_ViewImports.cshtml b/samples/MvcSandbox/Views/_ViewImports.cshtml new file mode 100644 index 0000000000..f7e6e26c2a --- /dev/null +++ b/samples/MvcSandbox/Views/_ViewImports.cshtml @@ -0,0 +1,2 @@ +@using MvcSandbox +@addTagHelper *, Microsoft.AspNet.Mvc.TagHelpers diff --git a/samples/MvcSample.Web/Views/_ViewStart.cshtml b/samples/MvcSandbox/Views/_ViewStart.cshtml similarity index 93% rename from samples/MvcSample.Web/Views/_ViewStart.cshtml rename to samples/MvcSandbox/Views/_ViewStart.cshtml index 1af6e49466..a5f10045db 100644 --- a/samples/MvcSample.Web/Views/_ViewStart.cshtml +++ b/samples/MvcSandbox/Views/_ViewStart.cshtml @@ -1,3 +1,3 @@ @{ Layout = "_Layout"; -} \ No newline at end of file +} diff --git a/samples/MvcSandbox/bower.json b/samples/MvcSandbox/bower.json new file mode 100644 index 0000000000..ac5514caec --- /dev/null +++ b/samples/MvcSandbox/bower.json @@ -0,0 +1,10 @@ +{ + "name": "ASP.NET", + "private": true, + "dependencies": { + "bootstrap": "3.3.5", + "jquery": "2.1.4", + "jquery-validation": "1.14.0", + "jquery-validation-unobtrusive": "3.2.4" + } +} diff --git a/samples/MvcSandbox/gulpfile.js b/samples/MvcSandbox/gulpfile.js new file mode 100644 index 0000000000..f79a1eb4f1 --- /dev/null +++ b/samples/MvcSandbox/gulpfile.js @@ -0,0 +1,45 @@ +/// +"use strict"; + +var gulp = require("gulp"), + rimraf = require("rimraf"), + concat = require("gulp-concat"), + cssmin = require("gulp-cssmin"), + uglify = require("gulp-uglify"); + +var paths = { + webroot: "./wwwroot/" +}; + +paths.js = paths.webroot + "js/**/*.js"; +paths.minJs = paths.webroot + "js/**/*.min.js"; +paths.css = paths.webroot + "css/**/*.css"; +paths.minCss = paths.webroot + "css/**/*.min.css"; +paths.concatJsDest = paths.webroot + "js/site.min.js"; +paths.concatCssDest = paths.webroot + "css/site.min.css"; + +gulp.task("clean:js", function (cb) { + rimraf(paths.concatJsDest, cb); +}); + +gulp.task("clean:css", function (cb) { + rimraf(paths.concatCssDest, cb); +}); + +gulp.task("clean", ["clean:js", "clean:css"]); + +gulp.task("min:js", function () { + return gulp.src([paths.js, "!" + paths.minJs], { base: "." }) + .pipe(concat(paths.concatJsDest)) + .pipe(uglify()) + .pipe(gulp.dest(".")); +}); + +gulp.task("min:css", function () { + return gulp.src([paths.css, "!" + paths.minCss]) + .pipe(concat(paths.concatCssDest)) + .pipe(cssmin()) + .pipe(gulp.dest(".")); +}); + +gulp.task("min", ["min:js", "min:css"]); diff --git a/samples/MvcSandbox/package.json b/samples/MvcSandbox/package.json new file mode 100644 index 0000000000..fdf308341a --- /dev/null +++ b/samples/MvcSandbox/package.json @@ -0,0 +1,4 @@ +{ + "name": "ASP.NET", + "version": "0.0.0" +} diff --git a/samples/MvcSample.Web/project.json b/samples/MvcSandbox/project.json similarity index 80% rename from samples/MvcSample.Web/project.json rename to samples/MvcSandbox/project.json index 4b6dd6693a..0f92301967 100644 --- a/samples/MvcSample.Web/project.json +++ b/samples/MvcSandbox/project.json @@ -1,4 +1,4 @@ -{ +{ "commands": { "web": "Microsoft.AspNet.Hosting server=Microsoft.AspNet.Server.WebListener server.urls=http://localhost:5001", "kestrel": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.Kestrel --server.urls http://localhost:5000" @@ -7,15 +7,15 @@ "warningsAsErrors": true }, "dependencies": { - "Microsoft.AspNet.Server.Kestrel": "1.0.0-*", "Microsoft.AspNet.Diagnostics": "1.0.0-*", - "Microsoft.AspNet.Localization": "1.0.0-*", + "Microsoft.AspNet.IISPlatformHandler": "1.0.0-*", "Microsoft.AspNet.Mvc": "6.0.0-*", - "Microsoft.AspNet.Mvc.Formatters.Xml": "6.0.0-*", - "Microsoft.AspNet.Mvc.WebApiCompatShim": "6.0.0-*", + "Microsoft.AspNet.Mvc.TagHelpers": "6.0.0-*", + "Microsoft.AspNet.Server.Kestrel": "1.0.0-*", "Microsoft.AspNet.Server.WebListener": "1.0.0-*", - "Microsoft.AspNet.Session": "1.0.0-*", "Microsoft.AspNet.StaticFiles": "1.0.0-*", + "Microsoft.AspNet.Tooling.Razor": "1.0.0-*", + "Microsoft.Extensions.CodeGenerators.Mvc": "1.0.0-*", "Microsoft.Extensions.Configuration.Json": "1.0.0-*", "Microsoft.Extensions.Logging.Console": "1.0.0-*" }, @@ -23,6 +23,7 @@ "dnx451": { }, "dnxcore50": { } }, + "exclude": [ "wwwroot", "node_modules", diff --git a/samples/MvcSandbox/wwwroot/_references.js b/samples/MvcSandbox/wwwroot/_references.js new file mode 100644 index 0000000000..ad7d373bb5 --- /dev/null +++ b/samples/MvcSandbox/wwwroot/_references.js @@ -0,0 +1,3 @@ +/// +/// +/// diff --git a/samples/MvcSandbox/wwwroot/css/site.css b/samples/MvcSandbox/wwwroot/css/site.css new file mode 100644 index 0000000000..1eaae3d043 --- /dev/null +++ b/samples/MvcSandbox/wwwroot/css/site.css @@ -0,0 +1,34 @@ +body { + padding-top: 50px; + padding-bottom: 20px; +} + +/* Wrapping element */ +/* Set some basic padding to keep content from hitting the edges */ +.body-content { + padding-left: 15px; + padding-right: 15px; +} + +/* Set widths on the form inputs since otherwise they're 100% wide */ +input, +select, +textarea { + max-width: 280px; +} + +/* Carousel */ +.carousel-caption { + z-index: 10 !important; +} + + .carousel-caption p { + font-size: 20px; + line-height: 1.4; + } + +@media (min-width: 768px) { + .carousel-caption { + z-index: 10 !important; + } +} diff --git a/samples/MvcSandbox/wwwroot/favicon.ico b/samples/MvcSandbox/wwwroot/favicon.ico new file mode 100644 index 0000000000..a3a799985c Binary files /dev/null and b/samples/MvcSandbox/wwwroot/favicon.ico differ diff --git a/samples/MvcSandbox/wwwroot/js/site.js b/samples/MvcSandbox/wwwroot/js/site.js new file mode 100644 index 0000000000..82ecce7b4a --- /dev/null +++ b/samples/MvcSandbox/wwwroot/js/site.js @@ -0,0 +1 @@ +// Write your Javascript code. diff --git a/samples/MvcSandbox/wwwroot/web.config b/samples/MvcSandbox/wwwroot/web.config new file mode 100644 index 0000000000..8485f6719f --- /dev/null +++ b/samples/MvcSandbox/wwwroot/web.config @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/test/Microsoft.AspNet.Mvc.FunctionalTests/MvcSampleTests.cs b/test/Microsoft.AspNet.Mvc.FunctionalTests/MvcSampleTests.cs deleted file mode 100644 index d2a4a893b4..0000000000 --- a/test/Microsoft.AspNet.Mvc.FunctionalTests/MvcSampleTests.cs +++ /dev/null @@ -1,147 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System.Net; -using System.Net.Http; -using System.Net.Http.Headers; -using System.Text; -using System.Threading.Tasks; -using Microsoft.AspNet.Mvc.Formatters.Xml; -using Microsoft.AspNet.Testing.xunit; -using Xunit; - -namespace Microsoft.AspNet.Mvc.FunctionalTests -{ - public class MvcSampleTests : IClassFixture> - { - public MvcSampleTests(MvcTestFixture fixture) - { - Client = fixture.Client; - } - - public HttpClient Client { get; } - - [Theory] - [InlineData("")] // Shared/MyView.cshtml - [InlineData("/")] // Shared/MyView.cshtml - [InlineData("/Home/Index")] // Shared/MyView.cshtml - [InlineData("/Home/Create")] // Home/Create.cshtml - [InlineData("/Home/FlushPoint")] // Home/FlushPoint.cshtml - [InlineData("/Home/InjectSample")] // Home/InjectSample.cshtml - [InlineData("/Home/Language")] // Home/Language.cshtml - [InlineData("/Home/MyView")] // Shared/MyView.cshtml - [InlineData("/Home/NullUser")] // Home/NullUser.cshtml - [InlineData("/Home/Post")] // Shared/MyView.cshtml with null User - [InlineData("/Home/SaveUser")] // Shared/MyView.cshtml with uninitialized User instance - [InlineData("/Home/ValidationSummary")] // Home/ValidationSummary.cshtml - public async Task Home_Pages_ReturnSuccess(string path) - { - // Arrange & Act - var response = await Client.GetAsync("http://localhost" + path); - - // Assert - Assert.NotNull(response); - Assert.Equal(HttpStatusCode.OK, response.StatusCode); - } - - [Theory] - [InlineData("Name=SamplePerson&Address.Street=SampleStreet&Address.City=SampleCity&" + - "Address.State=SampleState&Address.ZipCode=11&PastJobs[0].JobTitle=SampleJob1&" + - "PastJobs[0].EmployerName=Employer1&PastJobs[0].Years=2&PastJobs[1].JobTitle=SampleJob2&" + - "PastJobs[1].EmployerName=Employer2&PastJobs[1].Years=4&PastJobs[2].JobTitle=SampleJob3&" + - "PastJobs[2].EmployerName=Employer3&PastJobs[2].Years=1", "true")] - // Input with some special characters - [InlineData("Name=SamplePerson&Address.Street=SampleStre'et&Address.City=S\ampleCity&" + - "Address.State=SampleState&Address.ZipCode=11&PastJobs[0].JobTitle=S~ampleJob1&" + - "PastJobs[0].EmployerName=Employer1&PastJobs[0].Years=2&PastJobs[1].JobTitle=SampleJob2&" + - "PastJobs[1].EmployerName=Employer2&PastJobs[1].Years=4&PastJobs[2].JobTitle=SampleJob3&" + - "PastJobs[2].EmployerName=Employer3&PastJobs[2].Years=1", "true")] - [InlineData("Name=SamplePerson", "false")] - public async Task FormUrlEncoded_ReturnsAppropriateResults(string input, string expectedOutput) - { - // Arrange - var request = new HttpRequestMessage(HttpMethod.Post, "http://localhost/FormUrlEncoded/IsValidPerson"); - request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); - request.Content = new StringContent(input, Encoding.UTF8, "application/x-www-form-urlencoded"); - - // Act - var response = await Client.SendAsync(request); - - // Assert - Assert.Equal(expectedOutput, await response.Content.ReadAsStringAsync()); - } - - [Fact] - public async Task FormUrlEncoded_Index_ReturnSuccess() - { - // Arrange & Act - var response = await Client.GetAsync("http://localhost/FormUrlEncoded"); - - // Assert - Assert.NotNull(response); - Assert.Equal(HttpStatusCode.OK, response.StatusCode); - } - - [Fact] - public async Task Home_NotFoundAction_Returns404() - { - // Arrange & Act - var response = await Client.GetAsync("http://localhost/Home/NotFound"); - - // Assert - Assert.NotNull(response); - Assert.Equal(HttpStatusCode.NotFound, response.StatusCode); - } - - [ConditionalFact] - // Mono.Xml2.XmlTextReader.ReadText is unable to read the XML. This is fixed in mono 4.3.0. - [FrameworkSkipCondition(RuntimeFrameworks.Mono)] - public async Task Home_CreateUser_ReturnsXmlBasedOnAcceptHeader() - { - // Arrange - var request = new HttpRequestMessage(HttpMethod.Get, "http://localhost/Home/ReturnUser"); - request.Headers.Accept.Add(MediaTypeWithQualityHeaderValue.Parse("application/xml")); - - // Act - var response = await Client.SendAsync(request); - - // Assert - Assert.NotNull(response); - Assert.Equal(HttpStatusCode.OK, response.StatusCode); - XmlAssert.Equal("I like playing Football" + - "
My address
13true" + - "
Dependents address
0false" + - "Zero0Dependents name" + - "Zero13.37" + - "My nameSoftware Engineer
", - await response.Content.ReadAsStringAsync()); - } - - [Theory] - [InlineData("http://localhost/Filters/ChallengeUser", HttpStatusCode.Unauthorized)] - [InlineData("http://localhost/Filters/AllGranted", HttpStatusCode.Unauthorized)] - [InlineData("http://localhost/Filters/NotGrantedClaim", HttpStatusCode.Unauthorized)] - public async Task FiltersController_Tests(string url, HttpStatusCode statusCode) - { - // Arrange & Act - var response = await Client.GetAsync(url); - - // Assert - Assert.NotNull(response); - Assert.Equal(statusCode, response.StatusCode); - } - - [Fact] - public async Task FiltersController_Crash_ThrowsException() - { - // Arrange & Act - var response = await Client.GetAsync("http://localhost/Filters/Crash?message=HelloWorld"); - - // Assert - Assert.NotNull(response); - Assert.Equal(HttpStatusCode.OK, response.StatusCode); - Assert.Equal("Boom HelloWorld", await response.Content.ReadAsStringAsync()); - } - } -} \ No newline at end of file diff --git a/test/Microsoft.AspNet.Mvc.FunctionalTests/MvcSandboxTest.cs b/test/Microsoft.AspNet.Mvc.FunctionalTests/MvcSandboxTest.cs new file mode 100644 index 0000000000..abe3e32471 --- /dev/null +++ b/test/Microsoft.AspNet.Mvc.FunctionalTests/MvcSandboxTest.cs @@ -0,0 +1,45 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +using System.Net; +using System.Net.Http; +using System.Threading.Tasks; +using Xunit; + +namespace Microsoft.AspNet.Mvc.FunctionalTests +{ + public class MvcSandboxTest : IClassFixture> + { + public MvcSandboxTest(MvcTestFixture fixture) + { + Client = fixture.Client; + } + + public HttpClient Client { get; } + + [Theory] + [InlineData("")] // Shared/MyView.cshtml + [InlineData("/")] // Shared/MyView.cshtml + [InlineData("/Home/Index")] // Shared/MyView.cshtml + public async Task Home_Pages_ReturnSuccess(string path) + { + // Arrange & Act + var response = await Client.GetAsync("http://localhost" + path); + + // Assert + Assert.NotNull(response); + Assert.Equal(HttpStatusCode.OK, response.StatusCode); + } + + [Fact] + public async Task Home_NotFoundAction_Returns404() + { + // Arrange & Act + var response = await Client.GetAsync("http://localhost/Home/NotFound"); + + // Assert + Assert.NotNull(response); + Assert.Equal(HttpStatusCode.NotFound, response.StatusCode); + } + } +} \ No newline at end of file diff --git a/test/Microsoft.AspNet.Mvc.FunctionalTests/project.json b/test/Microsoft.AspNet.Mvc.FunctionalTests/project.json index 9e05bcbc0a..db61c58fc3 100644 --- a/test/Microsoft.AspNet.Mvc.FunctionalTests/project.json +++ b/test/Microsoft.AspNet.Mvc.FunctionalTests/project.json @@ -45,7 +45,7 @@ "Microsoft.Extensions.Configuration.Json": "1.0.0-*", "Microsoft.Extensions.Logging.Testing": "1.0.0-*", "ModelBindingWebSite": "1.0.0", - "MvcSample.Web": "1.0.0", + "MvcSandbox": "1.0.0", "PrecompilationWebSite": "1.0.0", "RazorEmbeddedViewsWebSite": "1.0.0", "RazorPageExecutionInstrumentationWebSite": "1.0.0",