+
+
+ @if(TempData.ContainsKey("BasketInoperativeMsg"))
+ {
+
+ @TempData["BasketInoperativeMsg"]
+
+ }
+
@if (Model.CatalogItems.Count() > 0)
{
diff --git a/src/Web/WebMVC/Views/Shared/Components/Cart/Default.cshtml b/src/Web/WebMVC/Views/Shared/Components/Cart/Default.cshtml
index 4c8374f66..bffed722b 100644
--- a/src/Web/WebMVC/Views/Shared/Components/Cart/Default.cshtml
+++ b/src/Web/WebMVC/Views/Shared/Components/Cart/Default.cshtml
@@ -7,14 +7,25 @@
-
-
-

-
-
- @Model.ItemsCount
-
+ asp-action="Index">
+ @if (ViewBag.IsBasketInoperative == true)
+ {
+
+

+
+
+ X
+
+ }
+ else
+ {
+
+

+
+
+ @Model.ItemsCount
+
+ }
diff --git a/src/Web/WebMVC/Views/Shared/Components/CartList/Default.cshtml b/src/Web/WebMVC/Views/Shared/Components/CartList/Default.cshtml
index 1f0d05320..091365e1e 100644
--- a/src/Web/WebMVC/Views/Shared/Components/CartList/Default.cshtml
+++ b/src/Web/WebMVC/Views/Shared/Components/CartList/Default.cshtml
@@ -5,67 +5,87 @@
}
-
-
-
-
-
-
-
-
- @for (int i = 0; i < Model.Items.Count; i++)
+ @if (TempData.ContainsKey("BasketInoperativeMsg"))
{
- var item = Model.Items[i];
+
+
+ @TempData["BasketInoperativeMsg"]
+
+ }
+ else
+ {
+
+
+ @if (TempData.ContainsKey("BasketInoperativeMsg"))
+ {
+
+ @TempData["BasketInoperativeMsg"]
+
+ }
-
-
-
-
-
-
-
$ @item.UnitPrice.ToString("N2")
-
-
$ @Math.Round(item.Quantity * item.UnitPrice, 2).ToString("N2")
-
-
-
-
+
+
+
+
+
-
- @if (item.OldUnitPrice != 0)
- {
-
Note that the price of this article changed in our Catalog. The old price when you originally added it to the basket was $ @item.OldUnitPrice
- }
+ @for (int i = 0; i < Model.Items.Count; i++)
+ {
+ var item = Model.Items[i];
+
+
+
+
+
+
+
+
$ @item.UnitPrice.ToString("N2")
+
+
$ @Math.Round(item.Quantity * item.UnitPrice, 2).ToString("N2")
+
+
+
+
+
+
+
+ @if (item.OldUnitPrice != 0)
+ {
+
Note that the price of this article changed in our Catalog. The old price when you originally added it to the basket was $ @item.OldUnitPrice
+ }
+
+
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
}
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
diff --git a/src/Web/WebMVC/WebMVC.csproj b/src/Web/WebMVC/WebMVC.csproj
index c0cc08da0..f36270750 100644
--- a/src/Web/WebMVC/WebMVC.csproj
+++ b/src/Web/WebMVC/WebMVC.csproj
@@ -41,6 +41,7 @@
+
diff --git a/src/Web/WebMVC/wwwroot/css/_variables.scss b/src/Web/WebMVC/wwwroot/css/_variables.scss
index 0acfde727..4b989c185 100644
--- a/src/Web/WebMVC/wwwroot/css/_variables.scss
+++ b/src/Web/WebMVC/wwwroot/css/_variables.scss
@@ -11,6 +11,13 @@ $color-secondary-darker: darken($color-secondary, 20%);
$color-secondary-bright: lighten($color-secondary, 10%);
$color-secondary-brighter: lighten($color-secondary, 20%);
+$color-warning: #ff0000;
+$color-warning-dark: darken($color-warning, 5%);
+$color-warning-darker: darken($color-warning, 20%);
+$color-warning-bright: lighten($color-warning, 10%);
+$color-warning-brighter: lighten($color-warning, 20%);
+
+
$color-background-dark: #333333;
$color-background-darker: #000000;
$color-background-bright: #EEEEFF;
diff --git a/src/Web/WebMVC/wwwroot/css/app.component.min.css b/src/Web/WebMVC/wwwroot/css/app.component.min.css
new file mode 100644
index 000000000..fc9af00e8
--- /dev/null
+++ b/src/Web/WebMVC/wwwroot/css/app.component.min.css
@@ -0,0 +1 @@
+.esh-app-footer{background-color:#000;border-top:1px solid #eee;margin-top:2.5rem;padding-bottom:2.5rem;padding-top:2.5rem;width:100%;}.esh-app-footer-brand{height:50px;width:230px;}
\ No newline at end of file
diff --git a/src/Web/WebMVC/wwwroot/css/basket/basket-status/basket-status.component.css b/src/Web/WebMVC/wwwroot/css/basket/basket-status/basket-status.component.css
index 32b556ab7..5155b88e5 100644
--- a/src/Web/WebMVC/wwwroot/css/basket/basket-status/basket-status.component.css
+++ b/src/Web/WebMVC/wwwroot/css/basket/basket-status/basket-status.component.css
@@ -31,6 +31,21 @@
width: 1.5rem;
}
+.esh-basketstatus-badge-inoperative {
+ background-color: #ff0000;
+ border-radius: 50%;
+ color: #FFFFFF;
+ display: block;
+ height: 1.5rem;
+ left: 50%;
+ position: absolute;
+ text-align: center;
+ top: 0;
+ transform: translateX(-38%);
+ transition: all 0.35s;
+ width: 1.5rem;
+}
+
.esh-basketstatus:hover .esh-basketstatus-badge {
background-color: transparent;
color: #75b918;
diff --git a/src/Web/WebMVC/wwwroot/css/basket/basket-status/basket-status.component.min.css b/src/Web/WebMVC/wwwroot/css/basket/basket-status/basket-status.component.min.css
new file mode 100644
index 000000000..cc34f1576
--- /dev/null
+++ b/src/Web/WebMVC/wwwroot/css/basket/basket-status/basket-status.component.min.css
@@ -0,0 +1 @@
+.esh-basketstatus{cursor:pointer;display:inline-block;float:right;position:relative;transition:all .35s;}.esh-basketstatus.is-disabled{opacity:.5;pointer-events:none;}.esh-basketstatus-image{height:36px;margin-top:.5rem;}.esh-basketstatus-badge{background-color:#83d01b;border-radius:50%;color:#fff;display:block;height:1.5rem;left:50%;position:absolute;text-align:center;top:0;transform:translateX(-38%);transition:all .35s;width:1.5rem;}.esh-basketstatus-badge-inoperative{background-color:#f00;border-radius:50%;color:#fff;display:block;height:1.5rem;left:50%;position:absolute;text-align:center;top:0;transform:translateX(-38%);transition:all .35s;width:1.5rem;}.esh-basketstatus:hover .esh-basketstatus-badge{background-color:transparent;color:#75b918;transition:all .35s;}
\ No newline at end of file
diff --git a/src/Web/WebMVC/wwwroot/css/basket/basket-status/basket-status.component.scss b/src/Web/WebMVC/wwwroot/css/basket/basket-status/basket-status.component.scss
index d7c91e7a8..5dd28de99 100644
--- a/src/Web/WebMVC/wwwroot/css/basket/basket-status/basket-status.component.scss
+++ b/src/Web/WebMVC/wwwroot/css/basket/basket-status/basket-status.component.scss
@@ -33,6 +33,22 @@
width: $size;
}
+ &-badge-inoperative {
+ $size: 1.5rem;
+ background-color: $color-warning;
+ border-radius: 50%;
+ color: $color-foreground-brighter;
+ display: block;
+ height: $size;
+ left: 50%;
+ position: absolute;
+ text-align: center;
+ top: 0;
+ transform: translateX(-38%);
+ transition: all $animation-speed-default;
+ width: $size;
+ }
+
&:hover &-badge {
background-color: transparent;
color: $color-secondary-dark;
diff --git a/src/Web/WebMVC/wwwroot/css/basket/basket.component.min.css b/src/Web/WebMVC/wwwroot/css/basket/basket.component.min.css
new file mode 100644
index 000000000..ddc57eaee
--- /dev/null
+++ b/src/Web/WebMVC/wwwroot/css/basket/basket.component.min.css
@@ -0,0 +1 @@
+.esh-basket{min-height:80vh;}.esh-basket-titles{padding-bottom:1rem;padding-top:2rem;}.esh-basket-titles--clean{padding-bottom:0;padding-top:0;}.esh-basket-title{text-transform:uppercase;}.esh-basket-items--border{border-bottom:1px solid #eee;padding:.5rem 0;}.esh-basket-items--border:last-of-type{border-color:transparent;}.esh-basket-items-margin-left1{margin-left:1px;}.esh-basket-item{font-size:1rem;font-weight:300;}.esh-basket-item--middle{line-height:8rem;}@media screen and (max-width:1024px){.esh-basket-item--middle{line-height:1rem;}}.esh-basket-item--mark{color:#00a69c;}.esh-basket-image{height:8rem;}.esh-basket-input{line-height:1rem;width:100%;}.esh-basket-checkout{background-color:#83d01b;border:0;border-radius:0;color:#fff;display:inline-block;font-size:1rem;font-weight:400;margin-top:1rem;padding:1rem 1.5rem;text-align:center;text-transform:uppercase;transition:all .35s;}.esh-basket-checkout:hover{background-color:#4a760f;transition:all .35s;}
\ No newline at end of file
diff --git a/src/Web/WebMVC/wwwroot/css/catalog/catalog.component.min.css b/src/Web/WebMVC/wwwroot/css/catalog/catalog.component.min.css
new file mode 100644
index 000000000..f376f59e0
--- /dev/null
+++ b/src/Web/WebMVC/wwwroot/css/catalog/catalog.component.min.css
@@ -0,0 +1 @@
+.esh-catalog-hero{background-image:url("../../images/main_banner.png");background-size:cover;height:260px;width:100%;}.esh-catalog-title{position:relative;top:74.28571px;}.esh-catalog-filters{background-color:#00a69c;height:65px;}.esh-catalog-filter{-webkit-appearance:none;background-color:transparent;border-color:#00d9cc;color:#fff;cursor:pointer;margin-right:1rem;margin-top:.5rem;min-width:140px;outline-color:#83d01b;padding-bottom:0;padding-left:.5rem;padding-right:.5rem;padding-top:1.5rem;}.esh-catalog-filter option{background-color:#00a69c;}.esh-catalog-label{display:inline-block;position:relative;z-index:0;}.esh-catalog-label::before{color:rgba(255,255,255,.5);content:attr(data-title);font-size:.65rem;margin-left:.5rem;margin-top:.65rem;position:absolute;text-transform:uppercase;z-index:1;}.esh-catalog-label::after{background-image:url("../../images/arrow-down.png");content:'';height:7px;position:absolute;right:1.5rem;top:2.5rem;width:10px;z-index:1;}.esh-catalog-send{background-color:#83d01b;color:#fff;cursor:pointer;font-size:1rem;margin-top:-1.5rem;padding:.5rem;transition:all .35s;}.esh-catalog-send:hover{background-color:#4a760f;transition:all .35s;}.esh-catalog-items{margin-top:1rem;}.esh-catalog-item{margin-bottom:1.5rem;text-align:center;width:33%;display:inline-block;float:none !important;}@media screen and (max-width:1024px){.esh-catalog-item{width:50%;}}@media screen and (max-width:768px){.esh-catalog-item{width:100%;}}.esh-catalog-thumbnail{max-width:370px;width:100%;}.esh-catalog-button{background-color:#83d01b;border:0;color:#fff;cursor:pointer;font-size:1rem;height:3rem;margin-top:1rem;transition:all .35s;width:80%;}.esh-catalog-button.is-disabled{opacity:.5;pointer-events:none;}.esh-catalog-button:hover{background-color:#4a760f;transition:all .35s;}.esh-catalog-name{font-size:1rem;font-weight:300;margin-top:.5rem;text-align:center;text-transform:uppercase;}.esh-catalog-price{font-size:28px;font-weight:900;text-align:center;}.esh-catalog-price::before{content:'$';}
\ No newline at end of file
diff --git a/src/Web/WebMVC/wwwroot/css/orders/orders-detail/orders-detail.component.min.css b/src/Web/WebMVC/wwwroot/css/orders/orders-detail/orders-detail.component.min.css
new file mode 100644
index 000000000..146afb2f3
--- /dev/null
+++ b/src/Web/WebMVC/wwwroot/css/orders/orders-detail/orders-detail.component.min.css
@@ -0,0 +1 @@
+.esh-orders_detail{min-height:80vh;}.esh-orders_detail-section{padding:1rem 0;}.esh-orders_detail-section--right{text-align:right;}.esh-orders_detail-titles{padding-bottom:1rem;padding-top:2rem;}.esh-orders_detail-title{text-transform:uppercase;}.esh-orders_detail-items--border{border-bottom:1px solid #eee;padding:.5rem 0;}.esh-orders_detail-items--border:last-of-type{border-color:transparent;}.esh-orders_detail-item{font-size:1rem;font-weight:300;}.esh-orders_detail-item--middle{line-height:8rem;}@media screen and (max-width:768px){.esh-orders_detail-item--middle{line-height:1rem;}}.esh-orders_detail-item--mark{color:#83d01b;}.esh-orders_detail-image{height:8rem;}
\ No newline at end of file
diff --git a/src/Web/WebMVC/wwwroot/css/orders/orders-new/orders-new.component.min.css b/src/Web/WebMVC/wwwroot/css/orders/orders-new/orders-new.component.min.css
new file mode 100644
index 000000000..ae4a15d26
--- /dev/null
+++ b/src/Web/WebMVC/wwwroot/css/orders/orders-new/orders-new.component.min.css
@@ -0,0 +1 @@
+.esh-orders_new{min-height:80vh;}.esh-orders_new-header{background-color:#00a69c;height:4rem;}.esh-orders_new-back{color:rgba(255,255,255,.4);line-height:4rem;text-decoration:none;text-transform:uppercase;transition:color .35s;}.esh-orders_new-back:hover{color:#fff;transition:color .35s;}.esh-orders_new-section{padding:1rem 0;}.esh-orders_new-section--right{text-align:right;}.esh-orders_new-placeOrder{background-color:#83d01b;border:0;border-radius:0;color:#fff;display:inline-block;font-size:1rem;font-weight:400;margin-top:1rem;padding:1rem 1.5rem;text-align:center;text-transform:uppercase;transition:all .35s;}.esh-orders_new-placeOrder:hover{background-color:#4a760f;transition:all .35s;}.esh-orders_new-titles{padding-bottom:1rem;padding-top:2rem;}.esh-orders_new-title{font-size:1.25rem;text-transform:uppercase;}.esh-orders_new-items--border{border-bottom:1px solid #eee;padding:.5rem 0;}.esh-orders_new-items--border:last-of-type{border-color:transparent;}.esh-orders_new-item{font-size:1rem;font-weight:300;}.esh-orders_new-item--middle{line-height:8rem;}@media screen and (max-width:768px){.esh-orders_new-item--middle{line-height:1rem;}}.esh-orders_new-item--mark{color:#83d01b;}.esh-orders_new-image{height:8rem;}.esh-orders_new-alert{margin-top:10px;}
\ No newline at end of file
diff --git a/src/Web/WebMVC/wwwroot/css/orders/orders.component.min.css b/src/Web/WebMVC/wwwroot/css/orders/orders.component.min.css
new file mode 100644
index 000000000..3bea6627c
--- /dev/null
+++ b/src/Web/WebMVC/wwwroot/css/orders/orders.component.min.css
@@ -0,0 +1 @@
+.esh-orders{min-height:80vh;overflow-x:hidden;}.esh-orders-header{background-color:#00a69c;height:4rem;}.esh-orders-back{color:rgba(255,255,255,.4);line-height:4rem;text-decoration:none;text-transform:uppercase;transition:color .35s;}.esh-orders-back:hover{color:#fff;transition:color .35s;}.esh-orders-titles{padding-bottom:1rem;padding-top:2rem;}.esh-orders-title{text-transform:uppercase;}.esh-orders-items{height:2rem;line-height:2rem;position:relative;}.esh-orders-items:nth-of-type(2n+1):before{background-color:#eef;content:'';height:100%;left:0;margin-left:-100vw;position:absolute;top:0;width:200vw;z-index:-1;}.esh-orders-item{font-weight:300;}.esh-orders-item--hover{opacity:0;pointer-events:none;}.esh-orders-items:hover .esh-orders-item--hover{opacity:1;pointer-events:all;}.esh-orders-link{color:#83d01b;text-decoration:none;transition:color .35s;}.esh-orders-link:hover{color:#75b918;transition:color .35s;}
\ No newline at end of file
diff --git a/src/Web/WebMVC/wwwroot/css/shared/components/header/header.min.css b/src/Web/WebMVC/wwwroot/css/shared/components/header/header.min.css
new file mode 100644
index 000000000..6d6217d8d
--- /dev/null
+++ b/src/Web/WebMVC/wwwroot/css/shared/components/header/header.min.css
@@ -0,0 +1 @@
+.esh-header{background-color:#00a69c;height:4rem;}.esh-header-back{color:rgba(255,255,255,.5);line-height:4rem;text-decoration:none;text-transform:uppercase;transition:color .35s;}.esh-header-back:hover{color:#fff;transition:color .35s;}
\ No newline at end of file
diff --git a/src/Web/WebMVC/wwwroot/css/shared/components/pager/pager.min.css b/src/Web/WebMVC/wwwroot/css/shared/components/pager/pager.min.css
new file mode 100644
index 000000000..79a734e2d
--- /dev/null
+++ b/src/Web/WebMVC/wwwroot/css/shared/components/pager/pager.min.css
@@ -0,0 +1 @@
+.esh-pager-wrapper{padding-top:1rem;text-align:center;}.esh-pager-item{margin:0 5vw;}.esh-pager-item.is-disabled{opacity:0;pointer-events:none;}.esh-pager-item--navigable{cursor:pointer;display:inline-block;}.esh-pager-item--navigable:hover{color:#83d01b;}@media screen and (max-width:1280px){.esh-pager-item{font-size:.85rem;}}@media screen and (max-width:1024px){.esh-pager-item{margin:0 2.5vw;}}
\ No newline at end of file
diff --git a/src/Web/WebMVC/wwwroot/images/cart-inoperative.png b/src/Web/WebMVC/wwwroot/images/cart-inoperative.png
new file mode 100644
index 000000000..24a2e18f7
Binary files /dev/null and b/src/Web/WebMVC/wwwroot/images/cart-inoperative.png differ
diff --git a/src/Web/WebStatus/Startup.cs b/src/Web/WebStatus/Startup.cs
index 82f7f16ea..244f81787 100644
--- a/src/Web/WebStatus/Startup.cs
+++ b/src/Web/WebStatus/Startup.cs
@@ -39,7 +39,7 @@ namespace WebStatus
}
checks.AddUrlCheckIfNotNull(Configuration["OrderingUrl"], TimeSpan.FromMinutes(minutes));
- checks.AddUrlCheckIfNotNull(Configuration["BasketUrl"], TimeSpan.FromMinutes(minutes));
+ checks.AddUrlCheckIfNotNull(Configuration["BasketUrl"], TimeSpan.Zero); //No cache for this HealthCheck, better just for demos
checks.AddUrlCheckIfNotNull(Configuration["CatalogUrl"], TimeSpan.FromMinutes(minutes));
checks.AddUrlCheckIfNotNull(Configuration["IdentityUrl"], TimeSpan.FromMinutes(minutes));
checks.AddUrlCheckIfNotNull(Configuration["LocationsUrl"], TimeSpan.FromMinutes(minutes));