diff --git a/Clean.cmd b/Clean.cmd new file mode 100644 index 0000000000..9cd29c4b19 --- /dev/null +++ b/Clean.cmd @@ -0,0 +1,15 @@ +REM Set your app's folder path appropriately here +SET APP_PATH=src\MusicStore\ + +REM cleaning all the generated files and installed nuget packages +rmdir /S /Q .nuget +rmdir /S /Q artifacts +rmdir /S /Q packages +rmdir /S /Q %APP_PATH%\bin +rmdir /S /Q %APP_PATH%\obj +rmdir /S /Q %APP_PATH%\Properties +del %APP_PATH%\*.csproj +del %APP_PATH%\*.v12.suo +del %APP_PATH%\*.csproj.user +del src\PlaceHolder\*.csproj +rmdir /S /Q src\PlaceHolder\bin \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000000..7365c59d04 --- /dev/null +++ b/README.md @@ -0,0 +1,23 @@ +## Music store application + +### Run the application: +1. Run build.cmd to restore all the necessary packages and generate project files +2. Open a command prompt and cd \src\MusicStore\ +3. Execute CopyAspNetLoader.cmd to copy the AspNet.Loader.dll to the bin directory +4. Execute Run.cmd to launch the app on IISExpress. + +### Adding a new package: +1. Edit the project.json to include the package you want to install +2. Do a build.cmd - This will restore the package and regenerate your csproj files to get intellisense for the installed packages. + +### Work against the latest build: +1. Run Clean.cmd - This will clear all the packages and any temporary files generated +2. Continue the topic "Steps to run the application" + +### Work against LKG Build: +1. Everytime you do a build.cmd you will get the latest packages of all the included packages. If you would like to go back to an LKG build checkout the LKG.json file in the MusicStore folder. +2. This is a captured snapshot of build numbers which worked for this application. This LKG will be captured once in a while. + +### Note: +1. By default this script starts the application at http://localhost:5001/. Modify Run.cmd if you would like to change the url +2. Use Visual studio only for editing & intellisense. Don't try to build or run the app from Visual studio. \ No newline at end of file diff --git a/src/MusicStore/Content/Site.css b/src/MusicStore/Content/Site.css new file mode 100644 index 0000000000..23c0d16c53 --- /dev/null +++ b/src/MusicStore/Content/Site.css @@ -0,0 +1,70 @@ +body { + padding-top: 50px; + padding-bottom: 20px; +} + +/* Set padding to keep content from hitting the edges */ +.body-content { + padding-left: 15px; + padding-right: 15px; +} + +/* Set width on the form input elements since they're 100% wide by default */ +input, +select, +textarea { + max-width: 280px; +} + +/* styles for validation helpers */ +.field-validation-error { + color: #b94a48; +} + +.field-validation-valid { + display: none; +} + +input.input-validation-error { + border: 1px solid #b94a48; +} + +input[type="checkbox"].input-validation-error { + border: 0 none; +} + +.validation-summary-errors { + color: #b94a48; +} + +.validation-summary-valid { + display: none; +} + + +/* Music Store additions */ + +ul#album-list li { + height: 160px; +} + +ul#album-list li img:hover { + box-shadow: 1px 1px 7px #777; +} + +ul#album-list li img { + box-shadow: 1px 1px 5px #999; + border: none; + padding: 0; +} + +ul#album-list li a, ul#album-details li a { + text-decoration:none; +} + +ul#album-list li a:hover { + background: none; + -webkit-text-shadow: 1px 1px 2px #bbb; + text-shadow: 1px 1px 2px #bbb; + color: #363430; +} \ No newline at end of file diff --git a/src/MusicStore/Content/bootstrap.css b/src/MusicStore/Content/bootstrap.css new file mode 100644 index 0000000000..6d6e68281d --- /dev/null +++ b/src/MusicStore/Content/bootstrap.css @@ -0,0 +1,6816 @@ +/* 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: 0.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: 0.35em 0.625em 0.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: #333333; + background-color: #ffffff; +} + +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: #ffffff; + border: 1px solid #dddddd; + border-radius: 4px; + -webkit-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; +} + +.img-circle { + border-radius: 50%; +} + +hr { + margin-top: 20px; + margin-bottom: 20px; + border: 0; + border-top: 1px solid #eeeeee; +} + +.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: #999999; +} + +.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: #999999; +} + +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 #eeeeee; +} + +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 #999999; +} + +abbr.initialism { + font-size: 90%; + text-transform: uppercase; +} + +blockquote { + padding: 10px 20px; + margin: 0 0 20px; + border-left: 5px solid #eeeeee; +} + +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: #999999; +} + +blockquote small:before { + content: '\2014 \00A0'; +} + +blockquote.pull-right { + padding-right: 15px; + padding-left: 0; + border-right: 5px solid #eeeeee; + 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: #333333; + word-break: break-all; + word-wrap: break-word; + background-color: #f5f5f5; + border: 1px solid #cccccc; + 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 #dddddd; +} + +.table thead > tr > th { + vertical-align: bottom; + border-bottom: 2px solid #dddddd; +} + +.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 #dddddd; +} + +.table .table { + background-color: #ffffff; +} + +.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 #dddddd; +} + +.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 #dddddd; +} + +.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 #dddddd; + } + .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: #333333; + 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; + /* IE8-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: #999999; +} + +.form-control::-moz-placeholder { + color: #999999; +} + +.form-control:-ms-input-placeholder { + color: #999999; +} + +.form-control::-webkit-input-placeholder { + color: #999999; +} + +.form-control { + display: block; + width: 100%; + height: 34px; + padding: 6px 12px; + font-size: 14px; + line-height: 1.428571429; + color: #555555; + vertical-align: middle; + background-color: #ffffff; + border: 1px solid #cccccc; + 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 0.15s, box-shadow ease-in-out 0.15s; + transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.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: #eeeeee; +} + +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: #333333; + 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: 0.65; + filter: alpha(opacity=65); + -webkit-box-shadow: none; + box-shadow: none; +} + +.btn-default { + color: #333333; + background-color: #ffffff; + border-color: #cccccc; +} + +.btn-default:hover, +.btn-default:focus, +.btn-default:active, +.btn-default.active, +.open .dropdown-toggle.btn-default { + color: #333333; + 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: #ffffff; + border-color: #cccccc; +} + +.btn-primary { + color: #ffffff; + background-color: #428bca; + border-color: #357ebd; +} + +.btn-primary:hover, +.btn-primary:focus, +.btn-primary:active, +.btn-primary.active, +.open .dropdown-toggle.btn-primary { + color: #ffffff; + 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: #ffffff; + background-color: #f0ad4e; + border-color: #eea236; +} + +.btn-warning:hover, +.btn-warning:focus, +.btn-warning:active, +.btn-warning.active, +.open .dropdown-toggle.btn-warning { + color: #ffffff; + 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: #ffffff; + background-color: #d9534f; + border-color: #d43f3a; +} + +.btn-danger:hover, +.btn-danger:focus, +.btn-danger:active, +.btn-danger.active, +.open .dropdown-toggle.btn-danger { + color: #ffffff; + 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: #ffffff; + background-color: #5cb85c; + border-color: #4cae4c; +} + +.btn-success:hover, +.btn-success:focus, +.btn-success:active, +.btn-success.active, +.open .dropdown-toggle.btn-success { + color: #ffffff; + 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: #ffffff; + background-color: #5bc0de; + border-color: #46b8da; +} + +.btn-info:hover, +.btn-info:focus, +.btn-info:active, +.btn-info.active, +.open .dropdown-toggle.btn-info { + color: #ffffff; + 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: #999999; + 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 0.15s linear; + transition: opacity 0.15s linear; +} + +.fade.in { + opacity: 1; +} + +.collapse { + display: none; +} + +.collapse.in { + display: block; +} + +.collapsing { + position: relative; + height: 0; + overflow: hidden; + -webkit-transition: height 0.35s ease; + transition: height 0.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 #000000; + 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: #ffffff; + border: 1px solid #cccccc; + 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: #333333; + white-space: nowrap; +} + +.dropdown-menu > li > a:hover, +.dropdown-menu > li > a:focus { + color: #ffffff; + text-decoration: none; + background-color: #428bca; +} + +.dropdown-menu > .active > a, +.dropdown-menu > .active > a:hover, +.dropdown-menu > .active > a:focus { + color: #ffffff; + text-decoration: none; + background-color: #428bca; + outline: 0; +} + +.dropdown-menu > .disabled > a, +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + color: #999999; +} + +.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: #999999; +} + +.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 #000000; + 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: #333333; +} + +.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: #333333; +} + +.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: none; +} + +.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: #eeeeee; + border: 1px solid #cccccc; + 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: #eeeeee; +} + +.nav > li.disabled > a { + color: #999999; +} + +.nav > li.disabled > a:hover, +.nav > li.disabled > a:focus { + color: #999999; + text-decoration: none; + cursor: not-allowed; + background-color: transparent; +} + +.nav .open > a, +.nav .open > a:hover, +.nav .open > a:focus { + background-color: #eeeeee; + 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 #dddddd; +} + +.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: #eeeeee #eeeeee #dddddd; +} + +.nav-tabs > li.active > a, +.nav-tabs > li.active > a:hover, +.nav-tabs > li.active > a:focus { + color: #555555; + cursor: default; + background-color: #ffffff; + border: 1px solid #dddddd; + 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 #dddddd; +} + +.nav-tabs.nav-justified > .active > a { + border-bottom-color: #ffffff; +} + +.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: #ffffff; + 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 #dddddd; +} + +.nav-tabs-justified > .active > a { + border-bottom-color: #ffffff; +} + +.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: #777777; +} + +.navbar-default .navbar-brand:hover, +.navbar-default .navbar-brand:focus { + color: #5e5e5e; + background-color: transparent; +} + +.navbar-default .navbar-text { + color: #777777; +} + +.navbar-default .navbar-nav > li > a { + color: #777777; +} + +.navbar-default .navbar-nav > li > a:hover, +.navbar-default .navbar-nav > li > a:focus { + color: #333333; + background-color: transparent; +} + +.navbar-default .navbar-nav > .active > a, +.navbar-default .navbar-nav > .active > a:hover, +.navbar-default .navbar-nav > .active > a:focus { + color: #555555; + background-color: #e7e7e7; +} + +.navbar-default .navbar-nav > .disabled > a, +.navbar-default .navbar-nav > .disabled > a:hover, +.navbar-default .navbar-nav > .disabled > a:focus { + color: #cccccc; + background-color: transparent; +} + +.navbar-default .navbar-toggle { + border-color: #dddddd; +} + +.navbar-default .navbar-toggle:hover, +.navbar-default .navbar-toggle:focus { + background-color: #dddddd; +} + +.navbar-default .navbar-toggle .icon-bar { + background-color: #cccccc; +} + +.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: #333333; + border-bottom-color: #333333; +} + +.navbar-default .navbar-nav > .open > a, +.navbar-default .navbar-nav > .open > a:hover, +.navbar-default .navbar-nav > .open > a:focus { + color: #555555; + 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: #555555; + border-bottom-color: #555555; +} + +.navbar-default .navbar-nav > .dropdown > a .caret { + border-top-color: #777777; + border-bottom-color: #777777; +} + +@media (max-width: 767px) { + .navbar-default .navbar-nav .open .dropdown-menu > li > a { + color: #777777; + } + .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus { + color: #333333; + 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: #555555; + 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: #cccccc; + background-color: transparent; + } +} + +.navbar-default .navbar-link { + color: #777777; +} + +.navbar-default .navbar-link:hover { + color: #333333; +} + +.navbar-inverse { + background-color: #222222; + border-color: #080808; +} + +.navbar-inverse .navbar-brand { + color: #999999; +} + +.navbar-inverse .navbar-brand:hover, +.navbar-inverse .navbar-brand:focus { + color: #ffffff; + background-color: transparent; +} + +.navbar-inverse .navbar-text { + color: #999999; +} + +.navbar-inverse .navbar-nav > li > a { + color: #999999; +} + +.navbar-inverse .navbar-nav > li > a:hover, +.navbar-inverse .navbar-nav > li > a:focus { + color: #ffffff; + background-color: transparent; +} + +.navbar-inverse .navbar-nav > .active > a, +.navbar-inverse .navbar-nav > .active > a:hover, +.navbar-inverse .navbar-nav > .active > a:focus { + color: #ffffff; + background-color: #080808; +} + +.navbar-inverse .navbar-nav > .disabled > a, +.navbar-inverse .navbar-nav > .disabled > a:hover, +.navbar-inverse .navbar-nav > .disabled > a:focus { + color: #444444; + background-color: transparent; +} + +.navbar-inverse .navbar-toggle { + border-color: #333333; +} + +.navbar-inverse .navbar-toggle:hover, +.navbar-inverse .navbar-toggle:focus { + background-color: #333333; +} + +.navbar-inverse .navbar-toggle .icon-bar { + background-color: #ffffff; +} + +.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: #ffffff; + background-color: #080808; +} + +.navbar-inverse .navbar-nav > .dropdown > a:hover .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} + +.navbar-inverse .navbar-nav > .dropdown > a .caret { + border-top-color: #999999; + border-bottom-color: #999999; +} + +.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: #ffffff; + border-bottom-color: #ffffff; +} + +@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: #999999; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus { + color: #ffffff; + 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: #ffffff; + 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: #444444; + background-color: transparent; + } +} + +.navbar-inverse .navbar-link { + color: #999999; +} + +.navbar-inverse .navbar-link:hover { + color: #ffffff; +} + +.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: #cccccc; + content: "/\00a0"; +} + +.breadcrumb > .active { + color: #999999; +} + +.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: #ffffff; + border: 1px solid #dddddd; +} + +.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: #eeeeee; +} + +.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: #ffffff; + cursor: default; + background-color: #428bca; + border-color: #428bca; +} + +.pagination > .disabled > span, +.pagination > .disabled > a, +.pagination > .disabled > a:hover, +.pagination > .disabled > a:focus { + color: #999999; + cursor: not-allowed; + background-color: #ffffff; + border-color: #dddddd; +} + +.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: #ffffff; + border: 1px solid #dddddd; + border-radius: 15px; +} + +.pager li > a:hover, +.pager li > a:focus { + text-decoration: none; + background-color: #eeeeee; +} + +.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: #999999; + cursor: not-allowed; + background-color: #ffffff; +} + +.label { + display: inline; + padding: .2em .6em .3em; + font-size: 75%; + font-weight: bold; + line-height: 1; + color: #ffffff; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: .25em; +} + +.label[href]:hover, +.label[href]:focus { + color: #ffffff; + text-decoration: none; + cursor: pointer; +} + +.label:empty { + display: none; +} + +.label-default { + background-color: #999999; +} + +.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: #ffffff; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + background-color: #999999; + border-radius: 10px; +} + +.badge:empty { + display: none; +} + +a.badge:hover, +a.badge:focus { + color: #ffffff; + 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: #ffffff; +} + +.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: #eeeeee; +} + +.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: #ffffff; + border: 1px solid #dddddd; + border-radius: 4px; + -webkit-transition: all 0.2s ease-in-out; + transition: all 0.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: #333333; +} + +.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: #ffffff; + 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 0.6s ease; + transition: width 0.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: #ffffff; + border: 1px solid #dddddd; +} + +.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: #555555; +} + +a.list-group-item .list-group-item-heading { + color: #333333; +} + +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: #ffffff; + 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: #ffffff; + 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 #dddddd; +} + +.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 #dddddd; + 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 #dddddd; +} + +.panel-group .panel-footer { + border-top: 0; +} + +.panel-group .panel-footer + .panel-collapse .panel-body { + border-bottom: 1px solid #dddddd; +} + +.panel-default { + border-color: #dddddd; +} + +.panel-default > .panel-heading { + color: #333333; + background-color: #f5f5f5; + border-color: #dddddd; +} + +.panel-default > .panel-heading + .panel-collapse .panel-body { + border-top-color: #dddddd; +} + +.panel-default > .panel-footer + .panel-collapse .panel-body { + border-bottom-color: #dddddd; +} + +.panel-primary { + border-color: #428bca; +} + +.panel-primary > .panel-heading { + color: #ffffff; + 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: #000000; + text-shadow: 0 1px 0 #ffffff; + opacity: 0.2; + filter: alpha(opacity=20); +} + +.close:hover, +.close:focus { + color: #000000; + text-decoration: none; + cursor: pointer; + opacity: 0.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 0.3s ease-out; + -moz-transition: -moz-transform 0.3s ease-out; + -o-transition: -o-transform 0.3s ease-out; + transition: transform 0.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: #ffffff; + border: 1px solid #999999; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 6px; + outline: none; + -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: #000000; +} + +.modal-backdrop.fade { + opacity: 0; + filter: alpha(opacity=0); +} + +.modal-backdrop.in { + opacity: 0.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: 0.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: #ffffff; + text-align: center; + text-decoration: none; + background-color: #000000; + 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: #000000; + border-width: 5px 5px 0; +} + +.tooltip.top-left .tooltip-arrow { + bottom: 0; + left: 5px; + border-top-color: #000000; + border-width: 5px 5px 0; +} + +.tooltip.top-right .tooltip-arrow { + right: 5px; + bottom: 0; + border-top-color: #000000; + border-width: 5px 5px 0; +} + +.tooltip.right .tooltip-arrow { + top: 50%; + left: 0; + margin-top: -5px; + border-right-color: #000000; + border-width: 5px 5px 5px 0; +} + +.tooltip.left .tooltip-arrow { + top: 50%; + right: 0; + margin-top: -5px; + border-left-color: #000000; + border-width: 5px 0 5px 5px; +} + +.tooltip.bottom .tooltip-arrow { + top: 0; + left: 50%; + margin-left: -5px; + border-bottom-color: #000000; + border-width: 0 5px 5px; +} + +.tooltip.bottom-left .tooltip-arrow { + top: 0; + left: 5px; + border-bottom-color: #000000; + border-width: 0 5px 5px; +} + +.tooltip.bottom-right .tooltip-arrow { + top: 0; + right: 5px; + border-bottom-color: #000000; + 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: #ffffff; + border: 1px solid #cccccc; + 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: #999999; + 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: #ffffff; + border-bottom-width: 0; + content: " "; +} + +.popover.right .arrow { + top: 50%; + left: -11px; + margin-top: -11px; + border-right-color: #999999; + border-right-color: rgba(0, 0, 0, 0.25); + border-left-width: 0; +} + +.popover.right .arrow:after { + bottom: -10px; + left: 1px; + border-right-color: #ffffff; + border-left-width: 0; + content: " "; +} + +.popover.bottom .arrow { + top: -11px; + left: 50%; + margin-left: -11px; + border-bottom-color: #999999; + 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: #ffffff; + border-top-width: 0; + content: " "; +} + +.popover.left .arrow { + top: 50%; + right: -11px; + margin-top: -11px; + border-left-color: #999999; + border-left-color: rgba(0, 0, 0, 0.25); + border-right-width: 0; +} + +.popover.left .arrow:after { + right: 1px; + bottom: -10px; + border-left-color: #ffffff; + 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: 0.6s ease-in-out left; + transition: 0.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: #ffffff; + text-align: center; + text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); + opacity: 0.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: #ffffff; + text-decoration: none; + opacity: 0.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 #ffffff; + border-radius: 10px; +} + +.carousel-indicators .active { + width: 12px; + height: 12px; + margin: 0; + background-color: #ffffff; +} + +.carousel-caption { + position: absolute; + right: 15%; + bottom: 20px; + left: 15%; + z-index: 10; + padding-top: 20px; + padding-bottom: 20px; + color: #ffffff; + 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/src/MusicStore/Content/bootstrap.min.css b/src/MusicStore/Content/bootstrap.min.css new file mode 100644 index 0000000000..df89a5030f --- /dev/null +++ b/src/MusicStore/Content/bootstrap.min.css @@ -0,0 +1,20 @@ +/* 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/src/MusicStore/Controllers/AccountController.cs b/src/MusicStore/Controllers/AccountController.cs index b200bbb599..24131b31b2 100644 --- a/src/MusicStore/Controllers/AccountController.cs +++ b/src/MusicStore/Controllers/AccountController.cs @@ -1,419 +1,505 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Net; -using System.Security.Claims; -using System.Threading.Tasks; -using Microsoft.AspNet.Abstractions; -using Microsoft.AspNet.Identity; -using Microsoft.AspNet.Identity.InMemory; -using Microsoft.AspNet.Mvc; -//using Microsoft.Owin.Security; -using MvcMusicStore.Models; +// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information. -namespace MvcMusicStore.Controllers -{ - //[Authorize] - public class AccountController : Controller - { - public AccountController() - : this(new UserManager(new InMemoryUserStore())) - { - } +//using Microsoft.AspNet.Identity; +//using Microsoft.AspNet.Identity.InMemory; +//using Microsoft.AspNet.Mvc; +//using Microsoft.AspNet.Mvc.ModelBinding; +//using MusicStore.Models; +//using System; +//using System.Collections.Generic; +//using System.Linq; +//using System.Threading.Tasks; - public AccountController(UserManager userManager) - { - UserManager = userManager; - } +//namespace MusicStore.Controllers +//{ +// //[Authorize] +// public class AccountController : Controller +// { +// public AccountController() +// //Bug: No EF yet - using an in memory store +// //: this(new UserManager(new UserStore(new ApplicationDbContext()))) +// : this(new UserManager(new InMemoryUserStore())) +// { +// } - public UserManager UserManager { get; private set; } +// public AccountController(UserManager userManager) +// { +// UserManager = userManager; +// } - private void MigrateShoppingCart(string userName) - { - //var storeDb = new MusicStoreEntities(); +// public UserManager UserManager { get; private set; } - // Associate shopping cart items with logged-in user - //var cart = ShoppingCart.GetCart(storeDb, this.HttpContext); - //cart.MigrateCart(userName); - //storeDb.SaveChanges(); +// private void MigrateShoppingCart(string UserName) +// { +// //Bug: No EF +// //var storeDb = new MusicStoreEntities(); +// var storeDb = MusicStoreEntities.Instance; - //Session[ShoppingCart.CartSessionKey] = userName; - } +// // Associate shopping cart items with logged-in user +// var cart = ShoppingCart.GetCart(storeDb, this.Context); +// cart.MigrateCart(UserName); +// storeDb.SaveChanges(); - // - // GET: /Account/Login - //[AllowAnonymous] - public IActionResult Login(string returnUrl) - { - ViewBag.ReturnUrl = returnUrl; - return View(); - } +// //Bug: TODO +// //Session[ShoppingCart.CartSessionKey] = UserName; +// } - // - // POST: /Account/Login - //[HttpPost] - //[AllowAnonymous] - //[ValidateAntiForgeryToken] - public async Task Login(LoginViewModel model, string returnUrl) - { - //if (ModelState.IsValid) - //{ - var user = await UserManager.Find(model.UserName, model.Password); - if (user != null) - { - await SignIn(user, model.RememberMe); - return RedirectToLocal(returnUrl); - } - else - { - // ModelState.AddModelError("", "Invalid username or password."); - } - //} +// // +// // GET: /Account/Login +// [AllowAnonymous] +// public IActionResult Login(string returnUrl) +// { +// //ViewBag.ReturnUrl = returnUrl; +// return View(); +// } - // If we got this far, something failed, redisplay form - return View(model); - } +// // +// // POST: /Account/Login +// //Bug: HTTP verb attribs not available +// //[HttpPost] +// [AllowAnonymous] +// //[ValidateAntiForgeryToken] +// public async Task Login(LoginViewModel model, string returnUrl) +// { +// //Bug: How to validate the model state? +// //if (ModelState.IsValid) +// { +// var user = await UserManager.Find(model.UserName, model.Password); +// if (user != null) +// { +// await SignIn(user, model.RememberMe); +// return RedirectToLocal(returnUrl); +// } +// else +// { +// //Bug: Model state error +// //ModelState.AddModelError("", "Invalid username or password."); +// } +// } - // - // GET: /Account/Register - //[AllowAnonymous] - public IActionResult Register() - { - return View(); - } +// // If we got this far, something failed, redisplay form +// return View(model); +// } - // - // POST: /Account/Register - //[HttpPost] - //[AllowAnonymous] - //[ValidateAntiForgeryToken] - public async Task Register(RegisterViewModel model) - { - //if (ModelState.IsValid) - //{ - var user = new ApplicationUser() { UserName = model.UserName }; - var result = await UserManager.Create(user, model.Password); - if (result.Succeeded) - { - await SignIn(user, isPersistent: false); - return null;//RedirectToAction("Index", "Home"); - } - else - { - AddErrors(result); - } - //} +// // +// // GET: /Account/Register +// [AllowAnonymous] +// public IActionResult Register() +// { +// return View(); +// } - // If we got this far, something failed, redisplay form - return View(model); - } +// // +// // POST: /Account/Register +// //Bug: Missing verb attributes +// //[HttpPost] +// [AllowAnonymous] +// //[ValidateAntiForgeryToken] +// public async Task Register(RegisterViewModel model) +// { +// //Bug: How to validate the model state? +// //if (ModelState.IsValid) +// { +// //Bug: Replacing it with InmemoryUser +// var user = new ApplicationUser() { UserName = model.UserName }; +// var result = await UserManager.Create(user, model.Password); +// if (result.Succeeded) +// { +// await SignIn(user, isPersistent: false); +// //Bug: No helper methods +// //return RedirectToAction("Index", "Home"); +// } +// else +// { +// AddErrors(result); +// } +// } - // - // POST: /Account/Disassociate - //[HttpPost] - //[ValidateAntiForgeryToken] - public async Task Disassociate(string loginProvider, string providerKey) - { - ManageMessageId? message = null; - IdentityResult result = await UserManager.RemoveLogin(null /*User.Identity.GetUserId()*/, new UserLoginInfo(loginProvider, providerKey)); - if (result.Succeeded) - { - message = ManageMessageId.RemoveLoginSuccess; - } - else - { - message = ManageMessageId.Error; - } - return null;//RedirectToAction("Manage", new { Message = message }); - } +// // If we got this far, something failed, redisplay form +// return View(model); +// } - // - // GET: /Account/Manage - public IActionResult Manage(ManageMessageId? message) - { - ViewBag.StatusMessage = - message == ManageMessageId.ChangePasswordSuccess ? "Your password has been changed." - : message == ManageMessageId.SetPasswordSuccess ? "Your password has been set." - : message == ManageMessageId.RemoveLoginSuccess ? "The external login was removed." - : message == ManageMessageId.Error ? "An error has occurred." - : ""; - ViewBag.HasLocalPassword = HasPassword(); - //ViewBag.ReturnUrl = Url.Action("Manage"); - return View(); - } +// // +// // POST: /Account/Disassociate +// //Bug: HTTP verbs +// //[HttpPost] +// //[ValidateAntiForgeryToken] +// public async Task Disassociate(string loginProvider, string providerKey) +// { +// ManageMessageId? message = null; +// IdentityResult result = await UserManager.RemoveLogin(User.Identity.GetUserId(), new UserLoginInfo(loginProvider, providerKey)); +// if (result.Succeeded) +// { +// message = ManageMessageId.RemoveLoginSuccess; +// } +// else +// { +// message = ManageMessageId.Error; +// } +// //Bug: No helpers available +// //return RedirectToAction("Manage", new { Message = message }); +// return View(); +// } - // - // POST: /Account/Manage - //[HttpPost] - //[ValidateAntiForgeryToken] - public async Task Manage(ManageUserViewModel model) - { - bool hasPassword = HasPassword(); - ViewBag.HasLocalPassword = hasPassword; - //ViewBag.ReturnUrl = Url.Action("Manage"); - if (hasPassword) - { - //if (ModelState.IsValid) - //{ - IdentityResult result = await UserManager.ChangePassword("userId" /*User.Identity.GetUserId()*/, model.OldPassword, model.NewPassword); - if (result.Succeeded) - { - return null;//RedirectToAction("Manage", new { Message = ManageMessageId.ChangePasswordSuccess }); - } - else - { - AddErrors(result); - } - //} - } - else - { - // User does not have a password so remove any validation errors caused by a missing OldPassword field - //ModelState state = ModelState["OldPassword"]; - //if (state != null) - //{ - // state.Errors.Clear(); - //} +// // +// // GET: /Account/Manage +// public IActionResult Manage(ManageMessageId? message) +// { +// //ViewBag.StatusMessage = +// // message == ManageMessageId.ChangePasswordSuccess ? "Your password has been changed." +// // : message == ManageMessageId.SetPasswordSuccess ? "Your password has been set." +// // : message == ManageMessageId.RemoveLoginSuccess ? "The external login was removed." +// // : message == ManageMessageId.Error ? "An error has occurred." +// // : ""; +// //ViewBag.HasLocalPassword = HasPassword(); +// //Bug: No Action method with single parameter +// //ViewBag.ReturnUrl = Url.Action("Manage"); +// //ViewBag.ReturnUrl = Url.Action("Manage", "Account", null); +// return View(); +// } - //if (ModelState.IsValid) - //{ - IdentityResult result = await UserManager.AddPassword("userId" /*User.Identity.GetUserId()*/, model.NewPassword); - if (result.Succeeded) - { - return null;//RedirectToAction("Manage", new { Message = ManageMessageId.SetPasswordSuccess }); - } - else - { - AddErrors(result); - } - //} - } +// // +// // POST: /Account/Manage +// //Bug: No verb attributes +// //[HttpPost] +// //[ValidateAntiForgeryToken] +// public async Task Manage(ManageUserViewModel model) +// { +// bool hasPassword = await HasPassword(); +// //ViewBag.HasLocalPassword = hasPassword; +// //Bug: No Action method with single parameter +// //ViewBag.ReturnUrl = Url.Action("Manage"); +// //ViewBag.ReturnUrl = Url.Action("Manage", "Account", null); +// if (hasPassword) +// { +// //if (ModelState.IsValid) +// { +// IdentityResult result = await UserManager.ChangePassword(User.Identity.GetUserId(), model.OldPassword, model.NewPassword); +// if (result.Succeeded) +// { +// //Bug: No helper method +// //return RedirectToAction("Manage", new { Message = ManageMessageId.ChangePasswordSuccess }); +// return View(); +// } +// else +// { +// AddErrors(result); +// } +// } +// } +// else +// { +// // User does not have a password so remove any validation errors caused by a missing OldPassword field +// //Bug: Still controller does not have a ModelState property +// //ModelState state = ModelState["OldPassword"]; +// ModelState state = null; - // If we got this far, something failed, redisplay form - return View(model); - } +// if (state != null) +// { +// state.Errors.Clear(); +// } - // - // POST: /Account/ExternalLogin - //[HttpPost] - //[AllowAnonymous] - //[ValidateAntiForgeryToken] - public IActionResult ExternalLogin(string provider, string returnUrl) - { - // Request a redirect to the external login provider - //return new ChallengeResult(provider, Url.Action("ExternalLoginCallback", "Account", new { ReturnUrl = returnUrl })); - return null; - } +// //Bug: No model state validation +// //if (ModelState.IsValid) +// { +// IdentityResult result = await UserManager.AddPassword(User.Identity.GetUserId(), model.NewPassword); +// if (result.Succeeded) +// { +// //Bug: No helper method +// //return RedirectToAction("Manage", new { Message = ManageMessageId.SetPasswordSuccess }); +// } +// else +// { +// AddErrors(result); +// } +// } +// } - // - // GET: /Account/ExternalLoginCallback - //[AllowAnonymous] - public async Task ExternalLoginCallback(string returnUrl) - { - //var loginInfo = await AuthenticationManager.GetExternalLoginInfo(); - //if (loginInfo == null) - //{ - // return RedirectToAction("Login"); - //} +// // If we got this far, something failed, redisplay form +// return View(model); +// } - // Sign in the user with this external login provider if the user already has a login - var user = await UserManager.Find(null/*loginInfo.Login*/); - if (user != null) - { - await SignIn(user, isPersistent: false); - return RedirectToLocal(returnUrl); - } - else - { - // If the user does not have an account, then prompt the user to create an account - ViewBag.ReturnUrl = returnUrl; - ViewBag.LoginProvider = null;//loginInfo.Login.LoginProvider; - return View("ExternalLoginConfirmation", new ExternalLoginConfirmationViewModel { /*UserName = loginInfo.DefaultUserName*/ }); - } - } +// // +// // POST: /Account/ExternalLogin +// //Bug: No verb attributes +// //[HttpPost] +// [AllowAnonymous] +// //[ValidateAntiForgeryToken] +// public IActionResult ExternalLogin(string provider, string returnUrl) +// { +// // Request a redirect to the external login provider +// return new ChallengeResult(provider, Url.Action("ExternalLoginCallback", "Account", new { ReturnUrl = returnUrl })); +// } - // - // POST: /Account/LinkLogin - //[HttpPost] - //[ValidateAntiForgeryToken] - public IActionResult LinkLogin(string provider) - { - // Request a redirect to the external login provider to link a login for the current user - //return new ChallengeResult(provider, Url.Action("LinkLoginCallback", "Account"), User.Identity.GetUserId()); - return null; - } +// // +// // GET: /Account/ExternalLoginCallback +// [AllowAnonymous] +// public async Task ExternalLoginCallback(string returnUrl) +// { +// var loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync(); +// if (loginInfo == null) +// { +// //Bug: No helper +// //return RedirectToAction("Login"); +// return View(); +// } - // - // GET: /Account/LinkLoginCallback - public async Task LinkLoginCallback() - { - //var loginInfo = await AuthenticationManager.GetExternalLoginInfo(XsrfKey, User.Identity.GetUserId()); - //if (loginInfo == null) - //{ - // return RedirectToAction("Manage", new { Message = ManageMessageId.Error }); - //} - //var result = await UserManager.AddLogin(User.Identity.GetUserId(), loginInfo.Login); - //if (result.Succeeded) - //{ - // return RedirectToAction("Manage"); - //} - return null;//RedirectToAction("Manage", new { Message = ManageMessageId.Error }); - } +// // Sign in the user with this external login provider if the user already has a login +// var user = await UserManager.Find(loginInfo.Login); +// if (user != null) +// { +// await SignIn(user, isPersistent: false); +// return RedirectToLocal(returnUrl); +// } +// else +// { +// // If the user does not have an account, then prompt the user to create an account +// //ViewBag.ReturnUrl = returnUrl; +// //ViewBag.LoginProvider = loginInfo.Login.LoginProvider; +// return View("ExternalLoginConfirmation", new ExternalLoginConfirmationViewModel { UserName = loginInfo.DefaultUserName }); +// } +// } - // - // POST: /Account/ExternalLoginConfirmation - //[HttpPost] - //[AllowAnonymous] - //[ValidateAntiForgeryToken] - public async Task ExternalLoginConfirmation(ExternalLoginConfirmationViewModel model, string returnUrl) - { - //if (User.Identity.IsAuthenticated) - //{ - // return RedirectToAction("Manage"); - //} +// // +// // POST: /Account/LinkLogin +// //Bug: No HTTP verbs +// //[HttpPost] +// //[ValidateAntiForgeryToken] +// public IActionResult LinkLogin(string provider) +// { +// // Request a redirect to the external login provider to link a login for the current user +// return new ChallengeResult(provider, Url.Action("LinkLoginCallback", "Account", null), User.Identity.GetUserId()); +// } - //if (ModelState.IsValid) - //{ - // Get the information about the user from the external login provider - //var info = await AuthenticationManager.GetExternalLoginInfoAsync(); - //if (info == null) - //{ - // return View("ExternalLoginFailure"); - //} - var user = new ApplicationUser() { UserName = model.UserName }; - var result = await UserManager.Create(user); - if (result.Succeeded) - { - result = await UserManager.AddLogin(user.Id, null/*info.Login*/); - if (result.Succeeded) - { - await SignIn(user, isPersistent: false); - return null;//RedirectToLocal(returnUrl); - } - } - AddErrors(result); - //} +// // +// // GET: /Account/LinkLoginCallback +// public async Task LinkLoginCallback() +// { +// var loginInfo = null;// await AuthenticationManager.GetExternalLoginInfoAsync(XsrfKey, User.Identity.GetUserId()); +// if (loginInfo == null) +// { +// //Bug: No helper method +// //return RedirectToAction("Manage", new { Message = ManageMessageId.Error }); +// return View(); +// } +// var result = await UserManager.AddLogin(User.Identity.GetUserId(), loginInfo.Login); +// if (result.Succeeded) +// { +// //Bug: No helper method +// //return RedirectToAction("Manage"); +// return View(); +// } +// //Bug: No helper method +// //return RedirectToAction("Manage", new { Message = ManageMessageId.Error }); +// return View(); +// } - ViewBag.ReturnUrl = returnUrl; - return View(model); - } +// // +// // POST: /Account/ExternalLoginConfirmation +// //Bug: No HTTP verbs +// //[HttpPost] +// [AllowAnonymous] +// //[ValidateAntiForgeryToken] +// public async Task ExternalLoginConfirmation(ExternalLoginConfirmationViewModel model, string returnUrl) +// { +// if (User.Identity.IsAuthenticated) +// { +// //Bug: No helper yet +// //return RedirectToAction("Manage"); +// return View(); +// } - // - // POST: /Account/LogOff - //[HttpPost] - //[ValidateAntiForgeryToken] - public IActionResult LogOff() - { - //AuthenticationManager.SignOut(); - return null;//RedirectToAction("Index", "Home"); - } +// //Bug: No model state validation +// //if (ModelState.IsValid) +// { +// // Get the information about the user from the external login provider +// var info = await AuthenticationManager.GetExternalLoginInfoAsync(); +// if (info == null) +// { +// return View("ExternalLoginFailure"); +// } +// //Using InMemory user +// var user = new ApplicationUser() { UserName = model.UserName }; +// var result = await UserManager.Create(user); +// if (result.Succeeded) +// { +// result = await UserManager.AddLogin(user.Id, info.Login); +// if (result.Succeeded) +// { +// await SignIn(user, isPersistent: false); +// return RedirectToLocal(returnUrl); +// } +// } +// AddErrors(result); +// } - // - // GET: /Account/ExternalLoginFailure - //[AllowAnonymous] - public IActionResult ExternalLoginFailure() - { - return View(); - } +// //ViewBag.ReturnUrl = returnUrl; +// return View(model); +// } - //[ChildActionOnly] - public IActionResult RemoveAccountList() - { - //var linkedAccounts = UserManager.GetLogins(null /*User.Identity.GetUserId()*/); - //ViewBag.ShowRemoveButton = HasPassword() || linkedAccounts.Count > 1; - return null;//(IActionResult)PartialView("_RemoveAccountPartial", linkedAccounts); - } +// // +// // POST: /Account/LogOff +// //Bug: No HTTP verbs +// //[HttpPost] +// //[ValidateAntiForgeryToken] +// public IActionResult LogOff() +// { +// AuthenticationManager.SignOut(); +// //return RedirectToAction("Index", "Home"); +// return View(); +// } - #region Helpers - // Used for XSRF protection when adding external logins - private const string XsrfKey = "XsrfId"; +// // +// // GET: /Account/ExternalLoginFailure +// [AllowAnonymous] +// public IActionResult ExternalLoginFailure() +// { +// return View(); +// } - //private IAuthenticationManager AuthenticationManager - //{ - // get - // { - // return HttpContext.GetOwinContext().Authentication; - // } - //} +// //Bug: Need this attribute +// //[ChildActionOnly] +// public async Task RemoveAccountList() +// { +// var linkedAccounts = await UserManager.GetLogins(User.Identity.GetUserId()); +// //ViewBag.ShowRemoveButton = await HasPassword() || linkedAccounts.Count > 1; +// //Bug: We dont have partial views yet +// //return (IActionResult)PartialView("_RemoveAccountPartial", linkedAccounts); +// return View(); +// } - private async Task SignIn(ApplicationUser user, bool isPersistent) - { - //AuthenticationManager.SignOut(DefaultAuthenticationTypes.ExternalCookie); - var identity = await UserManager.CreateIdentity(user, "Application" /*DefaultAuthenticationTypes.ApplicationCookie */); - //AuthenticationManager.SignIn(new AuthenticationProperties() { IsPersistent = isPersistent }, identity); +// //Bug: Controllers need to be disposable? +// protected void Dispose(bool disposing) +// { +// if (disposing && UserManager != null) +// { +// UserManager.Dispose(); +// UserManager = null; +// } + +// //base.Dispose(disposing); +// } - // Migrate the user's shopping cart - MigrateShoppingCart(user.UserName); - } +// #region Helpers +// // Used for XSRF protection when adding external logins +// private const string XsrfKey = "XsrfId"; - private void AddErrors(IdentityResult result) - { - foreach (var error in result.Errors) - { - //ModelState.AddModelError("", error); - } - } +// //private IAuthenticationManager AuthenticationManager +// //{ +// // get +// // { +// // //Will change to Context.Authentication +// // return new IAuthenticationManager(); +// // } +// //} - private bool HasPassword() - { - // No sync helpers yet - //var user = UserManager.FindById(null /*User.Identity.GetUserId()*/); - //if (user != null) - //{ - // return user.PasswordHash != null; - //} - return false; - } +// private async Task SignIn(ApplicationUser user, bool isPersistent) +// { +// //Bug: No cookies middleware now. +// //AuthenticationManager.SignOut(DefaultAuthenticationTypes.ExternalCookie); +// //var identity = await UserManager.CreateIdentityAsync(user, DefaultAuthenticationTypes.ApplicationCookie); +// //AuthenticationManager.SignIn(new AuthenticationProperties() { IsPersistent = isPersistent }, identity); - public enum ManageMessageId - { - ChangePasswordSuccess, - SetPasswordSuccess, - RemoveLoginSuccess, - Error - } +// // Migrate the user's shopping cart +// MigrateShoppingCart(user.UserName); +// } - private IActionResult RedirectToLocal(string returnUrl) - { - //if (Url.IsLocalUrl(returnUrl)) - //{ - // return Redirect(returnUrl); - //} - //else - //{ - // return RedirectToAction("Index", "Home"); - //} - return null; - } +// private void AddErrors(IdentityResult result) +// { +// foreach (var error in result.Errors) +// { +// //ModelState.AddModelError("", error); +// } +// } - //private class ChallengeResult : HttpUnauthorizedResult - //{ - // public ChallengeResult(string provider, string redirectUri) - // : this(provider, redirectUri, null) - // { - // } +// private async Task HasPassword() +// { +// //Bug: Need to get the User object somehow: TODO +// //var user = await UserManager.FindById(User.Identity.GetUserId()); +// var user = await UserManager.FindById("TODO"); +// if (user != null) +// { +// return user.PasswordHash != null; +// } +// return false; +// } - // public ChallengeResult(string provider, string redirectUri, string userId) - // { - // LoginProvider = provider; - // RedirectUri = redirectUri; - // UserId = userId; - // } +// public enum ManageMessageId +// { +// ChangePasswordSuccess, +// SetPasswordSuccess, +// RemoveLoginSuccess, +// Error +// } - // public string LoginProvider { get; set; } - // public string RedirectUri { get; set; } - // public string UserId { get; set; } +// private IActionResult RedirectToLocal(string returnUrl) +// { +// //Bug: No helpers available +// //if (Url.IsLocalUrl(returnUrl)) +// //{ +// // return Redirect(returnUrl); +// //} +// //else +// //{ +// // return RedirectToAction("Index", "Home"); +// //} +// return View(); +// } - // public override void ExecuteResult(ControllerContext context) - // { - // var properties = new AuthenticationProperties() { RedirectUri = RedirectUri }; - // if (UserId != null) - // { - // properties.Dictionary[XsrfKey] = UserId; - // } - // context.HttpContext.GetOwinContext().Authentication.Challenge(properties, LoginProvider); - // } - //} - #endregion - } -} \ No newline at end of file +// private class ChallengeResult : HttpStatusCodeResult +// { +// public ChallengeResult(string provider, string redirectUri) +// : this(provider, redirectUri, null) +// { +// } + +// public ChallengeResult(string provider, string redirectUri, string userId) +// : base(401) +// { +// LoginProvider = provider; +// RedirectUri = redirectUri; +// UserId = userId; +// } + +// public string LoginProvider { get; set; } +// public string RedirectUri { get; set; } +// public string UserId { get; set; } + +// new public void ExecuteResultAsync(ActionContext context) +// { +// //Bug: No security package yet +// //var properties = new AuthenticationProperties() { RedirectUri = RedirectUri }; +// //if (UserId != null) +// //{ +// // properties.Dictionary[XsrfKey] = UserId; +// //} +// //context.HttpContext.GetOwinContext().Authentication.Challenge(properties, LoginProvider); +// } +// } +// #endregion +// } + +// //Bug: To remove this. Until we have ClaimsPrincipal available +// internal class User +// { +// public static IdentityInstance Identity { get; set; } + +// public User() +// { +// if (Identity == null) +// { +// Identity = new IdentityInstance(); +// } +// } + +// internal class IdentityInstance +// { +// public string GetUserId() +// { +// return string.Empty; +// } + +// public bool IsAuthenticated { get; set; } +// } +// } +//} \ No newline at end of file diff --git a/src/MusicStore/Controllers/CheckoutController.cs b/src/MusicStore/Controllers/CheckoutController.cs index efe366dc4e..8c2ed70b81 100644 --- a/src/MusicStore/Controllers/CheckoutController.cs +++ b/src/MusicStore/Controllers/CheckoutController.cs @@ -1,65 +1,103 @@ -using System; -using System.Collections.Generic; -using System.Threading.Tasks; -using Microsoft.AspNet.Mvc; -using Microsoft.Data.Entity; -using MvcMusicStore.Models; +// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information. -namespace MvcMusicStore.Controllers +using Microsoft.AspNet.Mvc; +using MusicStore.Models; +using System; +using System.Linq; + +namespace MusicStore.Controllers { + //Bug: Missing auth filter //[Authorize] public class CheckoutController : Controller { - private const string PromoCode = "FREE"; - - private readonly MusicStoreEntities _storeContext = new MusicStoreEntities(); + //Bug: Missing EF + //MusicStoreEntities storeDB = new MusicStoreEntities(); + MusicStoreEntities storeDB = MusicStoreEntities.Instance; + const string PromoCode = "FREE"; + // // GET: /Checkout/ + public IActionResult AddressAndPayment() { return View(); } + // // POST: /Checkout/AddressAndPayment + + //Bug: Http verbs not available. Also binding to FormCollection is not available. //[HttpPost] - public async Task AddressAndPayment(IDictionary values /*FormCollection values*/) + //public IActionResult AddressAndPayment(FormCollection values) + public IActionResult AddressAndPayment(int workaroundId) { + var coll = this.Context.Request.GetFormAsync().Result; + var order = new Order(); //TryUpdateModel(order); - if (//ModelState.IsValid && - string.Equals(values["PromoCode"], PromoCode, StringComparison.OrdinalIgnoreCase)) + try { - order.Username = "";//User.Identity.Name; - order.OrderDate = DateTime.Now; + //if (string.Equals(values["PromoCode"], PromoCode, + // StringComparison.OrdinalIgnoreCase) == false) + if (string.Equals(coll.GetValues("PromoCode").FirstOrDefault(), PromoCode, + StringComparison.OrdinalIgnoreCase) == false) + { + return View(order); + } + else + { + //Bug: Identity not available + order.Username = null; //User.Identity.Name; + order.OrderDate = DateTime.Now; - _storeContext.Orders.Add(order); + //Add the Order + storeDB.Orders.Add(order); - await ShoppingCart.GetCart(_storeContext, this).CreateOrder(order); + //Process the order + var cart = ShoppingCart.GetCart(storeDB, this.Context); + cart.CreateOrder(order); - await _storeContext.SaveChangesAsync(); + // Save all changes + storeDB.SaveChanges(); + + //Bug: Helper not available + //return RedirectToAction("Complete", + // new { id = order.OrderId }); + return View(); + } - return null;//RedirectToAction("Complete", new { id = order.OrderId }); } - - return View(order); + catch + { + //Invalid - redisplay with errors + return View(order); + } } + // // GET: /Checkout/Complete - public async Task Complete(int id) - { - return await _storeContext.Orders.AnyAsync(o => o.OrderId == id && o.Username == "")//User.Identity.Name) - ? View(id) - : View("Error"); - } - //protected override void Dispose(bool disposing) - //{ - // if (disposing) - // { - // _storeContext.Dispose(); - // } - // base.Dispose(disposing); - //} + public IActionResult Complete(int id) + { + // Validate customer owns this order + //Bug: Identity not available + //bool isValid = storeDB.Orders.Any( + // o => o.OrderId == id && + // o.Username == User.Identity.Name); + + bool isValid = storeDB.Orders.Any( + o => o.OrderId == id); + + if (isValid) + { + return View(id); + } + else + { + return View("Error"); + } + } } } \ No newline at end of file diff --git a/src/MusicStore/Controllers/HomeController.cs b/src/MusicStore/Controllers/HomeController.cs index 889d6115dc..ce664d76fb 100644 --- a/src/MusicStore/Controllers/HomeController.cs +++ b/src/MusicStore/Controllers/HomeController.cs @@ -1,31 +1,36 @@ -using System.Linq; -using System.Threading.Tasks; +// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information. + using Microsoft.AspNet.Mvc; -using Microsoft.Data.Entity; -using MvcMusicStore.Models; +using MusicStore.Models; +using System.Collections.Generic; +using System.Linq; namespace MvcMusicStore.Controllers { public class HomeController : Controller { - private readonly MusicStoreEntities _storeContext = new MusicStoreEntities(); - + /// Bug: Hacking to return a singleton. Should go away once we have EF. + //private MusicStoreEntities storeDB = new MusicStoreEntities(); + private MusicStoreEntities storeDB = MusicStoreEntities.Instance; + // // GET: /Home/ - public async Task Index() + public IActionResult Index() { - return View(await _storeContext.Albums - .OrderByDescending(a => a.OrderDetails.Count()) - .Take(6) - .ToListAsync()); + // Get most popular albums + var albums = GetTopSellingAlbums(6); + + return View(albums); } - //protected override void Dispose(bool disposing) - //{ - // if (disposing) - // { - // _storeContext.Dispose(); - // } - // base.Dispose(disposing); - //} + private List GetTopSellingAlbums(int count) + { + // Group the order details by album and return + // the albums with the highest count + + return storeDB.Albums + .OrderByDescending(a => a.OrderDetails.Count()) + .Take(count) + .ToList(); + } } } \ No newline at end of file diff --git a/src/MusicStore/Controllers/ShoppingCartController.cs b/src/MusicStore/Controllers/ShoppingCartController.cs index b6c7aee4fe..ae51b48bfc 100644 --- a/src/MusicStore/Controllers/ShoppingCartController.cs +++ b/src/MusicStore/Controllers/ShoppingCartController.cs @@ -1,94 +1,95 @@ -using System.Linq; -using System.Threading.Tasks; -using Microsoft.AspNet.Mvc; -using Microsoft.Data.Entity; -using MvcMusicStore.Models; -using MvcMusicStore.ViewModels; +// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information. -namespace MvcMusicStore.Controllers +using Microsoft.AspNet.Mvc; +using MusicStore.Models; +using MusicStore.ViewModels; +using System.Linq; + +namespace MusicStore.Controllers { public class ShoppingCartController : Controller { - private readonly MusicStoreEntities _storeContext = new MusicStoreEntities(); + //Bug: No EF yet + //private MusicStoreEntities storeDB = new MusicStoreEntities(); + private MusicStoreEntities storeDB = MusicStoreEntities.Instance; + // // GET: /ShoppingCart/ - public async Task Index() - { - var cart = ShoppingCart.GetCart(_storeContext, this); + public IActionResult Index() + { + var cart = ShoppingCart.GetCart(storeDB, this.Context); + + // Set up our ViewModel var viewModel = new ShoppingCartViewModel { - CartItems = await cart.GetCartItems().ToListAsync(), - CartTotal = await cart.GetTotal() + CartItems = cart.GetCartItems(), + CartTotal = cart.GetTotal() }; + // Return the view return View(viewModel); } + // // GET: /ShoppingCart/AddToCart/5 - public async Task AddToCart(int id) + + public IActionResult AddToCart(int id) { - var cart = ShoppingCart.GetCart(_storeContext, this); - await cart.AddToCart(await _storeContext.Albums.SingleAsync(a => a.AlbumId == id)); + // Retrieve the album from the database + var addedAlbum = storeDB.Albums + .Single(album => album.AlbumId == id); - await _storeContext.SaveChangesAsync(); + // Add it to the shopping cart + var cart = ShoppingCart.GetCart(storeDB, this.Context); - return null;//RedirectToAction("Index"); + cart.AddToCart(addedAlbum); + + storeDB.SaveChanges(); + + // Go back to the main store page for more shopping + //Bug: Helper method not available + //return RedirectToAction("Index"); + return View(); } + // // AJAX: /ShoppingCart/RemoveFromCart/5 + + //Bug: Missing HTTP verb attribute //[HttpPost] - public async Task RemoveFromCart(int id) + public IActionResult RemoveFromCart(int id) { - var cart = ShoppingCart.GetCart(_storeContext, this); + // Retrieve the current user's shopping cart + var cart = ShoppingCart.GetCart(storeDB, this.Context); - var albumName = await _storeContext.Carts - .Where(i => i.RecordId == id) - .Select(i => i.Album.Title) - .SingleOrDefaultAsync(); + // Get the name of the album to display confirmation + string albumName = storeDB.Carts + .Single(item => item.RecordId == id).Album.Title; - var itemCount = await cart.RemoveFromCart(id); + // Remove from cart + int itemCount = cart.RemoveFromCart(id); - await _storeContext.SaveChangesAsync(); + storeDB.SaveChanges(); - var removed = (itemCount > 0) ? " 1 copy of " : string.Empty; + string removed = (itemCount > 0) ? " 1 copy of " : string.Empty; + + // Display the confirmation message var results = new ShoppingCartRemoveViewModel { - Message = removed + albumName + " has been removed from your shopping cart.", - CartTotal = await cart.GetTotal(), - CartCount = await cart.GetCount(), + Message = removed + albumName + + " has been removed from your shopping cart.", + CartTotal = cart.GetTotal(), + CartCount = cart.GetCount(), ItemCount = itemCount, DeleteId = id }; - return Result.Json(results); + //Bug: Missing helper + //return Json(results); + return new JsonResult(results); } - - //[ChildActionOnly] - public IActionResult CartSummary() - { - var cart = ShoppingCart.GetCart(_storeContext, this); - - var cartItems = cart.GetCartItems() - .Select(a => a.Album.Title) - .OrderBy(x => x) - .ToList(); - - ViewBag.CartCount = cartItems.Count(); - ViewBag.CartSummary = string.Join("\n", cartItems.Distinct()); - - return null;//PartialView("CartSummary"); - } - - //protected override void Dispose(bool disposing) - //{ - // if (disposing) - // { - // _storeContext.Dispose(); - // } - // base.Dispose(disposing); - //} } -} +} \ No newline at end of file diff --git a/src/MusicStore/Controllers/StoreController.cs b/src/MusicStore/Controllers/StoreController.cs index 7bc5f734ed..1da59ce74f 100644 --- a/src/MusicStore/Controllers/StoreController.cs +++ b/src/MusicStore/Controllers/StoreController.cs @@ -1,55 +1,66 @@ -using System.Linq; -using System.Threading.Tasks; -using Microsoft.AspNet.Mvc; -using Microsoft.Data.Entity; -using MvcMusicStore.Models; +// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information. -namespace MvcMusicStore.Controllers +using Microsoft.AspNet.Mvc; +using MusicStore.Models; +using System.Linq; + +namespace MusicStore.Controllers { public class StoreController : Controller { - private readonly MusicStoreEntities _storeContext = new MusicStoreEntities(); - + //Bug: Need to remove singleton instance after EF is implemented. + //MusicStoreEntities storeDB = new MusicStoreEntities(); + MusicStoreEntities storeDB = MusicStoreEntities.Instance; + // // GET: /Store/ - public async Task Index() + + public IActionResult Index() { - return View(await _storeContext.Genres.ToListAsync()); + var genres = storeDB.Genres.ToList(); + + return View(genres); } + // // GET: /Store/Browse?genre=Disco - public async Task Browse(string genre) + + public IActionResult Browse(string genre) { - return View(await _storeContext.Genres.Include(e => e.Albums).SingleAsync(g => g.Name == genre)); + // Retrieve Genre genre and its Associated associated Albums albums from database + //Bug: Include is part of EF. We need to work around this temporarily + //var genreModel = storeDB.Genres.Include("Albums") + // .Single(g => g.Name == genre); + + var genreModel = storeDB.Genres.Single(g => g.Name == genre); + genreModel.Albums = storeDB.Albums.Where(a => a.GenreId == genreModel.GenreId).ToList(); + + return View(genreModel); } - public async Task Details(int id) + public IActionResult Details(int id) { - var album = await _storeContext.Albums.SingleOrDefaultAsync(a => a.AlbumId == id); + //Bug: Need Find method from EF. + //var album = storeDB.Albums.Find(id); + var album = storeDB.Albums.Single(a => a.AlbumId == id); - return album != null ? View(album) : (IActionResult)null;//HttpNotFound(); + return View(album); } + ///Bug: Missing [ChildActionOnly] attribute //[ChildActionOnly] public IActionResult GenreMenu() { - var genres = _storeContext.Genres + var genres = storeDB.Genres .OrderByDescending( g => g.Albums.Sum( - a => a.OrderDetails.Sum( - od => od.Quantity))) + a => a.OrderDetails.Sum( + od => od.Quantity))) .Take(9) .ToList(); - return null; //PartialView(genres); + //Bug: Missing PartialView method. + //return PartialView(genres); + return View(); } - - //protected override void Dispose(bool disposing) - //{ - // if (disposing) - // { - // _storeContext.Dispose(); - // } - // base.Dispose(disposing); - //} } } \ No newline at end of file diff --git a/src/MusicStore/Controllers/StoreManagerController.cs b/src/MusicStore/Controllers/StoreManagerController.cs index cb75d57421..2ce974d49c 100644 --- a/src/MusicStore/Controllers/StoreManagerController.cs +++ b/src/MusicStore/Controllers/StoreManagerController.cs @@ -1,141 +1,189 @@ -using System.Linq; -using System.Threading.Tasks; -using Microsoft.AspNet.Mvc; -using Microsoft.Data.Entity; -using MvcMusicStore.Models; +// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information. -namespace MvcMusicStore.Controllers +using Microsoft.AspNet.Mvc; +using Microsoft.AspNet.Mvc.ModelBinding; +using MusicStore.Models; +using System.Linq; + +namespace MusicStore.Controllers { - //[Authorize(Roles = "Administrator")] + ///Bug: No Authorize attribute + //[Authorize(Roles="Administrator")] public class StoreManagerController : Controller { - private readonly MusicStoreEntities _storeContext = new MusicStoreEntities(); + //Bug: No EF yet + //private MusicStoreEntities db = new MusicStoreEntities(); + private MusicStoreEntities db = MusicStoreEntities.Instance; + // // GET: /StoreManager/ - public async Task Index() + + public IActionResult Index() { - return View(await _storeContext.Albums - .Include(a => a.Genre) - .Include(a => a.Artist) - .OrderBy(a => a.Price).ToListAsync()); + //Bug: Include needs EF. + //var albums = db.Albums.Include(a => a.Genre).Include(a => a.Artist) + // .OrderBy(a => a.Price); + + var albums = db.Albums; + foreach (var album in albums) + { + album.Genre = db.Genres.Single(g => g.GenreId == album.GenreId); + album.Artist = db.Artists.Single(a => a.ArtistId == album.ArtistId); + } + + return View(albums.ToList()); } + // // GET: /StoreManager/Details/5 - public async Task Details(int id = 0) - { - var album = await _storeContext.Albums.SingleOrDefaultAsync(e => e.AlbumId == id); + public IActionResult Details(int id = 0) + { + //Bug: Find needs EF + //Album album = db.Albums.Find(id); + Album album = db.Albums.Single(a => a.AlbumId == id); if (album == null) { - return null;//HttpNotFound(); + //Bug: Need method HttpNotFound() on Controller + //return HttpNotFound(); + return this.HttpNotFound(); } - return View(album); } + //Bug: SelectList still not available + // // GET: /StoreManager/Create - public async Task Create() - { - return await BuildView(null); - } + //public IActionResult Create() + //{ + // ViewBag.GenreId = new SelectList(db.Genres, "GenreId", "Name"); + // ViewBag.ArtistId = new SelectList(db.Artists, "ArtistId", "Name"); + // return View(); + //} + + //Bug: ModelState.IsValid not available + //Bug: RedirectToAction() not available + //Bug: SelectList not available // POST: /StoreManager/Create + //[HttpPost] - public async Task Create(Album album) - { - if (true)//ModelState.IsValid) - { - _storeContext.Albums.Add(album); + //public IActionResult Create(Album album) + //{ + // if (ModelState.IsValid) + // { + // db.Albums.Add(album); + // db.SaveChanges(); + // return RedirectToAction("Index"); + // } - await _storeContext.SaveChangesAsync(); - - return null;//RedirectToAction("Index"); - } - - return await BuildView(album); - } + // ViewBag.GenreId = new SelectList(db.Genres, "GenreId", "Name", album.GenreId); + // ViewBag.ArtistId = new SelectList(db.Artists, "ArtistId", "Name", album.ArtistId); + // return View(album); + //} + // // GET: /StoreManager/Edit/5 - public async Task Edit(int id = 0) + + public IActionResult Edit(int id = 0) { - var album = await _storeContext.Albums.SingleOrDefaultAsync(e => e.AlbumId == id); + //Bug: Need EF to implement Find + //Album album = db.Albums.Find(id); + Album album = db.Albums.Single(a => a.AlbumId == id); + if (album == null) { - return null;//HttpNotFound(); + //Bug: Need method HttpNotFound() on Controller + //return HttpNotFound(); + return this.HttpNotFound(); } - - return await BuildView(album); + //ViewBag.GenreId = new SelectList(db.Genres, "GenreId", "Name", album.GenreId); + //ViewBag.ArtistId = new SelectList(db.Artists, "ArtistId", "Name", album.ArtistId); + return View(album); } + // // POST: /StoreManager/Edit/5 + //Bug: Http actions not available //[HttpPost] - public async Task Edit(Album album) + public IActionResult Edit(Album album) { - if (true)//ModelState.IsValid) + //Bug: ModelState.IsValid missing + //if (ModelState.IsValid) { - _storeContext.Albums.Update(album); - - await _storeContext.SaveChangesAsync(); - - return null;//RedirectToAction("Index"); + //Bug: Missing EF + //db.Entry(album).State = EntityState.Modified; + db.SaveChanges(); + //Bug: Missing RedirectToAction helper + //return RedirectToAction("Index"); } - - return await BuildView(album); + //ViewBag.GenreId = new SelectList(db.Genres, "GenreId", "Name", album.GenreId); + //ViewBag.ArtistId = new SelectList(db.Artists, "ArtistId", "Name", album.ArtistId); + return View(album); } + // // GET: /StoreManager/Delete/5 - public async Task Delete(int id = 0) + + public IActionResult Delete(int id = 0) { - var album = await _storeContext.Albums.SingleOrDefaultAsync(e => e.AlbumId == id); + //Bug: EF missing + //Album album = db.Albums.Find(id); + Album album = db.Albums.Single(a => a.AlbumId == id); if (album == null) { - return null;//HttpNotFound(); + //Bug: Missing Helper + return this.HttpNotFound(); } - return View(album); } + // // POST: /StoreManager/Delete/5 + //Bug: Missing HTTP verb & action name. ActionName out of scope for alpha - So fixing the name of method in code //[HttpPost, ActionName("Delete")] - public async Task DeleteConfirmed(int id) + //TODO: How to have an action with same name 'Delete'?? + public IActionResult DeleteConfirmed(int id) { - var album = await _storeContext.Albums.SingleOrDefaultAsync(e => e.AlbumId == id); - if (album == null) - { - return null;//HttpNotFound(); - } + //Bug: EF missing + //Album album = db.Albums.Find(id); + Album album = db.Albums.Single(a => a.AlbumId == id); + db.Albums.Remove(album); + db.SaveChanges(); + //Bug: Missing helper + //return RedirectToAction("Index"); - _storeContext.Albums.Remove(album); - - await _storeContext.SaveChangesAsync(); - - return null;//RedirectToAction("Index"); - } - - private async Task BuildView(Album album) - { - //ViewBag.GenreId = new SelectList( - // await _storeContext.Genres.ToListAsync(), - // "GenreId", - // "Name", - // album == null ? null : (object)album.GenreId); - - //ViewBag.ArtistId = new SelectList( - // await _storeContext.Artists.ToListAsync(), - // "ArtistId", - // "Name", - // album == null ? null : (object)album.ArtistId); - - return View(album); + return View(); } + //Bug: Can't dispose db. //protected override void Dispose(bool disposing) //{ - // if (disposing) - // { - // _storeContext.Dispose(); - // } + // db.Dispose(); // base.Dispose(disposing); //} } + + /// + /// Bug: HttpNotFoundResult not available in Controllers. Work around. + /// + public class HttpNotFoundResult : HttpStatusCodeResult + { + public HttpNotFoundResult() + : base(404) + { + + } + } + + /// + /// Bug: HttpNotFoundResult not available in Controllers. Work around. + /// + public static class Extensions + { + public static IActionResult HttpNotFound(this Controller controller) + { + return new HttpNotFoundResult(); + } + } } \ No newline at end of file diff --git a/src/MusicStore/CopyAspNetLoader.cmd b/src/MusicStore/CopyAspNetLoader.cmd new file mode 100644 index 0000000000..2f8ff3e7aa --- /dev/null +++ b/src/MusicStore/CopyAspNetLoader.cmd @@ -0,0 +1,7 @@ +REM copy the AspNet.Loader.dll to bin folder +md bin + +REM figure out the path of AspNet.Loader.dll +FOR /F %%j IN ('dir /b /o:-d ..\..\packages\Microsoft.AspNet.Loader.IIS.Interop*') do (SET AspNetLoaderPath=..\..\packages\%%j\tools\AspNet.Loader.dll) +echo Found AspNetLoader.dll at %AspNetLoaderPath%. Copying to bin\ +copy %AspNetLoaderPath% bin\ \ No newline at end of file diff --git a/src/MusicStore/Images/home-showcase.png b/src/MusicStore/Images/home-showcase.png new file mode 100644 index 0000000000..258c19d3cd Binary files /dev/null and b/src/MusicStore/Images/home-showcase.png differ diff --git a/src/MusicStore/Images/logo.png b/src/MusicStore/Images/logo.png new file mode 100644 index 0000000000..d334c86256 Binary files /dev/null and b/src/MusicStore/Images/logo.png differ diff --git a/src/MusicStore/Images/logo.svg b/src/MusicStore/Images/logo.svg new file mode 100644 index 0000000000..ec3cd6aa5b --- /dev/null +++ b/src/MusicStore/Images/logo.svg @@ -0,0 +1,303 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/MusicStore/Images/placeholder.png b/src/MusicStore/Images/placeholder.png new file mode 100644 index 0000000000..1f73dbb43d Binary files /dev/null and b/src/MusicStore/Images/placeholder.png differ diff --git a/src/MusicStore/Images/placeholder.svg b/src/MusicStore/Images/placeholder.svg new file mode 100644 index 0000000000..07d58202df --- /dev/null +++ b/src/MusicStore/Images/placeholder.svg @@ -0,0 +1,112 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/MusicStore/LKG.json b/src/MusicStore/LKG.json new file mode 100644 index 0000000000..8107f88f10 --- /dev/null +++ b/src/MusicStore/LKG.json @@ -0,0 +1,45 @@ +{ + "version": "0.1-alpha-*", + "dependencies": { + "Helios": "0.1-alpha-098", + "Microsoft.AspNet.Abstractions": "0.1-alpha-152", + "Microsoft.AspNet.Mvc": "0.1-alpha-296", + "Microsoft.AspNet.Razor": "0.1-alpha-136", + "Microsoft.AspNet.ConfigurationModel": "0.1-alpha-108", + "Microsoft.AspNet.DependencyInjection": "0.1-alpha-159", + "Microsoft.AspNet.RequestContainer": "0.1-alpha-124", + "Microsoft.AspNet.Routing": "0.1-alpha-100", + "Microsoft.AspNet.Mvc.ModelBinding": "0.1-alpha-296", + "Microsoft.AspNet.Mvc.Core": "0.1-alpha-296", + "Microsoft.AspNet.Mvc.Razor": "0.1-alpha-296", + "Microsoft.AspNet.Mvc.Rendering": "0.1-alpha-296", + "Microsoft.AspNet.StaticFiles": "0.1-alpha-081", + "System.Security.Claims": "0.1-alpha-045", + "Microsoft.AspNet.Security.DataProtection": "0.1-alpha-092", + "Microsoft.AspNet.Identity": "0.1-alpha-155", + "Microsoft.AspNet.Identity.Entity": "0.1-alpha-155", + "Microsoft.AspNet.Identity.InMemory": "0.1-alpha-155" + }, + "configurations": { + "net45": { + "dependencies": { + "System.Runtime": "", + "System.ComponentModel.DataAnnotations": "" + } + }, + "k10": { + "dependencies": { + "System.Collections": "4.0.0.0", + "System.Linq": "4.0.0.0", + "System.Runtime": "4.0.20.0", + "System.Dynamic.Runtime": "4.0.0.0", + "System.Threading.Tasks": "4.0.0.0", + "System.ComponentModel": "4.0.0.0", + "System.Console": "4.0.0.0", + "System.Diagnostics.Debug": "4.0.10.0", + "System.Diagnostics.Tools": "4.0.0.0", + "Microsoft.ComponentModel.DataAnnotations": "0.1-alpha-032" + } + } + } +} \ No newline at end of file diff --git a/src/MusicStore/Models/AccountViewModels.cs b/src/MusicStore/Models/AccountViewModels.cs index 3d1cdbadd0..c6efee0211 100644 --- a/src/MusicStore/Models/AccountViewModels.cs +++ b/src/MusicStore/Models/AccountViewModels.cs @@ -1,63 +1,65 @@ -// using System.ComponentModel.DataAnnotations; +// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information. -namespace MvcMusicStore.Models +using System.ComponentModel.DataAnnotations; + +namespace MusicStore.Models { public class ExternalLoginConfirmationViewModel { - //[Required] - //[Display(Name = "User name")] + [Required] + [Display(Name = "User name")] public string UserName { get; set; } } public class ManageUserViewModel { - //[Required] - //[DataType(DataType.Password)] - //[Display(Name = "Current password")] + [Required] + [DataType(DataType.Password)] + [Display(Name = "Current password")] public string OldPassword { get; set; } - //[Required] - //[StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)] - //[DataType(DataType.Password)] - //[Display(Name = "New password")] + [Required] + [StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)] + [DataType(DataType.Password)] + [Display(Name = "New password")] public string NewPassword { get; set; } - //[DataType(DataType.Password)] - //[Display(Name = "Confirm new password")] - //[Compare("NewPassword", ErrorMessage = "The new password and confirmation password do not match.")] + [DataType(DataType.Password)] + [Display(Name = "Confirm new password")] + [Compare("NewPassword", ErrorMessage = "The new password and confirmation password do not match.")] public string ConfirmPassword { get; set; } } public class LoginViewModel { - //[Required] - //[Display(Name = "User name")] + [Required] + [Display(Name = "User name")] public string UserName { get; set; } - //[Required] - //[DataType(DataType.Password)] - //[Display(Name = "Password")] + [Required] + [DataType(DataType.Password)] + [Display(Name = "Password")] public string Password { get; set; } - //[Display(Name = "Remember me?")] + [Display(Name = "Remember me?")] public bool RememberMe { get; set; } } public class RegisterViewModel { - //[Required] - //[Display(Name = "User name")] + [Required] + [Display(Name = "User name")] public string UserName { get; set; } - //[Required] - //[StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)] - //[DataType(DataType.Password)] - //[Display(Name = "Password")] + [Required] + [StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)] + [DataType(DataType.Password)] + [Display(Name = "Password")] public string Password { get; set; } - //[DataType(DataType.Password)] - //[Display(Name = "Confirm password")] - //[Compare("Password", ErrorMessage = "The password and confirmation password do not match.")] + [DataType(DataType.Password)] + [Display(Name = "Confirm password")] + [Compare("Password", ErrorMessage = "The password and confirmation password do not match.")] public string ConfirmPassword { get; set; } } -} +} \ No newline at end of file diff --git a/src/MusicStore/Models/Album.cs b/src/MusicStore/Models/Album.cs index 1075586a8d..d9b355b123 100644 --- a/src/MusicStore/Models/Album.cs +++ b/src/MusicStore/Models/Album.cs @@ -1,31 +1,43 @@ -using System.Collections.Generic; +// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information. -namespace MvcMusicStore.Models +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; + +namespace MusicStore.Models { public class Album { - //[ScaffoldColumn(false)] + [ScaffoldColumn(false)] public int AlbumId { get; set; } public int GenreId { get; set; } public int ArtistId { get; set; } - //[Required] - //[StringLength(160, MinimumLength = 2)] + [Required] + [StringLength(160, MinimumLength = 2)] public string Title { get; set; } - //[Required] - //[Range(0.01, 100.00)] - //[DataType(DataType.Currency)] + [Required] + [Range(0.01, 100.00)] + + [DataType(DataType.Currency)] public decimal Price { get; set; } - //[DisplayName("Album Art URL")] - //[StringLength(1024)] + [Display(Name = "Album Art URL")] + [StringLength(1024)] public string AlbumArtUrl { get; set; } public virtual Genre Genre { get; set; } public virtual Artist Artist { get; set; } public virtual List OrderDetails { get; set; } + + /// + /// Bug: We use this to populate the order details. This should be removed once we have an actual DB with EF. + /// + public Album() + { + this.OrderDetails = new List(); + } } } \ No newline at end of file diff --git a/src/MusicStore/Models/Artist.cs b/src/MusicStore/Models/Artist.cs index 156675c034..f893ae2497 100644 --- a/src/MusicStore/Models/Artist.cs +++ b/src/MusicStore/Models/Artist.cs @@ -1,4 +1,6 @@ -namespace MvcMusicStore.Models +// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information. + +namespace MusicStore.Models { public class Artist { diff --git a/src/MusicStore/Models/Cart.cs b/src/MusicStore/Models/Cart.cs index 9f6727eae6..4cbfd73e2c 100644 --- a/src/MusicStore/Models/Cart.cs +++ b/src/MusicStore/Models/Cart.cs @@ -1,16 +1,19 @@ -using System; +// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information. -namespace MvcMusicStore.Models +using System; +using System.ComponentModel.DataAnnotations; + +namespace MusicStore.Models { public class Cart { - //[Key] + [Key] public int RecordId { get; set; } public string CartId { get; set; } public int AlbumId { get; set; } public int Count { get; set; } - //[DataType(DataType.DateTime)] + [DataType(DataType.DateTime)] public DateTime DateCreated { get; set; } public virtual Album Album { get; set; } diff --git a/src/MusicStore/Models/Genre.cs b/src/MusicStore/Models/Genre.cs index d2e61f4e4a..f3322d6a96 100644 --- a/src/MusicStore/Models/Genre.cs +++ b/src/MusicStore/Models/Genre.cs @@ -1,6 +1,8 @@ -using System.Collections.Generic; +// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information. -namespace MvcMusicStore.Models +using System.Collections.Generic; + +namespace MusicStore.Models { public class Genre { @@ -9,4 +11,4 @@ namespace MvcMusicStore.Models public string Description { get; set; } public List Albums { get; set; } } -} +} \ No newline at end of file diff --git a/src/MusicStore/Models/IdentityModels.cs b/src/MusicStore/Models/IdentityModels.cs index 8a7ad94bfd..03ae9b330a 100644 --- a/src/MusicStore/Models/IdentityModels.cs +++ b/src/MusicStore/Models/IdentityModels.cs @@ -1,8 +1,9 @@ -using Microsoft.AspNet.Identity.InMemory; +// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information. -namespace MvcMusicStore.Models +using Microsoft.AspNet.Identity.InMemory; + +namespace MusicStore.Models { - // You can add profile data for the user by adding more properties to your ApplicationUser class, please visit http://go.microsoft.com/fwlink/?LinkID=317594 to learn more. public class ApplicationUser : InMemoryUser { } diff --git a/src/MusicStore/Models/MusicStoreEntities.cs b/src/MusicStore/Models/MusicStoreEntities.cs index 6490a06408..f1bef0eed9 100644 --- a/src/MusicStore/Models/MusicStoreEntities.cs +++ b/src/MusicStore/Models/MusicStoreEntities.cs @@ -1,18 +1,58 @@ -using Microsoft.Data.Entity; +// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information. -namespace MvcMusicStore.Models +using System.Collections.Generic; + +namespace MusicStore.Models { - public class MusicStoreEntities : EntityContext + /// + /// Bug: Mocked entities set. We should substitute this with DbSet once EF is available. + /// + public class MusicStoreEntities { - public MusicStoreEntities() - : base(null) // TODO: Fix after discussion of which patterns to use here + public List Albums { get; set; } + public List Genres { get; set; } + public List Artists { get; set; } + public List Carts { get; set; } + public List Orders { get; set; } + public List OrderDetails { get; set; } + + /// + /// Bug: Need to remove this method. Just adding this to unblock from compilation errors + /// + public void SaveChanges() { + } - public EntitySet Albums { get; set; } - public EntitySet Genres { get; set; } - public EntitySet Artists { get; set; } - public EntitySet Carts { get; set; } - public EntitySet Orders { get; set; } + private static MusicStoreEntities instance; + + public static MusicStoreEntities Instance + { + get + { + //TODO: Sync issues not handled. + if (instance == null) + { + instance = new MusicStoreEntities(); + SampleData.Seed(instance); + } + + return instance; + } + } + + /// + /// Bug: This is to just initialize the lists. Once we have EF this should be removed. + /// + /// + private MusicStoreEntities() + { + this.Albums = new List(); + this.Genres = new List(); + this.Artists = new List(); + this.Carts = new List(); + this.Orders = new List(); + this.OrderDetails = new List(); + } } } \ No newline at end of file diff --git a/src/MusicStore/Models/Order.cs b/src/MusicStore/Models/Order.cs index 4cf918fccd..3170278aa7 100644 --- a/src/MusicStore/Models/Order.cs +++ b/src/MusicStore/Models/Order.cs @@ -1,68 +1,66 @@ -using System.Collections.Generic; +// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information. -namespace MvcMusicStore.Models +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; + +namespace MusicStore.Models { //[Bind(Include = "FirstName,LastName,Address,City,State,PostalCode,Country,Phone,Email")] public class Order { - public Order() - { - OrderDetails = new List(); - } - - //[ScaffoldColumn(false)] + [ScaffoldColumn(false)] public int OrderId { get; set; } - //[ScaffoldColumn(false)] + [ScaffoldColumn(false)] public System.DateTime OrderDate { get; set; } - //[ScaffoldColumn(false)] + [ScaffoldColumn(false)] public string Username { get; set; } - //[Required] - //[DisplayName("First Name")] - //[StringLength(160)] + [Required] + [Display(Name = "First Name")] + [StringLength(160)] public string FirstName { get; set; } - //[Required] - //[DisplayName("Last Name")] - //[StringLength(160)] + [Required] + [Display(Name = "Last Name")] + [StringLength(160)] public string LastName { get; set; } - //[Required] - //[StringLength(70, MinimumLength = 3)] + [Required] + [StringLength(70, MinimumLength = 3)] public string Address { get; set; } - //[Required] - //[StringLength(40)] + [Required] + [StringLength(40)] public string City { get; set; } - //[Required] - //[StringLength(40)] + [Required] + [StringLength(40)] public string State { get; set; } - //[Required] - //[DisplayName("Postal Code")] - //[StringLength(10, MinimumLength = 5)] + [Required] + [Display(Name = "Postal Code")] + [StringLength(10, MinimumLength = 5)] public string PostalCode { get; set; } - //[Required] - //[StringLength(40)] + [Required] + [StringLength(40)] public string Country { get; set; } - //[Required] - //[StringLength(24)] - //[DataType(DataType.PhoneNumber)] + [Required] + [StringLength(24)] + [DataType(DataType.PhoneNumber)] public string Phone { get; set; } - //[Required] - //[DisplayName("Email Address")] - //[RegularExpression(@"[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}", - // ErrorMessage = "Email is is not valid.")] - //[DataType(DataType.EmailAddress)] + [Required] + [Display(Name = "Email Address")] + [RegularExpression(@"[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}", + ErrorMessage = "Email is is not valid.")] + [DataType(DataType.EmailAddress)] public string Email { get; set; } - //[ScaffoldColumn(false)] + [ScaffoldColumn(false)] public decimal Total { get; set; } public List OrderDetails { get; set; } diff --git a/src/MusicStore/Models/OrderDetail.cs b/src/MusicStore/Models/OrderDetail.cs index e52c3efa93..a27c971aa1 100644 --- a/src/MusicStore/Models/OrderDetail.cs +++ b/src/MusicStore/Models/OrderDetail.cs @@ -1,4 +1,6 @@ -namespace MvcMusicStore.Models +// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information. + +namespace MusicStore.Models { public class OrderDetail { diff --git a/src/MusicStore/Models/SampleData.cs b/src/MusicStore/Models/SampleData.cs index 7055afe350..9aaeda7603 100644 --- a/src/MusicStore/Models/SampleData.cs +++ b/src/MusicStore/Models/SampleData.cs @@ -1,3726 +1,505 @@ -using System.Collections.Generic; +// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information. + +using System; +using System.Collections.Generic; using System.Linq; +using System.Collections; -namespace MvcMusicStore.Models +namespace MusicStore.Models { - public class SampleData + /// + /// Bug: No DropCreateDatabaseIfModelChanges yet. Need to inherit from it. + /// + public class SampleData// : DropCreateDatabaseIfModelChanges { - public void Seed(MusicStoreEntities context) - { - const string imgUrl = "~/Images/placeholder.png"; + //Bug: Currently a ~ in the url results in an razor exception: https://github.com/aspnet/WebFx/issues/66 + //const string imgUrl = "~/Images/placeholder.png"; + const string imgUrl = "/Images/placeholder.png"; - AddAlbums(context, imgUrl, AddGenres(context), AddArtists(context)); + /// + /// Bug: This needs to be modified to the correct signature. protected override -> public void + /// + /// + public static void Seed(MusicStoreEntities context) + { + var genres = AddGenres(context); + var artists = AddArtists(context); + AddAlbums(context, imgUrl, genres, artists); context.SaveChanges(); } - private static void AddAlbums( - MusicStoreEntities context, - string imgUrl, - List genres, - List artists) + private static void AddAlbums(MusicStoreEntities context, string imgUrl, List genres, List artists) { - var albums = new List - { - new Album - { - Title = "The Best Of The Men At Work", - Genre = genres.Single(g => g.Name == "Pop"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Men At Work"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "...And Justice For All", - Genre = genres.Single(g => g.Name == "Metal"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Metallica"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "עד גבול האור", - Genre = genres.Single(g => g.Name == "World"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "אריק אינשטיין"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Black Light Syndrome", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Terry Bozzio, Tony Levin & Steve Stevens"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "10,000 Days", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Tool"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "11i", - Genre = genres.Single(g => g.Name == "Electronic"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Supreme Beings of Leisure"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "1960", - Genre = genres.Single(g => g.Name == "Indie"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Soul-Junk"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "4x4=12 ", - Genre = genres.Single(g => g.Name == "Electronic"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "deadmau5"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "A Copland Celebration, Vol. I", - Genre = genres.Single(g => g.Name == "Classical"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "London Symphony Orchestra"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "A Lively Mind", - Genre = genres.Single(g => g.Name == "Electronic"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Paul Oakenfold"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "A Matter of Life and Death", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Iron Maiden"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "A Real Dead One", - Genre = genres.Single(g => g.Name == "Metal"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Iron Maiden"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "A Real Live One", - Genre = genres.Single(g => g.Name == "Metal"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Iron Maiden"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "A Rush of Blood to the Head", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Coldplay"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "A Soprano Inspired", - Genre = genres.Single(g => g.Name == "Classical"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Britten Sinfonia, Ivor Bolton & Lesley Garrett"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "A Winter Symphony", - Genre = genres.Single(g => g.Name == "Classical"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Sarah Brightman"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Abbey Road", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "The Beatles"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Ace Of Spades", - Genre = genres.Single(g => g.Name == "Metal"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Motörhead"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Achtung Baby", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "U2"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Acústico MTV", - Genre = genres.Single(g => g.Name == "Latin"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Os Paralamas Do Sucesso"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Adams, John: The Chairman Dances", - Genre = genres.Single(g => g.Name == "Classical"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Edo de Waart & San Francisco Symphony"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Adrenaline", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Deftones"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Ænima", - Genre = genres.Single(g => g.Name == "Metal"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Tool"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Afrociberdelia", - Genre = genres.Single(g => g.Name == "Latin"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Chico Science & Nação Zumbi"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "After the Goldrush", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Neil Young"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Airdrawn Dagger", - Genre = genres.Single(g => g.Name == "Electronic"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Sasha"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Album Title Goes Here", - Genre = genres.Single(g => g.Name == "Electronic"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "deadmau5"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Alcohol Fueled Brewtality Live! [Disc 1]", - Genre = genres.Single(g => g.Name == "Metal"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Black Label Society"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Alcohol Fueled Brewtality Live! [Disc 2]", - Genre = genres.Single(g => g.Name == "Metal"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Black Label Society"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Alive 2007", - Genre = genres.Single(g => g.Name == "Electronic"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Daft Punk"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "All I Ask of You", - Genre = genres.Single(g => g.Name == "Classical"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Sarah Brightman"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Amen (So Be It)", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Paddy Casey"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Animal Vehicle", - Genre = genres.Single(g => g.Name == "Pop"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "The Axis of Awesome"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Ao Vivo [IMPORT]", - Genre = genres.Single(g => g.Name == "Latin"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Zeca Pagodinho"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Apocalyptic Love", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Slash"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Appetite for Destruction", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Guns N' Roses"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Are You Experienced?", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Jimi Hendrix"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Arquivo II", - Genre = genres.Single(g => g.Name == "Latin"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Os Paralamas Do Sucesso"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Arquivo Os Paralamas Do Sucesso", - Genre = genres.Single(g => g.Name == "Latin"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Os Paralamas Do Sucesso"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "A-Sides", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Soundgarden"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Audioslave", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Audioslave"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Automatic for the People", - Genre = genres.Single(g => g.Name == "Alternative"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "R.E.M."), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Axé Bahia 2001", - Genre = genres.Single(g => g.Name == "Pop"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Various Artists"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Babel", - Genre = genres.Single(g => g.Name == "Alternative"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Mumford & Sons"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Bach: Goldberg Variations", - Genre = genres.Single(g => g.Name == "Classical"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Wilhelm Kempff"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Bach: The Brandenburg Concertos", - Genre = genres.Single(g => g.Name == "Classical"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Orchestra of The Age of Enlightenment"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Bach: The Cello Suites", - Genre = genres.Single(g => g.Name == "Classical"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Yo-Yo Ma"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Bach: Toccata & Fugue in D Minor", - Genre = genres.Single(g => g.Name == "Classical"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Ton Koopman"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Bad Motorfinger", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Soundgarden"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Balls to the Wall", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Accept"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Banadeek Ta'ala", - Genre = genres.Single(g => g.Name == "World"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Amr Diab"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Barbie Girl", - Genre = genres.Single(g => g.Name == "Pop"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Aqua"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Bark at the Moon (Remastered)", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Ozzy Osbourne"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Bartok: Violin & Viola Concertos", - Genre = genres.Single(g => g.Name == "Classical"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Yehudi Menuhin"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Barulhinho Bom", - Genre = genres.Single(g => g.Name == "Latin"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Marisa Monte"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "BBC Sessions [Disc 1] [Live]", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Led Zeppelin"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "BBC Sessions [Disc 2] [Live]", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Led Zeppelin"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Be Here Now", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Oasis"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Bedrock 11 Compiled & Mixed", - Genre = genres.Single(g => g.Name == "Electronic"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "John Digweed"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Berlioz: Symphonie Fantastique", - Genre = genres.Single(g => g.Name == "Classical"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Michael Tilson Thomas"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Beyond Good And Evil", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "The Cult"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Big Bad Wolf ", - Genre = genres.Single(g => g.Name == "Electronic"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Armand Van Helden"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Big Ones", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Aerosmith"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Black Album", - Genre = genres.Single(g => g.Name == "Metal"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Metallica"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Black Sabbath Vol. 4 (Remaster)", - Genre = genres.Single(g => g.Name == "Metal"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Black Sabbath"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Black Sabbath", - Genre = genres.Single(g => g.Name == "Metal"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Black Sabbath"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Black", - Genre = genres.Single(g => g.Name == "Metal"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Metallica"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Blackwater Park", - Genre = genres.Single(g => g.Name == "Metal"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Opeth"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Blizzard of Ozz", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Ozzy Osbourne"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Blood", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "In This Moment"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Blue Moods", - Genre = genres.Single(g => g.Name == "Jazz"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Incognito"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Blue", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Weezer"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Bongo Fury", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Frank Zappa & Captain Beefheart"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Boys & Girls", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Alabama Shakes"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Brave New World", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Iron Maiden"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "B-Sides 1980-1990", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "U2"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Bunkka", - Genre = genres.Single(g => g.Name == "Electronic"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Paul Oakenfold"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "By The Way", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Red Hot Chili Peppers"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Cake: B-Sides and Rarities", - Genre = genres.Single(g => g.Name == "Electronic"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Cake"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Californication", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Red Hot Chili Peppers"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Carmina Burana", - Genre = genres.Single(g => g.Name == "Classical"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Boston Symphony Orchestra & Seiji Ozawa"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Carried to Dust (Bonus Track Version)", - Genre = genres.Single(g => g.Name == "Electronic"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Calexico"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Carry On", - Genre = genres.Single(g => g.Name == "Electronic"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Chris Cornell"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Cássia Eller - Sem Limite [Disc 1]", - Genre = genres.Single(g => g.Name == "Latin"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Cássia Eller"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Chemical Wedding", - Genre = genres.Single(g => g.Name == "Metal"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Bruce Dickinson"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Chill: Brazil (Disc 1)", - Genre = genres.Single(g => g.Name == "Latin"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Marcos Valle"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Chill: Brazil (Disc 2)", - Genre = genres.Single(g => g.Name == "Latin"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Antônio Carlos Jobim"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Chocolate Starfish And The Hot Dog Flavored Water", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Limp Bizkit"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Chronicle, Vol. 1", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Creedence Clearwater Revival"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Chronicle, Vol. 2", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Creedence Clearwater Revival"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Ciao, Baby", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "TheStart"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Cidade Negra - Hits", - Genre = genres.Single(g => g.Name == "Latin"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Cidade Negra"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Classic Munkle: Turbo Edition", - Genre = genres.Single(g => g.Name == "Electronic"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Munkle"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Classics: The Best of Sarah Brightman", - Genre = genres.Single(g => g.Name == "Classical"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Sarah Brightman"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Coda", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Led Zeppelin"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Come Away With Me", - Genre = genres.Single(g => g.Name == "Jazz"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Norah Jones"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Come Taste The Band", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Deep Purple"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Comfort Eagle", - Genre = genres.Single(g => g.Name == "Alternative"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Cake"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Common Reaction", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Uh Huh Her "), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Compositores", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "O Terço"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Contraband", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Velvet Revolver"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Core", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Stone Temple Pilots"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Cornerstone", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Styx"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Cosmicolor", - Genre = genres.Single(g => g.Name == "Rap"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "M-Flo"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Cross", - Genre = genres.Single(g => g.Name == "Electronic"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Justice"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Culture of Fear", - Genre = genres.Single(g => g.Name == "Electronic"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Thievery Corporation"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Da Lama Ao Caos", - Genre = genres.Single(g => g.Name == "Latin"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Chico Science & Nação Zumbi"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Dakshina", - Genre = genres.Single(g => g.Name == "World"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Deva Premal"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Dark Side of the Moon", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Pink Floyd"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Death Magnetic", - Genre = genres.Single(g => g.Name == "Metal"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Metallica"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Deep End of Down", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Above the Fold"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Deep Purple In Rock", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Deep Purple"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Deixa Entrar", - Genre = genres.Single(g => g.Name == "Latin"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Falamansa"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Deja Vu", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Crosby, Stills, Nash, and Young"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Di Korpu Ku Alma", - Genre = genres.Single(g => g.Name == "World"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Lura"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Diary of a Madman (Remastered)", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Ozzy Osbourne"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Diary of a Madman", - Genre = genres.Single(g => g.Name == "Metal"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Ozzy Osbourne"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Dirt", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Alice in Chains"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Diver Down", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Van Halen"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Djavan Ao Vivo - Vol. 02", - Genre = genres.Single(g => g.Name == "Latin"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Djavan"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Djavan Ao Vivo - Vol. 1", - Genre = genres.Single(g => g.Name == "Latin"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Djavan"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Drum'n'bass for Papa", - Genre = genres.Single(g => g.Name == "Electronic"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Plug"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Duluth", - Genre = genres.Single(g => g.Name == "Country"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Trampled By Turtles"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Dummy", - Genre = genres.Single(g => g.Name == "Electronic"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Portishead"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Duos II", - Genre = genres.Single(g => g.Name == "Latin"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Luciana Souza/Romero Lubambo"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Earl Scruggs and Friends", - Genre = genres.Single(g => g.Name == "Country"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Earl Scruggs"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Eden", - Genre = genres.Single(g => g.Name == "Classical"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Sarah Brightman"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "El Camino", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "The Black Keys"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Elegant Gypsy", - Genre = genres.Single(g => g.Name == "Jazz"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Al di Meola"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Elements Of Life", - Genre = genres.Single(g => g.Name == "Electronic"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Tiësto"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Elis Regina-Minha História", - Genre = genres.Single(g => g.Name == "Latin"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Elis Regina"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Emergency On Planet Earth", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Jamiroquai"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Emotion", - Genre = genres.Single(g => g.Name == "World"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Papa Wemba"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "English Renaissance", - Genre = genres.Single(g => g.Name == "Classical"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "The King's Singers"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Every Kind of Light", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "The Posies"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Faceless", - Genre = genres.Single(g => g.Name == "Metal"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Godsmack"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Facelift", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Alice in Chains"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Fair Warning", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Van Halen"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Fear of a Black Planet", - Genre = genres.Single(g => g.Name == "Rap"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Public Enemy"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Fear Of The Dark", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Iron Maiden"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Feels Like Home", - Genre = genres.Single(g => g.Name == "Jazz"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Norah Jones"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Fireball", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Deep Purple"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Fly", - Genre = genres.Single(g => g.Name == "Classical"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Sarah Brightman"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "For Those About To Rock We Salute You", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "AC/DC"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Four", - Genre = genres.Single(g => g.Name == "Blues"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Blues Traveler"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Frank", - Genre = genres.Single(g => g.Name == "Pop"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Amy Winehouse"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Further Down the Spiral", - Genre = genres.Single(g => g.Name == "Electronic"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Nine Inch Nails"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Garage Inc. (Disc 1)", - Genre = genres.Single(g => g.Name == "Metal"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Metallica"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Garage Inc. (Disc 2)", - Genre = genres.Single(g => g.Name == "Metal"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Metallica"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Garbage", - Genre = genres.Single(g => g.Name == "Alternative"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Garbage"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Good News For People Who Love Bad News", - Genre = genres.Single(g => g.Name == "Indie"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Modest Mouse"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Gordon", - Genre = genres.Single(g => g.Name == "Alternative"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Barenaked Ladies"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Górecki: Symphony No. 3", - Genre = genres.Single(g => g.Name == "Classical"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Adrian Leaper & Doreen de Feis"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Greatest Hits I", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Queen"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Greatest Hits II", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Queen"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Greatest Hits", - Genre = genres.Single(g => g.Name == "Electronic"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Duck Sauce"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Greatest Hits", - Genre = genres.Single(g => g.Name == "Metal"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Lenny Kravitz"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Greatest Hits", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Lenny Kravitz"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Greatest Kiss", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Kiss"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Greetings from Michigan", - Genre = genres.Single(g => g.Name == "Indie"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Sufjan Stevens"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Group Therapy", - Genre = genres.Single(g => g.Name == "Electronic"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Above & Beyond"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Handel: The Messiah (Highlights)", - Genre = genres.Single(g => g.Name == "Classical"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Scholars Baroque Ensemble"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Haydn: Symphonies 99 - 104", - Genre = genres.Single(g => g.Name == "Classical"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Royal Philharmonic Orchestra"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Heart of the Night", - Genre = genres.Single(g => g.Name == "Jazz"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Spyro Gyra"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Heart On", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "The Eagles of Death Metal"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Holy Diver", - Genre = genres.Single(g => g.Name == "Metal"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Dio"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Homework", - Genre = genres.Single(g => g.Name == "Electronic"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Daft Punk"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Hot Rocks, 1964-1971 (Disc 1)", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "The Rolling Stones"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Houses Of The Holy", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Led Zeppelin"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "How To Dismantle An Atomic Bomb", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "U2"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Human", - Genre = genres.Single(g => g.Name == "Metal"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Projected"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Hunky Dory", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "David Bowie"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Hymns", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Projected"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Hysteria", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Def Leppard"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "In Absentia", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Porcupine Tree"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "In Between", - Genre = genres.Single(g => g.Name == "Pop"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Paul Van Dyk"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "In Rainbows", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Radiohead"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "In Step", - Genre = genres.Single(g => g.Name == "Blues"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Stevie Ray Vaughan & Double Trouble"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "In the court of the Crimson King", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "King Crimson"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "In Through The Out Door", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Led Zeppelin"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "In Your Honor [Disc 1]", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Foo Fighters"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "In Your Honor [Disc 2]", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Foo Fighters"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Indestructible", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Rancid"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Infinity", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Journey"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Into The Light", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "David Coverdale"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Introspective", - Genre = genres.Single(g => g.Name == "Pop"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Pet Shop Boys"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Iron Maiden", - Genre = genres.Single(g => g.Name == "Blues"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Iron Maiden"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "ISAM", - Genre = genres.Single(g => g.Name == "Electronic"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Amon Tobin"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "IV", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Led Zeppelin"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Jagged Little Pill", - Genre = genres.Single(g => g.Name == "Alternative"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Alanis Morissette"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Jagged Little Pill", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Alanis Morissette"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Jorge Ben Jor 25 Anos", - Genre = genres.Single(g => g.Name == "Latin"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Jorge Ben"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Jota Quest-1995", - Genre = genres.Single(g => g.Name == "Latin"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Jota Quest"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Kick", - Genre = genres.Single(g => g.Name == "Alternative"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "INXS"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Kill 'Em All", - Genre = genres.Single(g => g.Name == "Metal"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Metallica"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Kind of Blue", - Genre = genres.Single(g => g.Name == "Jazz"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Miles Davis"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "King For A Day Fool For A Lifetime", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Faith No More"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Kiss", - Genre = genres.Single(g => g.Name == "Pop"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Carly Rae Jepsen"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Last Call", - Genre = genres.Single(g => g.Name == "Country"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Cayouche"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Le Freak", - Genre = genres.Single(g => g.Name == "R&B"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Chic"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Le Tigre", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Le Tigre"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Led Zeppelin I", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Led Zeppelin"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Led Zeppelin II", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Led Zeppelin"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Led Zeppelin III", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Led Zeppelin"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Let There Be Rock", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "AC/DC"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Little Earthquakes", - Genre = genres.Single(g => g.Name == "Alternative"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Tori Amos"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Live [Disc 1]", - Genre = genres.Single(g => g.Name == "Blues"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "The Black Crowes"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Live [Disc 2]", - Genre = genres.Single(g => g.Name == "Blues"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "The Black Crowes"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Live After Death", - Genre = genres.Single(g => g.Name == "Metal"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Iron Maiden"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Live At Donington 1992 (Disc 1)", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Iron Maiden"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Live At Donington 1992 (Disc 2)", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Iron Maiden"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Live on Earth", - Genre = genres.Single(g => g.Name == "Jazz"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "The Cat Empire"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Live On Two Legs [Live]", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Pearl Jam"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Living After Midnight", - Genre = genres.Single(g => g.Name == "Metal"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Judas Priest"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Living", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Paddy Casey"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Load", - Genre = genres.Single(g => g.Name == "Metal"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Metallica"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Love Changes Everything", - Genre = genres.Single(g => g.Name == "Classical"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Sarah Brightman"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "MacArthur Park Suite", - Genre = genres.Single(g => g.Name == "R&B"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Donna Summer"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Machine Head", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Deep Purple"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Magical Mystery Tour", - Genre = genres.Single(g => g.Name == "Pop"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "The Beatles"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Mais Do Mesmo", - Genre = genres.Single(g => g.Name == "Latin"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Legião Urbana"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Maquinarama", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Skank"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Marasim", - Genre = genres.Single(g => g.Name == "Classical"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Jagjit Singh"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Mascagni: Cavalleria Rusticana", - Genre = genres.Single(g => g.Name == "Classical"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "James Levine"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Master of Puppets", - Genre = genres.Single(g => g.Name == "Metal"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Metallica"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Mechanics & Mathematics", - Genre = genres.Single(g => g.Name == "Pop"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Venus Hum"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Mental Jewelry", - Genre = genres.Single(g => g.Name == "Alternative"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Live"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Metallics", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Metallica"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "meteora", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Linkin Park"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Meus Momentos", - Genre = genres.Single(g => g.Name == "Latin"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Gonzaguinha"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Mezmerize", - Genre = genres.Single(g => g.Name == "Metal"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "System Of A Down"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Mezzanine", - Genre = genres.Single(g => g.Name == "Electronic"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Massive Attack"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Miles Ahead", - Genre = genres.Single(g => g.Name == "Jazz"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Miles Davis"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Milton Nascimento Ao Vivo", - Genre = genres.Single(g => g.Name == "Latin"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Milton Nascimento"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Minas", - Genre = genres.Single(g => g.Name == "Latin"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Milton Nascimento"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Minha Historia", - Genre = genres.Single(g => g.Name == "Latin"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Chico Buarque"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Misplaced Childhood", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Marillion"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "MK III The Final Concerts [Disc 1]", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Deep Purple"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Morning Dance", - Genre = genres.Single(g => g.Name == "Jazz"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Spyro Gyra"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Motley Crue Greatest Hits", - Genre = genres.Single(g => g.Name == "Metal"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Mötley Crüe"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Moving Pictures", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Rush"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Mozart: Chamber Music", - Genre = genres.Single(g => g.Name == "Classical"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Nash Ensemble"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Mozart: Symphonies Nos. 40 & 41", - Genre = genres.Single(g => g.Name == "Classical"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Berliner Philharmoniker"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Murder Ballads", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Nick Cave and the Bad Seeds"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Music For The Jilted Generation", - Genre = genres.Single(g => g.Name == "Electronic"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "The Prodigy"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "My Generation - The Very Best Of The Who", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "The Who"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "My Name is Skrillex", - Genre = genres.Single(g => g.Name == "Electronic"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Skrillex"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Na Pista", - Genre = genres.Single(g => g.Name == "Latin"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Cláudio Zoli"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Nevermind", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Nirvana"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "New Adventures In Hi-Fi", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "R.E.M."), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "New Divide", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Linkin Park"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "New York Dolls", - Genre = genres.Single(g => g.Name == "Punk"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "New York Dolls"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "News Of The World", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Queen"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Nielsen: The Six Symphonies", - Genre = genres.Single(g => g.Name == "Classical"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Göteborgs Symfoniker & Neeme Järvi"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Night At The Opera", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Queen"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Night Castle", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Trans-Siberian Orchestra"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Nkolo", - Genre = genres.Single(g => g.Name == "World"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Lokua Kanza"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "No More Tears (Remastered)", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Ozzy Osbourne"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "No Prayer For The Dying", - Genre = genres.Single(g => g.Name == "Metal"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Iron Maiden"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "No Security", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "The Rolling Stones"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "O Brother, Where Art Thou?", - Genre = genres.Single(g => g.Name == "Country"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Alison Krauss"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "O Samba Poconé", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Skank"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "O(+>", - Genre = genres.Single(g => g.Name == "R&B"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Prince"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Oceania", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "The Smashing Pumpkins"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Off the Deep End", - Genre = genres.Single(g => g.Name == "Pop"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Weird Al"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "OK Computer", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Radiohead"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Olodum", - Genre = genres.Single(g => g.Name == "Latin"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Olodum"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "One Love", - Genre = genres.Single(g => g.Name == "Electronic"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "David Guetta"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Operation: Mindcrime", - Genre = genres.Single(g => g.Name == "Metal"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Queensrÿche"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Opiate", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Tool"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Outbreak", - Genre = genres.Single(g => g.Name == "Jazz"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Dennis Chambers"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Pachelbel: Canon & Gigue", - Genre = genres.Single(g => g.Name == "Classical"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "English Concert & Trevor Pinnock"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Paid in Full", - Genre = genres.Single(g => g.Name == "Rap"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Eric B. and Rakim"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Para Siempre", - Genre = genres.Single(g => g.Name == "Latin"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Vicente Fernandez"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Pause", - Genre = genres.Single(g => g.Name == "Electronic"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Four Tet"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Peace Sells... but Who's Buying", - Genre = genres.Single(g => g.Name == "Metal"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Megadeth"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Physical Graffiti [Disc 1]", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Led Zeppelin"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Physical Graffiti [Disc 2]", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Led Zeppelin"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Physical Graffiti", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Led Zeppelin"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Piece Of Mind", - Genre = genres.Single(g => g.Name == "Metal"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Iron Maiden"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Pinkerton", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Weezer"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Plays Metallica By Four Cellos", - Genre = genres.Single(g => g.Name == "Metal"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Apocalyptica"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Pop", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "U2"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Powerslave", - Genre = genres.Single(g => g.Name == "Metal"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Iron Maiden"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Prenda Minha", - Genre = genres.Single(g => g.Name == "Latin"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Caetano Veloso"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Presence", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Led Zeppelin"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Pretty Hate Machine", - Genre = genres.Single(g => g.Name == "Alternative"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Nine Inch Nails"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Prisoner", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "The Jezabels"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Privateering", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Mark Knopfler"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Prokofiev: Romeo & Juliet", - Genre = genres.Single(g => g.Name == "Classical"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Michael Tilson Thomas"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Prokofiev: Symphony No.1", - Genre = genres.Single(g => g.Name == "Classical"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Sergei Prokofiev & Yuri Temirkanov"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "PSY's Best 6th Part 1", - Genre = genres.Single(g => g.Name == "Pop"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "PSY"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Purcell: The Fairy Queen", - Genre = genres.Single(g => g.Name == "Classical"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "London Classical Players"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Purpendicular", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Deep Purple"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Purple", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Stone Temple Pilots"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Quanta Gente Veio Ver (Live)", - Genre = genres.Single(g => g.Name == "Latin"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Gilberto Gil"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Quanta Gente Veio ver--Bônus De Carnaval", - Genre = genres.Single(g => g.Name == "Jazz"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Gilberto Gil"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Quiet Songs", - Genre = genres.Single(g => g.Name == "Jazz"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Aisha Duo"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Raices", - Genre = genres.Single(g => g.Name == "Latin"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Los Tigres del Norte"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Raising Hell", - Genre = genres.Single(g => g.Name == "Rap"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Run DMC"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Raoul and the Kings of Spain ", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Tears For Fears"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Rattle And Hum", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "U2"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Raul Seixas", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Raul Seixas"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Recovery [Explicit]", - Genre = genres.Single(g => g.Name == "Rap"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Eminem"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Reign In Blood", - Genre = genres.Single(g => g.Name == "Metal"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Slayer"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Relayed", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Yes"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "ReLoad", - Genre = genres.Single(g => g.Name == "Metal"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Metallica"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Respighi:Pines of Rome", - Genre = genres.Single(g => g.Name == "Classical"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Eugene Ormandy"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Restless and Wild", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Accept"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Retrospective I (1974-1980)", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Rush"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Revelations", - Genre = genres.Single(g => g.Name == "Electronic"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Audioslave"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Revolver", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "The Beatles"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Ride the Lighting ", - Genre = genres.Single(g => g.Name == "Metal"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Metallica"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Ride The Lightning", - Genre = genres.Single(g => g.Name == "Metal"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Metallica"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Ring My Bell", - Genre = genres.Single(g => g.Name == "R&B"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Anita Ward"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Riot Act", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Pearl Jam"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Rise of the Phoenix", - Genre = genres.Single(g => g.Name == "Metal"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Before the Dawn"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Rock In Rio [CD1]", - Genre = genres.Single(g => g.Name == "Metal"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Iron Maiden"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Rock In Rio [CD2]", - Genre = genres.Single(g => g.Name == "Metal"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Iron Maiden"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Rock In Rio [CD2]", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Iron Maiden"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Roda De Funk", - Genre = genres.Single(g => g.Name == "Latin"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Funk Como Le Gusta"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Room for Squares", - Genre = genres.Single(g => g.Name == "Pop"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "John Mayer"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Root Down", - Genre = genres.Single(g => g.Name == "Jazz"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Jimmy Smith"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Rounds", - Genre = genres.Single(g => g.Name == "Electronic"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Four Tet"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Rubber Factory", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "The Black Keys"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Rust in Peace", - Genre = genres.Single(g => g.Name == "Metal"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Megadeth"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Sambas De Enredo 2001", - Genre = genres.Single(g => g.Name == "Latin"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Various Artists"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Santana - As Years Go By", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Santana"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Santana Live", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Santana"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Saturday Night Fever", - Genre = genres.Single(g => g.Name == "R&B"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Bee Gees"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Scary Monsters and Nice Sprites", - Genre = genres.Single(g => g.Name == "Electronic"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Skrillex"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Scheherazade", - Genre = genres.Single(g => g.Name == "Classical"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Chicago Symphony Orchestra & Fritz Reiner"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "SCRIABIN: Vers la flamme", - Genre = genres.Single(g => g.Name == "Classical"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Christopher O'Riley"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Second Coming", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "The Stone Roses"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Serie Sem Limite (Disc 1)", - Genre = genres.Single(g => g.Name == "Latin"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Tim Maia"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Serie Sem Limite (Disc 2)", - Genre = genres.Single(g => g.Name == "Latin"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Tim Maia"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Serious About Men", - Genre = genres.Single(g => g.Name == "Rap"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "The Rubberbandits"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Seventh Son of a Seventh Son", - Genre = genres.Single(g => g.Name == "Metal"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Iron Maiden"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Short Bus", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Filter"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Sibelius: Finlandia", - Genre = genres.Single(g => g.Name == "Classical"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Berliner Philharmoniker"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Singles Collection", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "David Bowie"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Six Degrees of Inner Turbulence", - Genre = genres.Single(g => g.Name == "Metal"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Dream Theater"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Slave To The Empire", - Genre = genres.Single(g => g.Name == "Metal"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "T&N"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Slaves And Masters", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Deep Purple"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Slouching Towards Bethlehem", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Robert James"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Smash", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "The Offspring"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Something Special", - Genre = genres.Single(g => g.Name == "Country"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Dolly Parton"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Somewhere in Time", - Genre = genres.Single(g => g.Name == "Metal"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Iron Maiden"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Song(s) You Know By Heart", - Genre = genres.Single(g => g.Name == "Country"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Jimmy Buffett"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Sound of Music", - Genre = genres.Single(g => g.Name == "Punk"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Adicts"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "South American Getaway", - Genre = genres.Single(g => g.Name == "Classical"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "The 12 Cellists of The Berlin Philharmonic"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Sozinho Remix Ao Vivo", - Genre = genres.Single(g => g.Name == "Latin"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Caetano Veloso"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Speak of the Devil", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Ozzy Osbourne"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Spiritual State", - Genre = genres.Single(g => g.Name == "Rap"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Nujabes"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "St. Anger", - Genre = genres.Single(g => g.Name == "Metal"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Metallica"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Still Life", - Genre = genres.Single(g => g.Name == "Metal"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Opeth"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Stop Making Sense", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Talking Heads"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Stormbringer", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Deep Purple"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Stranger than Fiction", - Genre = genres.Single(g => g.Name == "Punk"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Bad Religion"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Strauss: Waltzes", - Genre = genres.Single(g => g.Name == "Classical"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Eugene Ormandy"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Supermodified", - Genre = genres.Single(g => g.Name == "Electronic"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Amon Tobin"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Supernatural", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Santana"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Surfing with the Alien (Remastered)", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Joe Satriani"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Switched-On Bach", - Genre = genres.Single(g => g.Name == "Classical"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Wendy Carlos"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Symphony", - Genre = genres.Single(g => g.Name == "Classical"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Sarah Brightman"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Szymanowski: Piano Works, Vol. 1", - Genre = genres.Single(g => g.Name == "Classical"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Martin Roscoe"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Tchaikovsky: The Nutcracker", - Genre = genres.Single(g => g.Name == "Classical"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "London Symphony Orchestra"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Ted Nugent", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Ted Nugent"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Teflon Don", - Genre = genres.Single(g => g.Name == "Rap"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Rick Ross"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Tell Another Joke at the Ol' Choppin' Block", - Genre = genres.Single(g => g.Name == "Indie"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Danielson Famile"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Temple of the Dog", - Genre = genres.Single(g => g.Name == "Electronic"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Temple of the Dog"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Ten", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Pearl Jam"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Texas Flood", - Genre = genres.Single(g => g.Name == "Blues"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Stevie Ray Vaughan"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "The Battle Rages On", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Deep Purple"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "The Beast Live", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Paul D'Ianno"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "The Best Of 1980-1990", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "U2"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "The Best of 1990–2000", - Genre = genres.Single(g => g.Name == "Classical"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Sarah Brightman"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "The Best of Beethoven", - Genre = genres.Single(g => g.Name == "Classical"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Nicolaus Esterhazy Sinfonia"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "The Best Of Billy Cobham", - Genre = genres.Single(g => g.Name == "Jazz"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Billy Cobham"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "The Best of Ed Motta", - Genre = genres.Single(g => g.Name == "Latin"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Ed Motta"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "The Best Of Van Halen, Vol. I", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Van Halen"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "The Bridge", - Genre = genres.Single(g => g.Name == "R&B"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Melanie Fiona"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "The Cage", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Tygers of Pan Tang"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "The Chicago Transit Authority", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Chicago "), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "The Chronic", - Genre = genres.Single(g => g.Name == "Rap"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Dr. Dre"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "The Colour And The Shape", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Foo Fighters"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "The Crane Wife", - Genre = genres.Single(g => g.Name == "Alternative"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "The Decemberists"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "The Cream Of Clapton", - Genre = genres.Single(g => g.Name == "Blues"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Eric Clapton"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "The Cure", - Genre = genres.Single(g => g.Name == "Pop"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "The Cure"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "The Dark Side Of The Moon", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Pink Floyd"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "The Divine Conspiracy", - Genre = genres.Single(g => g.Name == "Metal"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Epica"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "The Doors", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "The Doors"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "The Dream of the Blue Turtles", - Genre = genres.Single(g => g.Name == "Pop"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Sting"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "The Essential Miles Davis [Disc 1]", - Genre = genres.Single(g => g.Name == "Jazz"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Miles Davis"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "The Essential Miles Davis [Disc 2]", - Genre = genres.Single(g => g.Name == "Jazz"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Miles Davis"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "The Final Concerts (Disc 2)", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Deep Purple"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "The Final Frontier", - Genre = genres.Single(g => g.Name == "Metal"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Iron Maiden"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "The Head and the Heart", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "The Head and the Heart"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "The Joshua Tree", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "U2"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "The Last Night of the Proms", - Genre = genres.Single(g => g.Name == "Classical"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "BBC Concert Orchestra"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "The Lumineers", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "The Lumineers"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "The Number of The Beast", - Genre = genres.Single(g => g.Name == "Metal"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Iron Maiden"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "The Number of The Beast", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Iron Maiden"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "The Police Greatest Hits", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "The Police"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "The Song Remains The Same (Disc 1)", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Led Zeppelin"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "The Song Remains The Same (Disc 2)", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Led Zeppelin"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "The Southern Harmony and Musical Companion", - Genre = genres.Single(g => g.Name == "Blues"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "The Black Crowes"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "The Spade", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Butch Walker & The Black Widows"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "The Stone Roses", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "The Stone Roses"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "The Suburbs", - Genre = genres.Single(g => g.Name == "Indie"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Arcade Fire"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "The Three Tenors Disc1/Disc2", - Genre = genres.Single(g => g.Name == "Classical"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Carreras, Pavarotti, Domingo"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "The Trees They Grow So High", - Genre = genres.Single(g => g.Name == "Classical"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Sarah Brightman"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "The Wall", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Pink Floyd"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "The X Factor", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Iron Maiden"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Them Crooked Vultures", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Them Crooked Vultures"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "This Is Happening", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "LCD Soundsystem"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Thunder, Lightning, Strike", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "The Go! Team"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Time to Say Goodbye", - Genre = genres.Single(g => g.Name == "Classical"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Sarah Brightman"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Time, Love & Tenderness", - Genre = genres.Single(g => g.Name == "Pop"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Michael Bolton"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Tomorrow Starts Today", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Mobile"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Tribute", - Genre = genres.Single(g => g.Name == "Metal"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Ozzy Osbourne"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Tuesday Night Music Club", - Genre = genres.Single(g => g.Name == "Alternative"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Sheryl Crow"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Umoja", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "BLØF"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Under the Pink", - Genre = genres.Single(g => g.Name == "Alternative"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Tori Amos"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Undertow", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Tool"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Un-Led-Ed", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Dread Zeppelin"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Unplugged [Live]", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Kiss"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Unplugged", - Genre = genres.Single(g => g.Name == "Blues"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Eric Clapton"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Unplugged", - Genre = genres.Single(g => g.Name == "Latin"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Eric Clapton"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Untrue", - Genre = genres.Single(g => g.Name == "Electronic"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Burial"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Use Your Illusion I", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Guns N' Roses"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Use Your Illusion II", - Genre = genres.Single(g => g.Name == "Metal"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Guns N' Roses"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Use Your Illusion II", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Guns N' Roses"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Van Halen III", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Van Halen"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Van Halen", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Van Halen"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Version 2.0", - Genre = genres.Single(g => g.Name == "Alternative"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Garbage"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Vinicius De Moraes", - Genre = genres.Single(g => g.Name == "Latin"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Vinícius De Moraes"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Virtual XI", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Iron Maiden"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Voodoo Lounge", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "The Rolling Stones"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Vozes do MPB", - Genre = genres.Single(g => g.Name == "Latin"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Various Artists"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Vs.", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Pearl Jam"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Wagner: Favourite Overtures", - Genre = genres.Single(g => g.Name == "Classical"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Sir Georg Solti & Wiener Philharmoniker"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Walking Into Clarksdale", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Page & Plant"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Wapi Yo", - Genre = genres.Single(g => g.Name == "World"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Lokua Kanza"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "War", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "U2"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Warner 25 Anos", - Genre = genres.Single(g => g.Name == "Jazz"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Antônio Carlos Jobim"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Wasteland R&Btheque", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Raunchy"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Watermark", - Genre = genres.Single(g => g.Name == "Electronic"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Enya"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "We Were Exploding Anyway", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "65daysofstatic"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Weill: The Seven Deadly Sins", - Genre = genres.Single(g => g.Name == "Classical"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Orchestre de l'Opéra de Lyon"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "White Pony", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Deftones"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Who's Next", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "The Who"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Wish You Were Here", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Pink Floyd"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "With Oden on Our Side", - Genre = genres.Single(g => g.Name == "Metal"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Amon Amarth"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Worlds", - Genre = genres.Single(g => g.Name == "Jazz"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Aaron Goldberg"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Worship Music", - Genre = genres.Single(g => g.Name == "Metal"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Anthrax"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "X&Y", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Coldplay"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Xinti", - Genre = genres.Single(g => g.Name == "World"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Sara Tavares"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Yano", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Yano"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Yesterday Once More Disc 1/Disc 2", - Genre = genres.Single(g => g.Name == "Pop"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "The Carpenters"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Zooropa", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "U2"), - AlbumArtUrl = imgUrl - }, - new Album - { - Title = "Zoso", - Genre = genres.Single(g => g.Name == "Rock"), - Price = 8.99M, - Artist = artists.Single(a => a.Name == "Led Zeppelin"), - AlbumArtUrl = imgUrl - }, - }; + context.Albums.Add(new Album { Title = "The Best Of The Men At Work", Genre = genres.Single(g => g.Name == "Pop"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Men At Work"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "...And Justice For All", Genre = genres.Single(g => g.Name == "Metal"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Metallica"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "עד גבול האור", Genre = genres.Single(g => g.Name == "World"), Price = 8.99M, Artist = artists.Single(a => a.Name == "אריק אינשטיין"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Black Light Syndrome", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Terry Bozzio, Tony Levin & Steve Stevens"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "10,000 Days", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Tool"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "11i", Genre = genres.Single(g => g.Name == "Electronic"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Supreme Beings of Leisure"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "1960", Genre = genres.Single(g => g.Name == "Indie"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Soul-Junk"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "4x4=12 ", Genre = genres.Single(g => g.Name == "Electronic"), Price = 8.99M, Artist = artists.Single(a => a.Name == "deadmau5"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "A Copland Celebration, Vol. I", Genre = genres.Single(g => g.Name == "Classical"), Price = 8.99M, Artist = artists.Single(a => a.Name == "London Symphony Orchestra"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "A Lively Mind", Genre = genres.Single(g => g.Name == "Electronic"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Paul Oakenfold"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "A Matter of Life and Death", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Iron Maiden"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "A Real Dead One", Genre = genres.Single(g => g.Name == "Metal"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Iron Maiden"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "A Real Live One", Genre = genres.Single(g => g.Name == "Metal"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Iron Maiden"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "A Rush of Blood to the Head", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Coldplay"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "A Soprano Inspired", Genre = genres.Single(g => g.Name == "Classical"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Britten Sinfonia, Ivor Bolton & Lesley Garrett"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "A Winter Symphony", Genre = genres.Single(g => g.Name == "Classical"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Sarah Brightman"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Abbey Road", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "The Beatles"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Ace Of Spades", Genre = genres.Single(g => g.Name == "Metal"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Motörhead"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Achtung Baby", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "U2"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Acústico MTV", Genre = genres.Single(g => g.Name == "Latin"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Os Paralamas Do Sucesso"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Adams, John: The Chairman Dances", Genre = genres.Single(g => g.Name == "Classical"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Edo de Waart & San Francisco Symphony"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Adrenaline", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Deftones"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Ænima", Genre = genres.Single(g => g.Name == "Metal"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Tool"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Afrociberdelia", Genre = genres.Single(g => g.Name == "Latin"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Chico Science & Nação Zumbi"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "After the Goldrush", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Neil Young"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Airdrawn Dagger", Genre = genres.Single(g => g.Name == "Electronic"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Sasha"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Album Title Goes Here", Genre = genres.Single(g => g.Name == "Electronic"), Price = 8.99M, Artist = artists.Single(a => a.Name == "deadmau5"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Alcohol Fueled Brewtality Live! [Disc 1]", Genre = genres.Single(g => g.Name == "Metal"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Black Label Society"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Alcohol Fueled Brewtality Live! [Disc 2]", Genre = genres.Single(g => g.Name == "Metal"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Black Label Society"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Alive 2007", Genre = genres.Single(g => g.Name == "Electronic"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Daft Punk"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "All I Ask of You", Genre = genres.Single(g => g.Name == "Classical"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Sarah Brightman"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Amen (So Be It)", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Paddy Casey"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Animal Vehicle", Genre = genres.Single(g => g.Name == "Pop"), Price = 8.99M, Artist = artists.Single(a => a.Name == "The Axis of Awesome"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Ao Vivo [IMPORT]", Genre = genres.Single(g => g.Name == "Latin"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Zeca Pagodinho"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Apocalyptic Love", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Slash"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Appetite for Destruction", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Guns N' Roses"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Are You Experienced?", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Jimi Hendrix"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Arquivo II", Genre = genres.Single(g => g.Name == "Latin"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Os Paralamas Do Sucesso"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Arquivo Os Paralamas Do Sucesso", Genre = genres.Single(g => g.Name == "Latin"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Os Paralamas Do Sucesso"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "A-Sides", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Soundgarden"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Audioslave", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Audioslave"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Automatic for the People", Genre = genres.Single(g => g.Name == "Alternative"), Price = 8.99M, Artist = artists.Single(a => a.Name == "R.E.M."), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Axé Bahia 2001", Genre = genres.Single(g => g.Name == "Pop"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Various Artists"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Babel", Genre = genres.Single(g => g.Name == "Alternative"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Mumford & Sons"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Bach: Goldberg Variations", Genre = genres.Single(g => g.Name == "Classical"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Wilhelm Kempff"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Bach: The Brandenburg Concertos", Genre = genres.Single(g => g.Name == "Classical"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Orchestra of The Age of Enlightenment"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Bach: The Cello Suites", Genre = genres.Single(g => g.Name == "Classical"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Yo-Yo Ma"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Bach: Toccata & Fugue in D Minor", Genre = genres.Single(g => g.Name == "Classical"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Ton Koopman"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Bad Motorfinger", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Soundgarden"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Balls to the Wall", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Accept"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Banadeek Ta'ala", Genre = genres.Single(g => g.Name == "World"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Amr Diab"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Barbie Girl", Genre = genres.Single(g => g.Name == "Pop"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Aqua"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Bark at the Moon (Remastered)", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Ozzy Osbourne"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Bartok: Violin & Viola Concertos", Genre = genres.Single(g => g.Name == "Classical"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Yehudi Menuhin"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Barulhinho Bom", Genre = genres.Single(g => g.Name == "Latin"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Marisa Monte"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "BBC Sessions [Disc 1] [Live]", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Led Zeppelin"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "BBC Sessions [Disc 2] [Live]", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Led Zeppelin"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Be Here Now", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Oasis"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Bedrock 11 Compiled & Mixed", Genre = genres.Single(g => g.Name == "Electronic"), Price = 8.99M, Artist = artists.Single(a => a.Name == "John Digweed"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Berlioz: Symphonie Fantastique", Genre = genres.Single(g => g.Name == "Classical"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Michael Tilson Thomas"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Beyond Good And Evil", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "The Cult"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Big Bad Wolf ", Genre = genres.Single(g => g.Name == "Electronic"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Armand Van Helden"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Big Ones", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Aerosmith"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Black Album", Genre = genres.Single(g => g.Name == "Metal"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Metallica"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Black Sabbath Vol. 4 (Remaster)", Genre = genres.Single(g => g.Name == "Metal"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Black Sabbath"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Black Sabbath", Genre = genres.Single(g => g.Name == "Metal"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Black Sabbath"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Black", Genre = genres.Single(g => g.Name == "Metal"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Metallica"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Blackwater Park", Genre = genres.Single(g => g.Name == "Metal"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Opeth"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Blizzard of Ozz", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Ozzy Osbourne"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Blood", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "In This Moment"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Blue Moods", Genre = genres.Single(g => g.Name == "Jazz"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Incognito"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Blue", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Weezer"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Bongo Fury", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Frank Zappa & Captain Beefheart"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Boys & Girls", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Alabama Shakes"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Brave New World", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Iron Maiden"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "B-Sides 1980-1990", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "U2"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Bunkka", Genre = genres.Single(g => g.Name == "Electronic"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Paul Oakenfold"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "By The Way", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Red Hot Chili Peppers"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Cake: B-Sides and Rarities", Genre = genres.Single(g => g.Name == "Electronic"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Cake"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Californication", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Red Hot Chili Peppers"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Carmina Burana", Genre = genres.Single(g => g.Name == "Classical"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Boston Symphony Orchestra & Seiji Ozawa"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Carried to Dust (Bonus Track Version)", Genre = genres.Single(g => g.Name == "Electronic"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Calexico"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Carry On", Genre = genres.Single(g => g.Name == "Electronic"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Chris Cornell"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Cássia Eller - Sem Limite [Disc 1]", Genre = genres.Single(g => g.Name == "Latin"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Cássia Eller"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Chemical Wedding", Genre = genres.Single(g => g.Name == "Metal"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Bruce Dickinson"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Chill: Brazil (Disc 1)", Genre = genres.Single(g => g.Name == "Latin"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Marcos Valle"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Chill: Brazil (Disc 2)", Genre = genres.Single(g => g.Name == "Latin"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Antônio Carlos Jobim"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Chocolate Starfish And The Hot Dog Flavored Water", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Limp Bizkit"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Chronicle, Vol. 1", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Creedence Clearwater Revival"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Chronicle, Vol. 2", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Creedence Clearwater Revival"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Ciao, Baby", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "TheStart"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Cidade Negra - Hits", Genre = genres.Single(g => g.Name == "Latin"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Cidade Negra"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Classic Munkle: Turbo Edition", Genre = genres.Single(g => g.Name == "Electronic"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Munkle"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Classics: The Best of Sarah Brightman", Genre = genres.Single(g => g.Name == "Classical"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Sarah Brightman"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Coda", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Led Zeppelin"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Come Away With Me", Genre = genres.Single(g => g.Name == "Jazz"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Norah Jones"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Come Taste The Band", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Deep Purple"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Comfort Eagle", Genre = genres.Single(g => g.Name == "Alternative"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Cake"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Common Reaction", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Uh Huh Her "), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Compositores", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "O Terço"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Contraband", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Velvet Revolver"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Core", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Stone Temple Pilots"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Cornerstone", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Styx"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Cosmicolor", Genre = genres.Single(g => g.Name == "Rap"), Price = 8.99M, Artist = artists.Single(a => a.Name == "M-Flo"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Cross", Genre = genres.Single(g => g.Name == "Electronic"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Justice"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Culture of Fear", Genre = genres.Single(g => g.Name == "Electronic"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Thievery Corporation"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Da Lama Ao Caos", Genre = genres.Single(g => g.Name == "Latin"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Chico Science & Nação Zumbi"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Dakshina", Genre = genres.Single(g => g.Name == "World"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Deva Premal"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Dark Side of the Moon", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Pink Floyd"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Death Magnetic", Genre = genres.Single(g => g.Name == "Metal"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Metallica"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Deep End of Down", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Above the Fold"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Deep Purple In Rock", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Deep Purple"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Deixa Entrar", Genre = genres.Single(g => g.Name == "Latin"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Falamansa"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Deja Vu", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Crosby, Stills, Nash, and Young"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Di Korpu Ku Alma", Genre = genres.Single(g => g.Name == "World"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Lura"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Diary of a Madman (Remastered)", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Ozzy Osbourne"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Diary of a Madman", Genre = genres.Single(g => g.Name == "Metal"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Ozzy Osbourne"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Dirt", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Alice in Chains"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Diver Down", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Van Halen"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Djavan Ao Vivo - Vol. 02", Genre = genres.Single(g => g.Name == "Latin"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Djavan"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Djavan Ao Vivo - Vol. 1", Genre = genres.Single(g => g.Name == "Latin"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Djavan"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Drum'n'bass for Papa", Genre = genres.Single(g => g.Name == "Electronic"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Plug"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Duluth", Genre = genres.Single(g => g.Name == "Country"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Trampled By Turtles"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Dummy", Genre = genres.Single(g => g.Name == "Electronic"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Portishead"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Duos II", Genre = genres.Single(g => g.Name == "Latin"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Luciana Souza/Romero Lubambo"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Earl Scruggs and Friends", Genre = genres.Single(g => g.Name == "Country"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Earl Scruggs"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Eden", Genre = genres.Single(g => g.Name == "Classical"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Sarah Brightman"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "El Camino", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "The Black Keys"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Elegant Gypsy", Genre = genres.Single(g => g.Name == "Jazz"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Al di Meola"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Elements Of Life", Genre = genres.Single(g => g.Name == "Electronic"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Tiësto"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Elis Regina-Minha História", Genre = genres.Single(g => g.Name == "Latin"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Elis Regina"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Emergency On Planet Earth", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Jamiroquai"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Emotion", Genre = genres.Single(g => g.Name == "World"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Papa Wemba"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "English Renaissance", Genre = genres.Single(g => g.Name == "Classical"), Price = 8.99M, Artist = artists.Single(a => a.Name == "The King's Singers"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Every Kind of Light", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "The Posies"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Faceless", Genre = genres.Single(g => g.Name == "Metal"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Godsmack"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Facelift", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Alice in Chains"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Fair Warning", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Van Halen"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Fear of a Black Planet", Genre = genres.Single(g => g.Name == "Rap"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Public Enemy"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Fear Of The Dark", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Iron Maiden"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Feels Like Home", Genre = genres.Single(g => g.Name == "Jazz"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Norah Jones"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Fireball", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Deep Purple"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Fly", Genre = genres.Single(g => g.Name == "Classical"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Sarah Brightman"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "For Those About To Rock We Salute You", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "AC/DC"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Four", Genre = genres.Single(g => g.Name == "Blues"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Blues Traveler"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Frank", Genre = genres.Single(g => g.Name == "Pop"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Amy Winehouse"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Further Down the Spiral", Genre = genres.Single(g => g.Name == "Electronic"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Nine Inch Nails"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Garage Inc. (Disc 1)", Genre = genres.Single(g => g.Name == "Metal"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Metallica"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Garage Inc. (Disc 2)", Genre = genres.Single(g => g.Name == "Metal"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Metallica"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Garbage", Genre = genres.Single(g => g.Name == "Alternative"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Garbage"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Good News For People Who Love Bad News", Genre = genres.Single(g => g.Name == "Indie"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Modest Mouse"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Gordon", Genre = genres.Single(g => g.Name == "Alternative"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Barenaked Ladies"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Górecki: Symphony No. 3", Genre = genres.Single(g => g.Name == "Classical"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Adrian Leaper & Doreen de Feis"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Greatest Hits I", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Queen"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Greatest Hits II", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Queen"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Greatest Hits", Genre = genres.Single(g => g.Name == "Electronic"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Duck Sauce"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Greatest Hits", Genre = genres.Single(g => g.Name == "Metal"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Lenny Kravitz"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Greatest Hits", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Lenny Kravitz"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Greatest Kiss", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Kiss"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Greetings from Michigan", Genre = genres.Single(g => g.Name == "Indie"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Sufjan Stevens"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Group Therapy", Genre = genres.Single(g => g.Name == "Electronic"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Above & Beyond"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Handel: The Messiah (Highlights)", Genre = genres.Single(g => g.Name == "Classical"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Scholars Baroque Ensemble"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Haydn: Symphonies 99 - 104", Genre = genres.Single(g => g.Name == "Classical"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Royal Philharmonic Orchestra"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Heart of the Night", Genre = genres.Single(g => g.Name == "Jazz"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Spyro Gyra"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Heart On", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "The Eagles of Death Metal"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Holy Diver", Genre = genres.Single(g => g.Name == "Metal"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Dio"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Homework", Genre = genres.Single(g => g.Name == "Electronic"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Daft Punk"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Hot Rocks, 1964-1971 (Disc 1)", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "The Rolling Stones"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Houses Of The Holy", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Led Zeppelin"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "How To Dismantle An Atomic Bomb", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "U2"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Human", Genre = genres.Single(g => g.Name == "Metal"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Projected"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Hunky Dory", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "David Bowie"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Hymns", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Projected"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Hysteria", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Def Leppard"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "In Absentia", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Porcupine Tree"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "In Between", Genre = genres.Single(g => g.Name == "Pop"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Paul Van Dyk"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "In Rainbows", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Radiohead"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "In Step", Genre = genres.Single(g => g.Name == "Blues"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Stevie Ray Vaughan & Double Trouble"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "In the court of the Crimson King", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "King Crimson"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "In Through The Out Door", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Led Zeppelin"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "In Your Honor [Disc 1]", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Foo Fighters"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "In Your Honor [Disc 2]", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Foo Fighters"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Indestructible", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Rancid"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Infinity", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Journey"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Into The Light", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "David Coverdale"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Introspective", Genre = genres.Single(g => g.Name == "Pop"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Pet Shop Boys"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Iron Maiden", Genre = genres.Single(g => g.Name == "Blues"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Iron Maiden"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "ISAM", Genre = genres.Single(g => g.Name == "Electronic"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Amon Tobin"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "IV", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Led Zeppelin"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Jagged Little Pill", Genre = genres.Single(g => g.Name == "Alternative"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Alanis Morissette"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Jagged Little Pill", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Alanis Morissette"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Jorge Ben Jor 25 Anos", Genre = genres.Single(g => g.Name == "Latin"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Jorge Ben"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Jota Quest-1995", Genre = genres.Single(g => g.Name == "Latin"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Jota Quest"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Kick", Genre = genres.Single(g => g.Name == "Alternative"), Price = 8.99M, Artist = artists.Single(a => a.Name == "INXS"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Kill 'Em All", Genre = genres.Single(g => g.Name == "Metal"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Metallica"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Kind of Blue", Genre = genres.Single(g => g.Name == "Jazz"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Miles Davis"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "King For A Day Fool For A Lifetime", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Faith No More"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Kiss", Genre = genres.Single(g => g.Name == "Pop"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Carly Rae Jepsen"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Last Call", Genre = genres.Single(g => g.Name == "Country"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Cayouche"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Le Freak", Genre = genres.Single(g => g.Name == "R&B"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Chic"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Le Tigre", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Le Tigre"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Led Zeppelin I", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Led Zeppelin"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Led Zeppelin II", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Led Zeppelin"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Led Zeppelin III", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Led Zeppelin"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Let There Be Rock", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "AC/DC"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Little Earthquakes", Genre = genres.Single(g => g.Name == "Alternative"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Tori Amos"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Live [Disc 1]", Genre = genres.Single(g => g.Name == "Blues"), Price = 8.99M, Artist = artists.Single(a => a.Name == "The Black Crowes"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Live [Disc 2]", Genre = genres.Single(g => g.Name == "Blues"), Price = 8.99M, Artist = artists.Single(a => a.Name == "The Black Crowes"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Live After Death", Genre = genres.Single(g => g.Name == "Metal"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Iron Maiden"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Live At Donington 1992 (Disc 1)", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Iron Maiden"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Live At Donington 1992 (Disc 2)", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Iron Maiden"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Live on Earth", Genre = genres.Single(g => g.Name == "Jazz"), Price = 8.99M, Artist = artists.Single(a => a.Name == "The Cat Empire"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Live On Two Legs [Live]", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Pearl Jam"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Living After Midnight", Genre = genres.Single(g => g.Name == "Metal"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Judas Priest"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Living", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Paddy Casey"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Load", Genre = genres.Single(g => g.Name == "Metal"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Metallica"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Love Changes Everything", Genre = genres.Single(g => g.Name == "Classical"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Sarah Brightman"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "MacArthur Park Suite", Genre = genres.Single(g => g.Name == "R&B"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Donna Summer"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Machine Head", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Deep Purple"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Magical Mystery Tour", Genre = genres.Single(g => g.Name == "Pop"), Price = 8.99M, Artist = artists.Single(a => a.Name == "The Beatles"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Mais Do Mesmo", Genre = genres.Single(g => g.Name == "Latin"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Legião Urbana"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Maquinarama", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Skank"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Marasim", Genre = genres.Single(g => g.Name == "Classical"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Jagjit Singh"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Mascagni: Cavalleria Rusticana", Genre = genres.Single(g => g.Name == "Classical"), Price = 8.99M, Artist = artists.Single(a => a.Name == "James Levine"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Master of Puppets", Genre = genres.Single(g => g.Name == "Metal"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Metallica"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Mechanics & Mathematics", Genre = genres.Single(g => g.Name == "Pop"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Venus Hum"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Mental Jewelry", Genre = genres.Single(g => g.Name == "Alternative"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Live"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Metallics", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Metallica"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "meteora", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Linkin Park"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Meus Momentos", Genre = genres.Single(g => g.Name == "Latin"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Gonzaguinha"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Mezmerize", Genre = genres.Single(g => g.Name == "Metal"), Price = 8.99M, Artist = artists.Single(a => a.Name == "System Of A Down"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Mezzanine", Genre = genres.Single(g => g.Name == "Electronic"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Massive Attack"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Miles Ahead", Genre = genres.Single(g => g.Name == "Jazz"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Miles Davis"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Milton Nascimento Ao Vivo", Genre = genres.Single(g => g.Name == "Latin"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Milton Nascimento"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Minas", Genre = genres.Single(g => g.Name == "Latin"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Milton Nascimento"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Minha Historia", Genre = genres.Single(g => g.Name == "Latin"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Chico Buarque"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Misplaced Childhood", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Marillion"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "MK III The Final Concerts [Disc 1]", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Deep Purple"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Morning Dance", Genre = genres.Single(g => g.Name == "Jazz"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Spyro Gyra"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Motley Crue Greatest Hits", Genre = genres.Single(g => g.Name == "Metal"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Mötley Crüe"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Moving Pictures", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Rush"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Mozart: Chamber Music", Genre = genres.Single(g => g.Name == "Classical"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Nash Ensemble"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Mozart: Symphonies Nos. 40 & 41", Genre = genres.Single(g => g.Name == "Classical"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Berliner Philharmoniker"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Murder Ballads", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Nick Cave and the Bad Seeds"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Music For The Jilted Generation", Genre = genres.Single(g => g.Name == "Electronic"), Price = 8.99M, Artist = artists.Single(a => a.Name == "The Prodigy"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "My Generation - The Very Best Of The Who", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "The Who"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "My Name is Skrillex", Genre = genres.Single(g => g.Name == "Electronic"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Skrillex"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Na Pista", Genre = genres.Single(g => g.Name == "Latin"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Cláudio Zoli"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Nevermind", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Nirvana"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "New Adventures In Hi-Fi", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "R.E.M."), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "New Divide", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Linkin Park"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "New York Dolls", Genre = genres.Single(g => g.Name == "Punk"), Price = 8.99M, Artist = artists.Single(a => a.Name == "New York Dolls"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "News Of The World", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Queen"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Nielsen: The Six Symphonies", Genre = genres.Single(g => g.Name == "Classical"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Göteborgs Symfoniker & Neeme Järvi"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Night At The Opera", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Queen"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Night Castle", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Trans-Siberian Orchestra"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Nkolo", Genre = genres.Single(g => g.Name == "World"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Lokua Kanza"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "No More Tears (Remastered)", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Ozzy Osbourne"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "No Prayer For The Dying", Genre = genres.Single(g => g.Name == "Metal"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Iron Maiden"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "No Security", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "The Rolling Stones"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "O Brother, Where Art Thou?", Genre = genres.Single(g => g.Name == "Country"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Alison Krauss"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "O Samba Poconé", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Skank"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "O(+>", Genre = genres.Single(g => g.Name == "R&B"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Prince"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Oceania", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "The Smashing Pumpkins"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Off the Deep End", Genre = genres.Single(g => g.Name == "Pop"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Weird Al"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "OK Computer", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Radiohead"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Olodum", Genre = genres.Single(g => g.Name == "Latin"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Olodum"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "One Love", Genre = genres.Single(g => g.Name == "Electronic"), Price = 8.99M, Artist = artists.Single(a => a.Name == "David Guetta"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Operation: Mindcrime", Genre = genres.Single(g => g.Name == "Metal"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Queensrÿche"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Opiate", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Tool"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Outbreak", Genre = genres.Single(g => g.Name == "Jazz"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Dennis Chambers"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Pachelbel: Canon & Gigue", Genre = genres.Single(g => g.Name == "Classical"), Price = 8.99M, Artist = artists.Single(a => a.Name == "English Concert & Trevor Pinnock"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Paid in Full", Genre = genres.Single(g => g.Name == "Rap"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Eric B. and Rakim"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Para Siempre", Genre = genres.Single(g => g.Name == "Latin"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Vicente Fernandez"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Pause", Genre = genres.Single(g => g.Name == "Electronic"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Four Tet"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Peace Sells... but Who's Buying", Genre = genres.Single(g => g.Name == "Metal"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Megadeth"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Physical Graffiti [Disc 1]", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Led Zeppelin"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Physical Graffiti [Disc 2]", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Led Zeppelin"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Physical Graffiti", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Led Zeppelin"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Piece Of Mind", Genre = genres.Single(g => g.Name == "Metal"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Iron Maiden"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Pinkerton", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Weezer"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Plays Metallica By Four Cellos", Genre = genres.Single(g => g.Name == "Metal"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Apocalyptica"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Pop", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "U2"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Powerslave", Genre = genres.Single(g => g.Name == "Metal"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Iron Maiden"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Prenda Minha", Genre = genres.Single(g => g.Name == "Latin"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Caetano Veloso"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Presence", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Led Zeppelin"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Pretty Hate Machine", Genre = genres.Single(g => g.Name == "Alternative"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Nine Inch Nails"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Prisoner", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "The Jezabels"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Privateering", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Mark Knopfler"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Prokofiev: Romeo & Juliet", Genre = genres.Single(g => g.Name == "Classical"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Michael Tilson Thomas"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Prokofiev: Symphony No.1", Genre = genres.Single(g => g.Name == "Classical"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Sergei Prokofiev & Yuri Temirkanov"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "PSY's Best 6th Part 1", Genre = genres.Single(g => g.Name == "Pop"), Price = 8.99M, Artist = artists.Single(a => a.Name == "PSY"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Purcell: The Fairy Queen", Genre = genres.Single(g => g.Name == "Classical"), Price = 8.99M, Artist = artists.Single(a => a.Name == "London Classical Players"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Purpendicular", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Deep Purple"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Purple", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Stone Temple Pilots"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Quanta Gente Veio Ver (Live)", Genre = genres.Single(g => g.Name == "Latin"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Gilberto Gil"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Quanta Gente Veio ver--Bônus De Carnaval", Genre = genres.Single(g => g.Name == "Jazz"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Gilberto Gil"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Quiet Songs", Genre = genres.Single(g => g.Name == "Jazz"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Aisha Duo"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Raices", Genre = genres.Single(g => g.Name == "Latin"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Los Tigres del Norte"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Raising Hell", Genre = genres.Single(g => g.Name == "Rap"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Run DMC"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Raoul and the Kings of Spain ", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Tears For Fears"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Rattle And Hum", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "U2"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Raul Seixas", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Raul Seixas"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Recovery [Explicit]", Genre = genres.Single(g => g.Name == "Rap"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Eminem"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Reign In Blood", Genre = genres.Single(g => g.Name == "Metal"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Slayer"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Relayed", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Yes"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "ReLoad", Genre = genres.Single(g => g.Name == "Metal"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Metallica"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Respighi:Pines of Rome", Genre = genres.Single(g => g.Name == "Classical"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Eugene Ormandy"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Restless and Wild", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Accept"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Retrospective I (1974-1980)", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Rush"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Revelations", Genre = genres.Single(g => g.Name == "Electronic"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Audioslave"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Revolver", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "The Beatles"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Ride the Lighting ", Genre = genres.Single(g => g.Name == "Metal"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Metallica"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Ride The Lightning", Genre = genres.Single(g => g.Name == "Metal"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Metallica"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Ring My Bell", Genre = genres.Single(g => g.Name == "R&B"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Anita Ward"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Riot Act", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Pearl Jam"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Rise of the Phoenix", Genre = genres.Single(g => g.Name == "Metal"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Before the Dawn"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Rock In Rio [CD1]", Genre = genres.Single(g => g.Name == "Metal"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Iron Maiden"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Rock In Rio [CD2]", Genre = genres.Single(g => g.Name == "Metal"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Iron Maiden"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Rock In Rio [CD2]", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Iron Maiden"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Roda De Funk", Genre = genres.Single(g => g.Name == "Latin"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Funk Como Le Gusta"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Room for Squares", Genre = genres.Single(g => g.Name == "Pop"), Price = 8.99M, Artist = artists.Single(a => a.Name == "John Mayer"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Root Down", Genre = genres.Single(g => g.Name == "Jazz"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Jimmy Smith"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Rounds", Genre = genres.Single(g => g.Name == "Electronic"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Four Tet"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Rubber Factory", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "The Black Keys"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Rust in Peace", Genre = genres.Single(g => g.Name == "Metal"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Megadeth"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Sambas De Enredo 2001", Genre = genres.Single(g => g.Name == "Latin"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Various Artists"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Santana - As Years Go By", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Santana"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Santana Live", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Santana"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Saturday Night Fever", Genre = genres.Single(g => g.Name == "R&B"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Bee Gees"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Scary Monsters and Nice Sprites", Genre = genres.Single(g => g.Name == "Electronic"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Skrillex"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Scheherazade", Genre = genres.Single(g => g.Name == "Classical"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Chicago Symphony Orchestra & Fritz Reiner"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "SCRIABIN: Vers la flamme", Genre = genres.Single(g => g.Name == "Classical"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Christopher O'Riley"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Second Coming", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "The Stone Roses"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Serie Sem Limite (Disc 1)", Genre = genres.Single(g => g.Name == "Latin"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Tim Maia"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Serie Sem Limite (Disc 2)", Genre = genres.Single(g => g.Name == "Latin"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Tim Maia"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Serious About Men", Genre = genres.Single(g => g.Name == "Rap"), Price = 8.99M, Artist = artists.Single(a => a.Name == "The Rubberbandits"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Seventh Son of a Seventh Son", Genre = genres.Single(g => g.Name == "Metal"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Iron Maiden"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Short Bus", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Filter"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Sibelius: Finlandia", Genre = genres.Single(g => g.Name == "Classical"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Berliner Philharmoniker"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Singles Collection", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "David Bowie"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Six Degrees of Inner Turbulence", Genre = genres.Single(g => g.Name == "Metal"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Dream Theater"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Slave To The Empire", Genre = genres.Single(g => g.Name == "Metal"), Price = 8.99M, Artist = artists.Single(a => a.Name == "T&N"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Slaves And Masters", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Deep Purple"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Slouching Towards Bethlehem", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Robert James"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Smash", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "The Offspring"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Something Special", Genre = genres.Single(g => g.Name == "Country"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Dolly Parton"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Somewhere in Time", Genre = genres.Single(g => g.Name == "Metal"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Iron Maiden"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Song(s) You Know By Heart", Genre = genres.Single(g => g.Name == "Country"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Jimmy Buffett"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Sound of Music", Genre = genres.Single(g => g.Name == "Punk"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Adicts"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "South American Getaway", Genre = genres.Single(g => g.Name == "Classical"), Price = 8.99M, Artist = artists.Single(a => a.Name == "The 12 Cellists of The Berlin Philharmonic"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Sozinho Remix Ao Vivo", Genre = genres.Single(g => g.Name == "Latin"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Caetano Veloso"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Speak of the Devil", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Ozzy Osbourne"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Spiritual State", Genre = genres.Single(g => g.Name == "Rap"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Nujabes"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "St. Anger", Genre = genres.Single(g => g.Name == "Metal"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Metallica"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Still Life", Genre = genres.Single(g => g.Name == "Metal"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Opeth"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Stop Making Sense", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Talking Heads"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Stormbringer", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Deep Purple"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Stranger than Fiction", Genre = genres.Single(g => g.Name == "Punk"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Bad Religion"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Strauss: Waltzes", Genre = genres.Single(g => g.Name == "Classical"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Eugene Ormandy"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Supermodified", Genre = genres.Single(g => g.Name == "Electronic"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Amon Tobin"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Supernatural", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Santana"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Surfing with the Alien (Remastered)", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Joe Satriani"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Switched-On Bach", Genre = genres.Single(g => g.Name == "Classical"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Wendy Carlos"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Symphony", Genre = genres.Single(g => g.Name == "Classical"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Sarah Brightman"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Szymanowski: Piano Works, Vol. 1", Genre = genres.Single(g => g.Name == "Classical"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Martin Roscoe"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Tchaikovsky: The Nutcracker", Genre = genres.Single(g => g.Name == "Classical"), Price = 8.99M, Artist = artists.Single(a => a.Name == "London Symphony Orchestra"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Ted Nugent", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Ted Nugent"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Teflon Don", Genre = genres.Single(g => g.Name == "Rap"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Rick Ross"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Tell Another Joke at the Ol' Choppin' Block", Genre = genres.Single(g => g.Name == "Indie"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Danielson Famile"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Temple of the Dog", Genre = genres.Single(g => g.Name == "Electronic"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Temple of the Dog"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Ten", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Pearl Jam"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Texas Flood", Genre = genres.Single(g => g.Name == "Blues"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Stevie Ray Vaughan"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "The Battle Rages On", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Deep Purple"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "The Beast Live", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Paul D'Ianno"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "The Best Of 1980-1990", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "U2"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "The Best of 1990–2000", Genre = genres.Single(g => g.Name == "Classical"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Sarah Brightman"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "The Best of Beethoven", Genre = genres.Single(g => g.Name == "Classical"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Nicolaus Esterhazy Sinfonia"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "The Best Of Billy Cobham", Genre = genres.Single(g => g.Name == "Jazz"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Billy Cobham"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "The Best of Ed Motta", Genre = genres.Single(g => g.Name == "Latin"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Ed Motta"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "The Best Of Van Halen, Vol. I", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Van Halen"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "The Bridge", Genre = genres.Single(g => g.Name == "R&B"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Melanie Fiona"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "The Cage", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Tygers of Pan Tang"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "The Chicago Transit Authority", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Chicago "), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "The Chronic", Genre = genres.Single(g => g.Name == "Rap"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Dr. Dre"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "The Colour And The Shape", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Foo Fighters"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "The Crane Wife", Genre = genres.Single(g => g.Name == "Alternative"), Price = 8.99M, Artist = artists.Single(a => a.Name == "The Decemberists"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "The Cream Of Clapton", Genre = genres.Single(g => g.Name == "Blues"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Eric Clapton"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "The Cure", Genre = genres.Single(g => g.Name == "Pop"), Price = 8.99M, Artist = artists.Single(a => a.Name == "The Cure"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "The Dark Side Of The Moon", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Pink Floyd"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "The Divine Conspiracy", Genre = genres.Single(g => g.Name == "Metal"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Epica"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "The Doors", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "The Doors"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "The Dream of the Blue Turtles", Genre = genres.Single(g => g.Name == "Pop"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Sting"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "The Essential Miles Davis [Disc 1]", Genre = genres.Single(g => g.Name == "Jazz"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Miles Davis"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "The Essential Miles Davis [Disc 2]", Genre = genres.Single(g => g.Name == "Jazz"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Miles Davis"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "The Final Concerts (Disc 2)", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Deep Purple"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "The Final Frontier", Genre = genres.Single(g => g.Name == "Metal"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Iron Maiden"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "The Head and the Heart", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "The Head and the Heart"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "The Joshua Tree", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "U2"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "The Last Night of the Proms", Genre = genres.Single(g => g.Name == "Classical"), Price = 8.99M, Artist = artists.Single(a => a.Name == "BBC Concert Orchestra"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "The Lumineers", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "The Lumineers"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "The Number of The Beast", Genre = genres.Single(g => g.Name == "Metal"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Iron Maiden"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "The Number of The Beast", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Iron Maiden"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "The Police Greatest Hits", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "The Police"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "The Song Remains The Same (Disc 1)", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Led Zeppelin"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "The Song Remains The Same (Disc 2)", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Led Zeppelin"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "The Southern Harmony and Musical Companion", Genre = genres.Single(g => g.Name == "Blues"), Price = 8.99M, Artist = artists.Single(a => a.Name == "The Black Crowes"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "The Spade", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Butch Walker & The Black Widows"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "The Stone Roses", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "The Stone Roses"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "The Suburbs", Genre = genres.Single(g => g.Name == "Indie"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Arcade Fire"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "The Three Tenors Disc1/Disc2", Genre = genres.Single(g => g.Name == "Classical"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Carreras, Pavarotti, Domingo"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "The Trees They Grow So High", Genre = genres.Single(g => g.Name == "Classical"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Sarah Brightman"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "The Wall", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Pink Floyd"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "The X Factor", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Iron Maiden"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Them Crooked Vultures", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Them Crooked Vultures"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "This Is Happening", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "LCD Soundsystem"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Thunder, Lightning, Strike", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "The Go! Team"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Time to Say Goodbye", Genre = genres.Single(g => g.Name == "Classical"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Sarah Brightman"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Time, Love & Tenderness", Genre = genres.Single(g => g.Name == "Pop"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Michael Bolton"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Tomorrow Starts Today", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Mobile"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Tribute", Genre = genres.Single(g => g.Name == "Metal"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Ozzy Osbourne"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Tuesday Night Music Club", Genre = genres.Single(g => g.Name == "Alternative"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Sheryl Crow"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Umoja", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "BLØF"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Under the Pink", Genre = genres.Single(g => g.Name == "Alternative"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Tori Amos"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Undertow", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Tool"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Un-Led-Ed", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Dread Zeppelin"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Unplugged [Live]", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Kiss"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Unplugged", Genre = genres.Single(g => g.Name == "Blues"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Eric Clapton"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Unplugged", Genre = genres.Single(g => g.Name == "Latin"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Eric Clapton"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Untrue", Genre = genres.Single(g => g.Name == "Electronic"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Burial"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Use Your Illusion I", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Guns N' Roses"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Use Your Illusion II", Genre = genres.Single(g => g.Name == "Metal"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Guns N' Roses"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Use Your Illusion II", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Guns N' Roses"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Van Halen III", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Van Halen"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Van Halen", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Van Halen"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Version 2.0", Genre = genres.Single(g => g.Name == "Alternative"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Garbage"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Vinicius De Moraes", Genre = genres.Single(g => g.Name == "Latin"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Vinícius De Moraes"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Virtual XI", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Iron Maiden"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Voodoo Lounge", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "The Rolling Stones"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Vozes do MPB", Genre = genres.Single(g => g.Name == "Latin"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Various Artists"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Vs.", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Pearl Jam"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Wagner: Favourite Overtures", Genre = genres.Single(g => g.Name == "Classical"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Sir Georg Solti & Wiener Philharmoniker"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Walking Into Clarksdale", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Page & Plant"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Wapi Yo", Genre = genres.Single(g => g.Name == "World"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Lokua Kanza"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "War", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "U2"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Warner 25 Anos", Genre = genres.Single(g => g.Name == "Jazz"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Antônio Carlos Jobim"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Wasteland R&Btheque", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Raunchy"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Watermark", Genre = genres.Single(g => g.Name == "Electronic"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Enya"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "We Were Exploding Anyway", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "65daysofstatic"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Weill: The Seven Deadly Sins", Genre = genres.Single(g => g.Name == "Classical"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Orchestre de l'Opéra de Lyon"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "White Pony", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Deftones"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Who's Next", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "The Who"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Wish You Were Here", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Pink Floyd"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "With Oden on Our Side", Genre = genres.Single(g => g.Name == "Metal"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Amon Amarth"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Worlds", Genre = genres.Single(g => g.Name == "Jazz"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Aaron Goldberg"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Worship Music", Genre = genres.Single(g => g.Name == "Metal"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Anthrax"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "X&Y", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Coldplay"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Xinti", Genre = genres.Single(g => g.Name == "World"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Sara Tavares"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Yano", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Yano"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Yesterday Once More Disc 1/Disc 2", Genre = genres.Single(g => g.Name == "Pop"), Price = 8.99M, Artist = artists.Single(a => a.Name == "The Carpenters"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Zooropa", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "U2"), AlbumArtUrl = imgUrl }); + context.Albums.Add(new Album { Title = "Zoso", Genre = genres.Single(g => g.Name == "Rock"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Led Zeppelin"), AlbumArtUrl = imgUrl }); - context.Albums.AddRange(albums); + for (int albumId = 0; albumId < context.Albums.Count; albumId++) + { + //Bug: albumId not populated due to lack of EF. + context.Albums[albumId].AlbumId = albumId + 1; + context.Albums[albumId].GenreId = context.Albums[albumId].Genre.GenreId; + } } private static List AddArtists(MusicStoreEntities context) @@ -4029,11 +808,20 @@ namespace MvcMusicStore.Models new Artist { Name = "Yes" }, new Artist { Name = "Yo-Yo Ma" }, new Artist { Name = "Zeca Pagodinho" }, - new Artist { Name = "אריק אינשטיין" } + new Artist { Name = "אריק אינשטיין"} }; - context.Artists.AddRange(artists); + //Bug: ForEach not found + //artists.ForEach(s => context.Artists.Add(s)); + int artistId = 1; + foreach (var artist in artists) + { + //Bug: ArtistId not populated automatically due to lack of EF. + artist.ArtistId = artistId++; + context.Artists.Add(artist); + } + context.SaveChanges(); return artists; } @@ -4058,8 +846,17 @@ namespace MvcMusicStore.Models new Genre { Name = "World" } }; - context.Genres.AddRange(genres); + //Bug: ForEach not found + //genres.ForEach(s => context.Genres.Add(s)); + int genreId = 1; + foreach (var genre in genres) + { + //Bug: GenreId not populated automatically due to lack of EF. + genre.GenreId = genreId++; + context.Genres.Add(genre); + } + context.SaveChanges(); return genres; } } diff --git a/src/MusicStore/Models/ShoppingCart.cs b/src/MusicStore/Models/ShoppingCart.cs index 31c9b0fada..8774d997c5 100644 --- a/src/MusicStore/Models/ShoppingCart.cs +++ b/src/MusicStore/Models/ShoppingCart.cs @@ -1,159 +1,202 @@ -using System; -using System.Linq; -using System.Threading.Tasks; +// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information. + using Microsoft.AspNet.Abstractions; using Microsoft.AspNet.Mvc; -using Microsoft.Data.Entity; +using System; +using System.Collections.Generic; +using System.Linq; -namespace MvcMusicStore.Models +namespace MusicStore.Models { - public class ShoppingCart + public partial class ShoppingCart { + MusicStoreEntities _db; + string ShoppingCartId { get; set; } + + public ShoppingCart(MusicStoreEntities db) + { + _db = db; + } + public const string CartSessionKey = "CartId"; - private readonly MusicStoreEntities _storeContext; - private readonly string _cartId; - - private ShoppingCart(MusicStoreEntities storeContext, string cartId) + public static ShoppingCart GetCart(MusicStoreEntities db, HttpContext context) { - _storeContext = storeContext; - _cartId = cartId; + var cart = new ShoppingCart(db); + cart.ShoppingCartId = cart.GetCartId(context); + return cart; } - public static ShoppingCart GetCart(MusicStoreEntities storeContext, Controller controller) + //TODO: Not used by anyone. Not sure why we have this. + // Helper method to simplify shopping cart calls + //public static ShoppingCart GetCart(MusicStoreEntities db, Controller controller) + //{ + // return GetCart(db, controller.HttpContext); + //} + + public void AddToCart(Album album) { - return new ShoppingCart(storeContext, GetCartId(controller.Context)); - } - - private static string GetCartId(HttpContext context) - { - throw new NotImplementedException(); - //if (context.Session[CartSessionKey] == null) - //{ - // var username = context.User.Identity.Name; - - // context.Session[CartSessionKey] = !string.IsNullOrWhiteSpace(username) - // ? username - // : Guid.NewGuid().ToString(); - //} - - //return context.Session[CartSessionKey].ToString(); - } - - public async Task AddToCart(Album album) - { - var cartItem = await GetCartItem(album.AlbumId); + // Get the matching cart and album instances + var cartItem = _db.Carts.SingleOrDefault( + c => c.CartId == ShoppingCartId + && c.AlbumId == album.AlbumId); if (cartItem == null) { + // Create a new cart item if no cart item exists cartItem = new Cart { AlbumId = album.AlbumId, - CartId = _cartId, + CartId = ShoppingCartId, Count = 1, DateCreated = DateTime.Now }; - _storeContext.Carts.Add(cartItem); + _db.Carts.Add(cartItem); } else { + // If the item does exist in the cart, then add one to the quantity cartItem.Count++; } } - public async Task RemoveFromCart(int id) + public int RemoveFromCart(int id) { - var cartItem = await GetCartItem(id); + // Get the cart + var cartItem = _db.Carts.Single( + cart => cart.CartId == ShoppingCartId + && cart.RecordId == id); + + int itemCount = 0; if (cartItem != null) { if (cartItem.Count > 1) { - return --cartItem.Count; + cartItem.Count--; + itemCount = cartItem.Count; + } + else + { + _db.Carts.Remove(cartItem); } - _storeContext.Carts.Remove(cartItem); } - return 0; + return itemCount; } - private Task GetCartItem(int albumId) + public void EmptyCart() { - return _storeContext.Carts.SingleOrDefaultAsync( - c => c.CartId == _cartId && c.AlbumId == albumId); + var cartItems = _db.Carts.Where(cart => cart.CartId == ShoppingCartId); + + foreach (var cartItem in cartItems) + { + _db.Carts.Remove(cartItem); + } + } - public IQueryable GetCartItems() + public List GetCartItems() { - return _storeContext.Carts.Where(c => c.CartId == _cartId); + return _db.Carts.Where(cart => cart.CartId == ShoppingCartId).ToList(); } - public Task GetCount() + public int GetCount() { - return _storeContext.Carts - .Where(c => c.CartId == _cartId) - .Select(c => c.Count) - .SumAsync(); + // Get the count of each item in the cart and sum them up + int? count = (from cartItems in _db.Carts + where cartItems.CartId == ShoppingCartId + select (int?)cartItems.Count).Sum(); + + // Return 0 if all entries are null + return count ?? 0; } - public Task GetTotal() + public decimal GetTotal() { - return _storeContext.Carts - .Where(c => c.CartId == _cartId) - .Select(c => c.Count * c.Album.Price) - .SumAsync(); + // Multiply album price by count of that album to get + // the current price for each of those albums in the cart + // sum all album price totals to get the cart total + decimal? total = (from cartItems in _db.Carts + where cartItems.CartId == ShoppingCartId + select (int?)cartItems.Count * cartItems.Album.Price).Sum(); + return total ?? decimal.Zero; } - public async Task CreateOrder(Order order) + public int CreateOrder(Order order) { decimal orderTotal = 0; - var cartItems = await _storeContext.Carts - .Where(c => c.CartId == _cartId) - .Include(c => c.Album) - .ToListAsync(); + var cartItems = GetCartItems(); + // Iterate over the items in the cart, adding the order details for each foreach (var item in cartItems) { - order.OrderDetails.Add(new OrderDetail + //Bug: Missing EF + //var album = _db.Albums.Find(item.AlbumId); + var album = _db.Albums.Single(a => a.AlbumId == item.AlbumId); + + var orderDetail = new OrderDetail { AlbumId = item.AlbumId, OrderId = order.OrderId, - UnitPrice = item.Album.Price, + UnitPrice = album.Price, Quantity = item.Count, - }); + }; - orderTotal += item.Count * item.Album.Price; + // Set the order total of the shopping cart + orderTotal += (item.Count * item.Album.Price); + + _db.OrderDetails.Add(orderDetail); } + // Set the order's total to the orderTotal count order.Total = orderTotal; - await EmptyCart(); + // Empty the shopping cart + EmptyCart(); + // Return the OrderId as the confirmation number return order.OrderId; } - private async Task EmptyCart() + // We're using HttpContextBase to allow access to cookies. + public string GetCartId(HttpContext context) { - foreach (var cartItem in await _storeContext.Carts.Where( - c => c.CartId == _cartId).ToListAsync()) - { - _storeContext.Carts.Remove(cartItem); - } + //Bug: Session not in scope. But we should substitute this with cookies when available. + //if (context.Session[CartSessionKey] == null) + //{ + // if (!string.IsNullOrWhiteSpace(context.User.Identity.Name)) + // { + // context.Session[CartSessionKey] = context.User.Identity.Name; + // } + // else + // { + // // Generate a new random GUID using System.Guid class + // Guid tempCartId = Guid.NewGuid(); + + // // Send tempCartId back to client as a cookie + // context.Session[CartSessionKey] = tempCartId.ToString(); + // } + //} + + //return context.Session[CartSessionKey].ToString(); + return string.Empty; } - public async Task MigrateCart(string userName) + // When a user has logged in, migrate their shopping cart to + // be associated with their username + public void MigrateCart(string userName) { - var carts = await _storeContext.Carts.Where(c => c.CartId == _cartId).ToListAsync(); + var shoppingCart = _db.Carts.Where(c => c.CartId == ShoppingCartId); - foreach (var item in carts) + foreach (Cart item in shoppingCart) { item.CartId = userName; } - await _storeContext.SaveChangesAsync(); } } } \ No newline at end of file diff --git a/src/MusicStore/Run.cmd b/src/MusicStore/Run.cmd new file mode 100644 index 0000000000..9fa1a25ea7 --- /dev/null +++ b/src/MusicStore/Run.cmd @@ -0,0 +1 @@ +"%ProgramFiles(x86)%\iis Express\iisexpress.exe" /port:5001 /path:"%cd%" \ No newline at end of file diff --git a/src/MusicStore/Scripts/_references.js b/src/MusicStore/Scripts/_references.js new file mode 100644 index 0000000000..f195ad3bea Binary files /dev/null and b/src/MusicStore/Scripts/_references.js differ diff --git a/src/MusicStore/Scripts/bootstrap.js b/src/MusicStore/Scripts/bootstrap.js new file mode 100644 index 0000000000..5aa9982eda --- /dev/null +++ b/src/MusicStore/Scripts/bootstrap.js @@ -0,0 +1,2014 @@ +/* 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. Insofar as a script file is dual licensed under GPL, + * Microsoft neither took the code under GPL nor distributes it thereunder but + * under the terms set out in this paragraph. All notices and licenses + * below are for informational purposes only. + * + * NUGET: END LICENSE TEXT */ + +/** +* bootstrap.js v3.0.0 by @fat and @mdo +* Copyright 2013 Twitter Inc. +* http://www.apache.org/licenses/LICENSE-2.0 +*/ +if (!jQuery) { throw new Error("Bootstrap requires jQuery") } + +/* ======================================================================== + * Bootstrap: transition.js v3.0.0 + * http://twbs.github.com/bootstrap/javascript.html#transitions + * ======================================================================== + * Copyright 2013 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ======================================================================== */ + + ++function ($) { "use strict"; + + // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/) + // ============================================================ + + function transitionEnd() { + var el = document.createElement('bootstrap') + + var transEndEventNames = { + 'WebkitTransition' : 'webkitTransitionEnd' + , 'MozTransition' : 'transitionend' + , 'OTransition' : 'oTransitionEnd otransitionend' + , 'transition' : 'transitionend' + } + + for (var name in transEndEventNames) { + if (el.style[name] !== undefined) { + return { end: transEndEventNames[name] } + } + } + } + + // http://blog.alexmaccaw.com/css-transitions + $.fn.emulateTransitionEnd = function (duration) { + var called = false, $el = this + $(this).one($.support.transition.end, function () { called = true }) + var callback = function () { if (!called) $($el).trigger($.support.transition.end) } + setTimeout(callback, duration) + return this + } + + $(function () { + $.support.transition = transitionEnd() + }) + +}(window.jQuery); + +/* ======================================================================== + * Bootstrap: alert.js v3.0.0 + * http://twbs.github.com/bootstrap/javascript.html#alerts + * ======================================================================== + * Copyright 2013 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ======================================================================== */ + + ++function ($) { "use strict"; + + // ALERT CLASS DEFINITION + // ====================== + + var dismiss = '[data-dismiss="alert"]' + var Alert = function (el) { + $(el).on('click', dismiss, this.close) + } + + Alert.prototype.close = function (e) { + var $this = $(this) + var selector = $this.attr('data-target') + + if (!selector) { + selector = $this.attr('href') + selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7 + } + + var $parent = $(selector) + + if (e) e.preventDefault() + + if (!$parent.length) { + $parent = $this.hasClass('alert') ? $this : $this.parent() + } + + $parent.trigger(e = $.Event('close.bs.alert')) + + if (e.isDefaultPrevented()) return + + $parent.removeClass('in') + + function removeElement() { + $parent.trigger('closed.bs.alert').remove() + } + + $.support.transition && $parent.hasClass('fade') ? + $parent + .one($.support.transition.end, removeElement) + .emulateTransitionEnd(150) : + removeElement() + } + + + // ALERT PLUGIN DEFINITION + // ======================= + + var old = $.fn.alert + + $.fn.alert = function (option) { + return this.each(function () { + var $this = $(this) + var data = $this.data('bs.alert') + + if (!data) $this.data('bs.alert', (data = new Alert(this))) + if (typeof option == 'string') data[option].call($this) + }) + } + + $.fn.alert.Constructor = Alert + + + // ALERT NO CONFLICT + // ================= + + $.fn.alert.noConflict = function () { + $.fn.alert = old + return this + } + + + // ALERT DATA-API + // ============== + + $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close) + +}(window.jQuery); + +/* ======================================================================== + * Bootstrap: button.js v3.0.0 + * http://twbs.github.com/bootstrap/javascript.html#buttons + * ======================================================================== + * Copyright 2013 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ======================================================================== */ + + ++function ($) { "use strict"; + + // BUTTON PUBLIC CLASS DEFINITION + // ============================== + + var Button = function (element, options) { + this.$element = $(element) + this.options = $.extend({}, Button.DEFAULTS, options) + } + + Button.DEFAULTS = { + loadingText: 'loading...' + } + + Button.prototype.setState = function (state) { + var d = 'disabled' + var $el = this.$element + var val = $el.is('input') ? 'val' : 'html' + var data = $el.data() + + state = state + 'Text' + + if (!data.resetText) $el.data('resetText', $el[val]()) + + $el[val](data[state] || this.options[state]) + + // push to event loop to allow forms to submit + setTimeout(function () { + state == 'loadingText' ? + $el.addClass(d).attr(d, d) : + $el.removeClass(d).removeAttr(d); + }, 0) + } + + Button.prototype.toggle = function () { + var $parent = this.$element.closest('[data-toggle="buttons"]') + + if ($parent.length) { + var $input = this.$element.find('input') + .prop('checked', !this.$element.hasClass('active')) + .trigger('change') + if ($input.prop('type') === 'radio') $parent.find('.active').removeClass('active') + } + + this.$element.toggleClass('active') + } + + + // BUTTON PLUGIN DEFINITION + // ======================== + + var old = $.fn.button + + $.fn.button = function (option) { + return this.each(function () { + var $this = $(this) + var data = $this.data('bs.button') + var options = typeof option == 'object' && option + + if (!data) $this.data('bs.button', (data = new Button(this, options))) + + if (option == 'toggle') data.toggle() + else if (option) data.setState(option) + }) + } + + $.fn.button.Constructor = Button + + + // BUTTON NO CONFLICT + // ================== + + $.fn.button.noConflict = function () { + $.fn.button = old + return this + } + + + // BUTTON DATA-API + // =============== + + $(document).on('click.bs.button.data-api', '[data-toggle^=button]', function (e) { + var $btn = $(e.target) + if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn') + $btn.button('toggle') + e.preventDefault() + }) + +}(window.jQuery); + +/* ======================================================================== + * Bootstrap: carousel.js v3.0.0 + * http://twbs.github.com/bootstrap/javascript.html#carousel + * ======================================================================== + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ======================================================================== */ + + ++function ($) { "use strict"; + + // CAROUSEL CLASS DEFINITION + // ========================= + + var Carousel = function (element, options) { + this.$element = $(element) + this.$indicators = this.$element.find('.carousel-indicators') + this.options = options + this.paused = + this.sliding = + this.interval = + this.$active = + this.$items = null + + this.options.pause == 'hover' && this.$element + .on('mouseenter', $.proxy(this.pause, this)) + .on('mouseleave', $.proxy(this.cycle, this)) + } + + Carousel.DEFAULTS = { + interval: 5000 + , pause: 'hover' + , wrap: true + } + + Carousel.prototype.cycle = function (e) { + e || (this.paused = false) + + this.interval && clearInterval(this.interval) + + this.options.interval + && !this.paused + && (this.interval = setInterval($.proxy(this.next, this), this.options.interval)) + + return this + } + + Carousel.prototype.getActiveIndex = function () { + this.$active = this.$element.find('.item.active') + this.$items = this.$active.parent().children() + + return this.$items.index(this.$active) + } + + Carousel.prototype.to = function (pos) { + var that = this + var activeIndex = this.getActiveIndex() + + if (pos > (this.$items.length - 1) || pos < 0) return + + if (this.sliding) return this.$element.one('slid', function () { that.to(pos) }) + if (activeIndex == pos) return this.pause().cycle() + + return this.slide(pos > activeIndex ? 'next' : 'prev', $(this.$items[pos])) + } + + Carousel.prototype.pause = function (e) { + e || (this.paused = true) + + if (this.$element.find('.next, .prev').length && $.support.transition.end) { + this.$element.trigger($.support.transition.end) + this.cycle(true) + } + + this.interval = clearInterval(this.interval) + + return this + } + + Carousel.prototype.next = function () { + if (this.sliding) return + return this.slide('next') + } + + Carousel.prototype.prev = function () { + if (this.sliding) return + return this.slide('prev') + } + + Carousel.prototype.slide = function (type, next) { + var $active = this.$element.find('.item.active') + var $next = next || $active[type]() + var isCycling = this.interval + var direction = type == 'next' ? 'left' : 'right' + var fallback = type == 'next' ? 'first' : 'last' + var that = this + + if (!$next.length) { + if (!this.options.wrap) return + $next = this.$element.find('.item')[fallback]() + } + + this.sliding = true + + isCycling && this.pause() + + var e = $.Event('slide.bs.carousel', { relatedTarget: $next[0], direction: direction }) + + if ($next.hasClass('active')) return + + if (this.$indicators.length) { + this.$indicators.find('.active').removeClass('active') + this.$element.one('slid', function () { + var $nextIndicator = $(that.$indicators.children()[that.getActiveIndex()]) + $nextIndicator && $nextIndicator.addClass('active') + }) + } + + if ($.support.transition && this.$element.hasClass('slide')) { + this.$element.trigger(e) + if (e.isDefaultPrevented()) return + $next.addClass(type) + $next[0].offsetWidth // force reflow + $active.addClass(direction) + $next.addClass(direction) + $active + .one($.support.transition.end, function () { + $next.removeClass([type, direction].join(' ')).addClass('active') + $active.removeClass(['active', direction].join(' ')) + that.sliding = false + setTimeout(function () { that.$element.trigger('slid') }, 0) + }) + .emulateTransitionEnd(600) + } else { + this.$element.trigger(e) + if (e.isDefaultPrevented()) return + $active.removeClass('active') + $next.addClass('active') + this.sliding = false + this.$element.trigger('slid') + } + + isCycling && this.cycle() + + return this + } + + + // CAROUSEL PLUGIN DEFINITION + // ========================== + + var old = $.fn.carousel + + $.fn.carousel = function (option) { + return this.each(function () { + var $this = $(this) + var data = $this.data('bs.carousel') + var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option) + var action = typeof option == 'string' ? option : options.slide + + if (!data) $this.data('bs.carousel', (data = new Carousel(this, options))) + if (typeof option == 'number') data.to(option) + else if (action) data[action]() + else if (options.interval) data.pause().cycle() + }) + } + + $.fn.carousel.Constructor = Carousel + + + // CAROUSEL NO CONFLICT + // ==================== + + $.fn.carousel.noConflict = function () { + $.fn.carousel = old + return this + } + + + // CAROUSEL DATA-API + // ================= + + $(document).on('click.bs.carousel.data-api', '[data-slide], [data-slide-to]', function (e) { + var $this = $(this), href + var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7 + var options = $.extend({}, $target.data(), $this.data()) + var slideIndex = $this.attr('data-slide-to') + if (slideIndex) options.interval = false + + $target.carousel(options) + + if (slideIndex = $this.attr('data-slide-to')) { + $target.data('bs.carousel').to(slideIndex) + } + + e.preventDefault() + }) + + $(window).on('load', function () { + $('[data-ride="carousel"]').each(function () { + var $carousel = $(this) + $carousel.carousel($carousel.data()) + }) + }) + +}(window.jQuery); + +/* ======================================================================== + * Bootstrap: collapse.js v3.0.0 + * http://twbs.github.com/bootstrap/javascript.html#collapse + * ======================================================================== + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ======================================================================== */ + + ++function ($) { "use strict"; + + // COLLAPSE PUBLIC CLASS DEFINITION + // ================================ + + var Collapse = function (element, options) { + this.$element = $(element) + this.options = $.extend({}, Collapse.DEFAULTS, options) + this.transitioning = null + + if (this.options.parent) this.$parent = $(this.options.parent) + if (this.options.toggle) this.toggle() + } + + Collapse.DEFAULTS = { + toggle: true + } + + Collapse.prototype.dimension = function () { + var hasWidth = this.$element.hasClass('width') + return hasWidth ? 'width' : 'height' + } + + Collapse.prototype.show = function () { + if (this.transitioning || this.$element.hasClass('in')) return + + var startEvent = $.Event('show.bs.collapse') + this.$element.trigger(startEvent) + if (startEvent.isDefaultPrevented()) return + + var actives = this.$parent && this.$parent.find('> .panel > .in') + + if (actives && actives.length) { + var hasData = actives.data('bs.collapse') + if (hasData && hasData.transitioning) return + actives.collapse('hide') + hasData || actives.data('bs.collapse', null) + } + + var dimension = this.dimension() + + this.$element + .removeClass('collapse') + .addClass('collapsing') + [dimension](0) + + this.transitioning = 1 + + var complete = function () { + this.$element + .removeClass('collapsing') + .addClass('in') + [dimension]('auto') + this.transitioning = 0 + this.$element.trigger('shown.bs.collapse') + } + + if (!$.support.transition) return complete.call(this) + + var scrollSize = $.camelCase(['scroll', dimension].join('-')) + + this.$element + .one($.support.transition.end, $.proxy(complete, this)) + .emulateTransitionEnd(350) + [dimension](this.$element[0][scrollSize]) + } + + Collapse.prototype.hide = function () { + if (this.transitioning || !this.$element.hasClass('in')) return + + var startEvent = $.Event('hide.bs.collapse') + this.$element.trigger(startEvent) + if (startEvent.isDefaultPrevented()) return + + var dimension = this.dimension() + + this.$element + [dimension](this.$element[dimension]()) + [0].offsetHeight + + this.$element + .addClass('collapsing') + .removeClass('collapse') + .removeClass('in') + + this.transitioning = 1 + + var complete = function () { + this.transitioning = 0 + this.$element + .trigger('hidden.bs.collapse') + .removeClass('collapsing') + .addClass('collapse') + } + + if (!$.support.transition) return complete.call(this) + + this.$element + [dimension](0) + .one($.support.transition.end, $.proxy(complete, this)) + .emulateTransitionEnd(350) + } + + Collapse.prototype.toggle = function () { + this[this.$element.hasClass('in') ? 'hide' : 'show']() + } + + + // COLLAPSE PLUGIN DEFINITION + // ========================== + + var old = $.fn.collapse + + $.fn.collapse = function (option) { + return this.each(function () { + var $this = $(this) + var data = $this.data('bs.collapse') + var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option) + + if (!data) $this.data('bs.collapse', (data = new Collapse(this, options))) + if (typeof option == 'string') data[option]() + }) + } + + $.fn.collapse.Constructor = Collapse + + + // COLLAPSE NO CONFLICT + // ==================== + + $.fn.collapse.noConflict = function () { + $.fn.collapse = old + return this + } + + + // COLLAPSE DATA-API + // ================= + + $(document).on('click.bs.collapse.data-api', '[data-toggle=collapse]', function (e) { + var $this = $(this), href + var target = $this.attr('data-target') + || e.preventDefault() + || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7 + var $target = $(target) + var data = $target.data('bs.collapse') + var option = data ? 'toggle' : $this.data() + var parent = $this.attr('data-parent') + var $parent = parent && $(parent) + + if (!data || !data.transitioning) { + if ($parent) $parent.find('[data-toggle=collapse][data-parent="' + parent + '"]').not($this).addClass('collapsed') + $this[$target.hasClass('in') ? 'addClass' : 'removeClass']('collapsed') + } + + $target.collapse(option) + }) + +}(window.jQuery); + +/* ======================================================================== + * Bootstrap: dropdown.js v3.0.0 + * http://twbs.github.com/bootstrap/javascript.html#dropdowns + * ======================================================================== + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ======================================================================== */ + + ++function ($) { "use strict"; + + // DROPDOWN CLASS DEFINITION + // ========================= + + var backdrop = '.dropdown-backdrop' + var toggle = '[data-toggle=dropdown]' + var Dropdown = function (element) { + var $el = $(element).on('click.bs.dropdown', this.toggle) + } + + Dropdown.prototype.toggle = function (e) { + var $this = $(this) + + if ($this.is('.disabled, :disabled')) return + + var $parent = getParent($this) + var isActive = $parent.hasClass('open') + + clearMenus() + + if (!isActive) { + if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) { + // if mobile we we use a backdrop because click events don't delegate + $('