Fixed some issues in catalog filters and improve catalog views.
This commit is contained in:
parent
49e85dc195
commit
1002356493
@ -49,10 +49,10 @@ namespace Microsoft.eShopOnContainers.WebMVC.Controllers
|
|||||||
return View(vm);
|
return View(vm);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<IActionResult> AddToCart(string productId)
|
public async Task<IActionResult> AddToCart(CatalogItem productDetails)
|
||||||
{
|
{
|
||||||
var user = await _userManager.GetUserAsync(HttpContext.User);
|
var user = await _userManager.GetUserAsync(HttpContext.User);
|
||||||
var productDetails = _catalogSvc.GetCatalogItem(productId);
|
//var productDetails = _catalogSvc.GetCatalogItem(productId);
|
||||||
var product = new BasketItem()
|
var product = new BasketItem()
|
||||||
{
|
{
|
||||||
Id = Guid.NewGuid().ToString(),
|
Id = Guid.NewGuid().ToString(),
|
||||||
@ -60,7 +60,7 @@ namespace Microsoft.eShopOnContainers.WebMVC.Controllers
|
|||||||
ProductName = productDetails.Name,
|
ProductName = productDetails.Name,
|
||||||
PictureUrl = productDetails.PictureUri,
|
PictureUrl = productDetails.PictureUri,
|
||||||
UnitPrice = productDetails.Price,
|
UnitPrice = productDetails.Price,
|
||||||
ProductId = productId
|
ProductId = productDetails.Id
|
||||||
};
|
};
|
||||||
_basketSvc.AddItemToBasket(user, product);
|
_basketSvc.AddItemToBasket(user, product);
|
||||||
return RedirectToAction("Index", "Catalog");
|
return RedirectToAction("Index", "Catalog");
|
||||||
|
@ -18,7 +18,7 @@ namespace Microsoft.eShopOnContainers.WebMVC.Models
|
|||||||
|
|
||||||
public decimal Total()
|
public decimal Total()
|
||||||
{
|
{
|
||||||
return Items.Sum(x => x.UnitPrice * x.Quantity);
|
return Math.Round(Items.Sum(x => x.UnitPrice * x.Quantity),2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
15
src/Web/WebMVC/Models/CartViewModels/IndexViewModel.cs
Normal file
15
src/Web/WebMVC/Models/CartViewModels/IndexViewModel.cs
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
using BikeSharing_Private_Web_Site.Services.Pagination;
|
||||||
|
using Microsoft.AspNetCore.Mvc.Rendering;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace Microsoft.eShopOnContainers.WebMVC.Models.CartViewModels
|
||||||
|
{
|
||||||
|
public class CartComponentViewModel
|
||||||
|
{
|
||||||
|
public int ItemsCount { get; set; }
|
||||||
|
public string Disabled { get { return (ItemsCount == 0) ? "is-disabled" : ""; } }
|
||||||
|
}
|
||||||
|
}
|
@ -12,8 +12,8 @@ namespace Microsoft.eShopOnContainers.WebMVC.Models.CatalogViewModels
|
|||||||
public IEnumerable<CatalogItem> CatalogItems { get; set; }
|
public IEnumerable<CatalogItem> CatalogItems { get; set; }
|
||||||
public IEnumerable<SelectListItem> Brands { get; set; }
|
public IEnumerable<SelectListItem> Brands { get; set; }
|
||||||
public IEnumerable<SelectListItem> Types { get; set; }
|
public IEnumerable<SelectListItem> Types { get; set; }
|
||||||
public int BrandFilterApplied { get; set; }
|
public int? BrandFilterApplied { get; set; }
|
||||||
public int TypesFilterApplied { get; set; }
|
public int? TypesFilterApplied { get; set; }
|
||||||
public PaginationInfo PaginationInfo { get; set; }
|
public PaginationInfo PaginationInfo { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -30,7 +30,7 @@ namespace Microsoft.eShopOnContainers.WebMVC.Services
|
|||||||
|
|
||||||
public CatalogService(IOptions<AppSettings> settings) {
|
public CatalogService(IOptions<AppSettings> settings) {
|
||||||
_settings = settings;
|
_settings = settings;
|
||||||
_remoteServiceBaseUrl = $"{_settings.Value.CatalogUrl}api/v1/catalog/";
|
_remoteServiceBaseUrl = $"{_settings.Value.CatalogUrl}/api/v1/catalog/";
|
||||||
|
|
||||||
#region fake data
|
#region fake data
|
||||||
_items = new List<CatalogItem>()
|
_items = new List<CatalogItem>()
|
||||||
@ -79,7 +79,11 @@ namespace Microsoft.eShopOnContainers.WebMVC.Services
|
|||||||
var filterQs = "";
|
var filterQs = "";
|
||||||
|
|
||||||
if (brand.HasValue || type.HasValue)
|
if (brand.HasValue || type.HasValue)
|
||||||
filterQs = $"/type/{type ?? null}/brand/{brand ?? null}";
|
{
|
||||||
|
var brandQs = (brand.HasValue) ? brand.Value.ToString() : "null";
|
||||||
|
var typeQs = (type.HasValue) ? type.Value.ToString() : "null";
|
||||||
|
filterQs = $"/type/{typeQs}/brand/{brandQs}";
|
||||||
|
}
|
||||||
|
|
||||||
var catalogUrl = $"{_remoteServiceBaseUrl}items{filterQs}?pageIndex={page}&pageSize={take}";
|
var catalogUrl = $"{_remoteServiceBaseUrl}items{filterQs}?pageIndex={page}&pageSize={take}";
|
||||||
var dataString = await _apiClient.GetStringAsync(catalogUrl);
|
var dataString = await _apiClient.GetStringAsync(catalogUrl);
|
||||||
@ -98,7 +102,7 @@ namespace Microsoft.eShopOnContainers.WebMVC.Services
|
|||||||
var dataString = await _apiClient.GetStringAsync(url);
|
var dataString = await _apiClient.GetStringAsync(url);
|
||||||
|
|
||||||
var items = new List<SelectListItem>();
|
var items = new List<SelectListItem>();
|
||||||
items.Add(new SelectListItem() { Value = "0", Text = "All", Selected = true });
|
items.Add(new SelectListItem() { Value = null, Text = "All", Selected = true });
|
||||||
|
|
||||||
JArray brands = JArray.Parse(dataString);
|
JArray brands = JArray.Parse(dataString);
|
||||||
foreach (JObject brand in brands.Children<JObject>())
|
foreach (JObject brand in brands.Children<JObject>())
|
||||||
@ -117,7 +121,7 @@ namespace Microsoft.eShopOnContainers.WebMVC.Services
|
|||||||
var dataString = await _apiClient.GetStringAsync(url);
|
var dataString = await _apiClient.GetStringAsync(url);
|
||||||
|
|
||||||
var items = new List<SelectListItem>();
|
var items = new List<SelectListItem>();
|
||||||
items.Add(new SelectListItem() { Value = "0", Text = "All", Selected = true });
|
items.Add(new SelectListItem() { Value = null, Text = "All", Selected = true });
|
||||||
|
|
||||||
JArray brands = JArray.Parse(dataString);
|
JArray brands = JArray.Parse(dataString);
|
||||||
foreach (JObject brand in brands.Children<JObject>())
|
foreach (JObject brand in brands.Children<JObject>())
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Microsoft.eShopOnContainers.WebMVC.Models;
|
using Microsoft.eShopOnContainers.WebMVC.Models;
|
||||||
|
using Microsoft.eShopOnContainers.WebMVC.Models.CartViewModels;
|
||||||
using Microsoft.eShopOnContainers.WebMVC.Services;
|
using Microsoft.eShopOnContainers.WebMVC.Services;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
@ -20,7 +21,11 @@ namespace Microsoft.eShopOnContainers.WebMVC.ViewComponents
|
|||||||
public async Task<IViewComponentResult> InvokeAsync(ApplicationUser user)
|
public async Task<IViewComponentResult> InvokeAsync(ApplicationUser user)
|
||||||
{
|
{
|
||||||
var itemsInCart = await ItemsInCartAsync(user);
|
var itemsInCart = await ItemsInCartAsync(user);
|
||||||
return View(itemsInCart);
|
var vm = new CartComponentViewModel()
|
||||||
|
{
|
||||||
|
ItemsCount = itemsInCart
|
||||||
|
};
|
||||||
|
return View(vm);
|
||||||
}
|
}
|
||||||
private Task<int> ItemsInCartAsync(ApplicationUser user)
|
private Task<int> ItemsInCartAsync(ApplicationUser user)
|
||||||
{
|
{
|
||||||
|
@ -24,87 +24,29 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="container home-catalog-container">
|
<div class="container home-catalog-container">
|
||||||
|
@if (Model.CatalogItems.Count() > 0)
|
||||||
|
{
|
||||||
<div class="container es-pager-top">
|
<div class="container es-pager-top">
|
||||||
<div class="row">
|
@Html.Partial("_pagination", Model)
|
||||||
<div class="col-xs-4">
|
|
||||||
<nav>
|
|
||||||
<ul>
|
|
||||||
<li class="page-item">
|
|
||||||
<a class="text previous @Model.PaginationInfo.Previous" id="Previous"
|
|
||||||
href="@Url.Action("Index","Catalog", new { page = Model.PaginationInfo.ActualPage -1 })"
|
|
||||||
aria-label="Previous">
|
|
||||||
<span>Previous</span>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
</div>
|
|
||||||
<div class="col-xs-4 u-align-center"><span>Showing @Html.DisplayFor(modelItem => modelItem.PaginationInfo.ItemsPerPage) of @Html.DisplayFor(modelItem => modelItem.PaginationInfo.TotalItems) products - Page @(Model.PaginationInfo.ActualPage + 1) of @Html.DisplayFor(x => x.PaginationInfo.TotalPages)</span></div>
|
|
||||||
<div class="col-xs-4">
|
|
||||||
<nav>
|
|
||||||
<ul>
|
|
||||||
<li class="page-item">
|
|
||||||
<a class="text next @Model.PaginationInfo.Next" id="Next"
|
|
||||||
href="@Url.Action("Index","Catalog", new { page = Model.PaginationInfo.ActualPage + 1 })"
|
|
||||||
aria-label="Next">
|
|
||||||
<span>Next</span>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
@foreach (var catalogItem in Model.CatalogItems)
|
@foreach (var catalogItem in Model.CatalogItems)
|
||||||
{
|
{
|
||||||
<div class="col-sm-4 home-catalog-item">
|
<div class="col-xs-12 col-sm-6 col-lg-4 home-catalog-item">
|
||||||
<form asp-controller="Cart" asp-action="AddToCart" asp-route-productId="@catalogItem.Id">
|
@Html.Partial("_product", catalogItem)
|
||||||
<div class="home-catalog-item-image">
|
|
||||||
<img src="@catalogItem.PictureUri" />
|
|
||||||
<input type="submit" value="[ ADD TO CART ]" class="btn-brand home-catalog-item-image-addCart" />
|
|
||||||
</div>
|
</div>
|
||||||
<div class="home-catalog-item-title">
|
}
|
||||||
<span>@catalogItem.Name</span>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="home-catalog-item-price">
|
<div class="container es-pager-bottom">
|
||||||
<span>@catalogItem.Price.ToString("N2")</span>
|
@Html.Partial("_pagination", Model)
|
||||||
</div>
|
</div>
|
||||||
</form>
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
<div class="home-catalog-noResults">
|
||||||
|
THERE ARE NO RESULTS THAT MATCH YOUR SEARCH
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
<div class="container es-pager-bottom">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-xs-4">
|
|
||||||
<nav>
|
|
||||||
<ul>
|
|
||||||
<li class="page-item">
|
|
||||||
<a class="text previous @Model.PaginationInfo.Previous" id="Previous"
|
|
||||||
href="@Url.Action("Index","Catalog", new { page = Model.PaginationInfo.ActualPage + -1 })"
|
|
||||||
aria-label="Previous">
|
|
||||||
<span>Previous</span>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
</div>
|
|
||||||
<div class="col-xs-4 u-align-center"><span>Showing @Html.DisplayFor(modelItem => modelItem.PaginationInfo.ItemsPerPage) of @Html.DisplayFor(modelItem => modelItem.PaginationInfo.TotalItems) products - Page @(Model.PaginationInfo.ActualPage + 1) of @Html.DisplayFor(x => x.PaginationInfo.TotalPages)</span></div>
|
|
||||||
<div class="col-xs-4">
|
|
||||||
<nav>
|
|
||||||
<ul>
|
|
||||||
<li class="page-item">
|
|
||||||
<a class="text next @Model.PaginationInfo.Next" id="Next"
|
|
||||||
href="@Url.Action("Index","Catalog", new { page = Model.PaginationInfo.ActualPage + 1 })"
|
|
||||||
aria-label="Next">
|
|
||||||
<span>Next</span>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
31
src/Web/WebMVC/Views/Catalog/_noResults.cshtml
Normal file
31
src/Web/WebMVC/Views/Catalog/_noResults.cshtml
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
@model Microsoft.eShopOnContainers.WebMVC.Models.CatalogViewModels.IndexViewModel
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-xs-4">
|
||||||
|
<nav>
|
||||||
|
<ul>
|
||||||
|
<li class="page-item">
|
||||||
|
<a class="text previous @Model.PaginationInfo.Previous" id="Previous"
|
||||||
|
href="@Url.Action("Index","Catalog", new { page = Model.PaginationInfo.ActualPage -1 })"
|
||||||
|
aria-label="Previous">
|
||||||
|
<span>Previous</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-4 u-align-center"><span>Showing @Html.DisplayFor(modelItem => modelItem.PaginationInfo.ItemsPerPage) of @Html.DisplayFor(modelItem => modelItem.PaginationInfo.TotalItems) products - Page @(Model.PaginationInfo.ActualPage + 1) of @Html.DisplayFor(x => x.PaginationInfo.TotalPages)</span></div>
|
||||||
|
<div class="col-xs-4">
|
||||||
|
<nav>
|
||||||
|
<ul>
|
||||||
|
<li class="page-item">
|
||||||
|
<a class="text next @Model.PaginationInfo.Next" id="Next"
|
||||||
|
href="@Url.Action("Index","Catalog", new { page = Model.PaginationInfo.ActualPage + 1 })"
|
||||||
|
aria-label="Next">
|
||||||
|
<span>Next</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
</div>
|
31
src/Web/WebMVC/Views/Catalog/_pagination.cshtml
Normal file
31
src/Web/WebMVC/Views/Catalog/_pagination.cshtml
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
@model Microsoft.eShopOnContainers.WebMVC.Models.CatalogViewModels.IndexViewModel
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-xs-4">
|
||||||
|
<nav>
|
||||||
|
<ul>
|
||||||
|
<li class="page-item">
|
||||||
|
<a class="text previous @Model.PaginationInfo.Previous" id="Previous"
|
||||||
|
href="@Url.Action("Index","Catalog", new { page = Model.PaginationInfo.ActualPage -1 })"
|
||||||
|
aria-label="Previous">
|
||||||
|
<span>Previous</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-4 u-align-center"><span>Showing @Html.DisplayFor(modelItem => modelItem.PaginationInfo.ItemsPerPage) of @Html.DisplayFor(modelItem => modelItem.PaginationInfo.TotalItems) products - Page @(Model.PaginationInfo.ActualPage + 1) of @Html.DisplayFor(x => x.PaginationInfo.TotalPages)</span></div>
|
||||||
|
<div class="col-xs-4">
|
||||||
|
<nav>
|
||||||
|
<ul>
|
||||||
|
<li class="page-item">
|
||||||
|
<a class="text next @Model.PaginationInfo.Next" id="Next"
|
||||||
|
href="@Url.Action("Index","Catalog", new { page = Model.PaginationInfo.ActualPage + 1 })"
|
||||||
|
aria-label="Next">
|
||||||
|
<span>Next</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
</div>
|
23
src/Web/WebMVC/Views/Catalog/_product.cshtml
Normal file
23
src/Web/WebMVC/Views/Catalog/_product.cshtml
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
@model CatalogItem
|
||||||
|
|
||||||
|
<form asp-controller="Cart" asp-action="AddToCart">
|
||||||
|
<div class="home-catalog-item-image">
|
||||||
|
<img src="@Model.PictureUri" />
|
||||||
|
<input type="submit" value="[ ADD TO CART ]" class="btn-brand home-catalog-item-image-addCart" />
|
||||||
|
</div>
|
||||||
|
<div class="home-catalog-item-title">
|
||||||
|
<span>@Model.Name</span>
|
||||||
|
</div>
|
||||||
|
<div class="home-catalog-item-price">
|
||||||
|
<span>@Model.Price.ToString("N2")</span>
|
||||||
|
</div>
|
||||||
|
<input type="hidden" asp-for="@Model.CatalogBrand" name="brand"/>
|
||||||
|
<input type="hidden" asp-for="@Model.CatalogBrandId" name="brandId" />
|
||||||
|
<input type="hidden" asp-for="@Model.CatalogType" name="type" />
|
||||||
|
<input type="hidden" asp-for="@Model.CatalogTypeId" name="typeId" />
|
||||||
|
<input type="hidden" asp-for="@Model.Description" name="description" />
|
||||||
|
<input type="hidden" asp-for="@Model.Id" name="id" />
|
||||||
|
<input type="hidden" asp-for="@Model.Name" name="name" />
|
||||||
|
<input type="hidden" asp-for="@Model.PictureUri" name="pictureUri" />
|
||||||
|
<input type="hidden" asp-for="@Model.Price" name="price" />
|
||||||
|
</form>
|
@ -53,9 +53,9 @@
|
|||||||
<td class="cart-product-column"><img class="cart-product-image" src="@item.PictureUrl" /></td>
|
<td class="cart-product-column"><img class="cart-product-image" src="@item.PictureUrl" /></td>
|
||||||
<td class="cart-product-column">@item.ProductName</td>
|
<td class="cart-product-column">@item.ProductName</td>
|
||||||
<td class="cart-product-column">ROSLYN</td>
|
<td class="cart-product-column">ROSLYN</td>
|
||||||
<td class="cart-product-column">$ @item.UnitPrice</td>
|
<td class="cart-product-column">$ @Math.Round(item.UnitPrice, 2)</td>
|
||||||
<td class="cart-product-column">@item.Quantity</td>
|
<td class="cart-product-column">@item.Quantity</td>
|
||||||
<td class="cart-product-column cart-total-value">$ @(item.Quantity * item.UnitPrice)</td>
|
<td class="cart-product-column cart-total-value">$ @Math.Round(item.Quantity * item.UnitPrice,2)</td>
|
||||||
</tr>
|
</tr>
|
||||||
}
|
}
|
||||||
</tbody>
|
</tbody>
|
||||||
|
@ -1,15 +1,15 @@
|
|||||||
@model System.Int32
|
@model Microsoft.eShopOnContainers.WebMVC.Models.CartViewModels.CartComponentViewModel
|
||||||
|
|
||||||
@{
|
@{
|
||||||
ViewData["Title"] = "My Cart";
|
ViewData["Title"] = "My Cart";
|
||||||
}
|
}
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<a asp-area="" asp-controller="Cart" asp-action="Index"><img src="~/images/cart.PNG" class="fr layout-cart-image hidden-xs" />
|
<a asp-area="" asp-controller="Cart" asp-action="Index"><img src="~/images/cart.png" class="fr layout-cart-image hidden-xs @Model.Disabled" />
|
||||||
|
|
||||||
</a>
|
</a>
|
||||||
<div class="layout-cart-badge">
|
<div class="layout-cart-badge @Model.Disabled">
|
||||||
@Model
|
@Model.ItemsCount
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -43,7 +43,7 @@
|
|||||||
<input type="hidden" name="@("quantities[" + i +"].Key")" value="@item.Id" />
|
<input type="hidden" name="@("quantities[" + i +"].Key")" value="@item.Id" />
|
||||||
<input type="number" name="@("quantities[" + i +"].Value")" value="@item.Quantity" />
|
<input type="number" name="@("quantities[" + i +"].Value")" value="@item.Quantity" />
|
||||||
</td>
|
</td>
|
||||||
<td class="cart-product-column cart-total-value">$ @(item.Quantity * item.UnitPrice)</td>
|
<td class="cart-product-column cart-total-value">$ @Math.Round(item.Quantity * item.UnitPrice,2)</td>
|
||||||
</tr>
|
</tr>
|
||||||
}
|
}
|
||||||
</tbody>
|
</tbody>
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
{
|
{
|
||||||
"ConnectionStrings": {
|
"ConnectionStrings": {
|
||||||
//"DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=aspnet-Microsoft.eShopOnContainers.WebMVC-946ae052-8305-4a99-965b-ec8636ddbae3;Trusted_Connection=True;MultipleActiveResultSets=true;"
|
//"DefaultConnection": "Server=127.0.0.1,5433;Database=aspnet-Microsoft.eShopOnContainers.WebMVC;User Id=sa;Password=Pass@word"
|
||||||
"DefaultConnection": "Server=.;Database=aspnet-Microsoft.eShopOnContainers.WebMVC;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False;Trusted_Connection=True;"
|
"DefaultConnection": "Server=identity.data;Database=aspnet-Microsoft.eShopOnContainers.WebMVC;User Id=sa;Password=Pass@word"
|
||||||
},
|
},
|
||||||
"CatalogUrl": "http://localhost:5000/",
|
"CatalogUrl": "http://catalog.api",
|
||||||
|
//"CatalogUrl": "http://localhost:5001",
|
||||||
"OrderingUrl": "http://localhost:2446/",
|
"OrderingUrl": "http://localhost:2446/",
|
||||||
"Logging": {
|
"Logging": {
|
||||||
"IncludeScopes": false,
|
"IncludeScopes": false,
|
||||||
|
@ -10,9 +10,10 @@ services:
|
|||||||
- CatalogUrl=http://catalog.api
|
- CatalogUrl=http://catalog.api
|
||||||
- OrderingUrl=http://ordering.api
|
- OrderingUrl=http://ordering.api
|
||||||
ports:
|
ports:
|
||||||
- "800:80"
|
- "5000:80"
|
||||||
depends_on:
|
depends_on:
|
||||||
- catalog.api
|
- catalog.api
|
||||||
|
- identity.data
|
||||||
|
|
||||||
catalog.api:
|
catalog.api:
|
||||||
image: eshop/catalog.api
|
image: eshop/catalog.api
|
||||||
@ -20,6 +21,8 @@ services:
|
|||||||
- ConnectionString=Server=catalogdata;Port=5432;Database=CatalogDB;username=postgres;password=postgres
|
- ConnectionString=Server=catalogdata;Port=5432;Database=CatalogDB;username=postgres;password=postgres
|
||||||
expose:
|
expose:
|
||||||
- "80"
|
- "80"
|
||||||
|
ports:
|
||||||
|
- "5001:80"
|
||||||
depends_on:
|
depends_on:
|
||||||
- catalogdata
|
- catalogdata
|
||||||
|
|
||||||
@ -45,3 +48,11 @@ services:
|
|||||||
image: eshop/ordering.data.sqlserver.linux
|
image: eshop/ordering.data.sqlserver.linux
|
||||||
ports:
|
ports:
|
||||||
- "5432:1433"
|
- "5432:1433"
|
||||||
|
|
||||||
|
identity.data:
|
||||||
|
image: eshop/mssql-server-private-preview
|
||||||
|
environment:
|
||||||
|
- SA_PASSWORD=Pass@word
|
||||||
|
- ACCEPT_EULA=Y
|
||||||
|
ports:
|
||||||
|
- "5433:1433"
|
@ -19,10 +19,10 @@
|
|||||||
"Microsoft.AspNetCore.Server.Kestrel": "1.0.0",
|
"Microsoft.AspNetCore.Server.Kestrel": "1.0.0",
|
||||||
"Microsoft.AspNetCore.StaticFiles": "1.0.0",
|
"Microsoft.AspNetCore.StaticFiles": "1.0.0",
|
||||||
"Microsoft.EntityFrameworkCore.SqlServer": "1.0.0",
|
"Microsoft.EntityFrameworkCore.SqlServer": "1.0.0",
|
||||||
//"Microsoft.EntityFrameworkCore.SqlServer.Design": {
|
"Microsoft.EntityFrameworkCore.SqlServer.Design": {
|
||||||
// "version": "1.0.0-rc2-final",
|
"version": "1.0.0",
|
||||||
// "type": "build"
|
"type": "build"
|
||||||
//},
|
},
|
||||||
"Microsoft.EntityFrameworkCore.Tools": {
|
"Microsoft.EntityFrameworkCore.Tools": {
|
||||||
"version": "1.0.0-preview2-final",
|
"version": "1.0.0-preview2-final",
|
||||||
"type": "build"
|
"type": "build"
|
||||||
|
@ -316,7 +316,7 @@ select::-ms-expand {
|
|||||||
width: 100%;
|
width: 100%;
|
||||||
margin-right: 0px;
|
margin-right: 0px;
|
||||||
margin-left: 0px;
|
margin-left: 0px;
|
||||||
background-image: url(../images/main_banner.PNG);
|
background-image: url(../images/main_banner.png);
|
||||||
background-size: cover;
|
background-size: cover;
|
||||||
height: 258px;
|
height: 258px;
|
||||||
background-position: center;
|
background-position: center;
|
||||||
@ -364,19 +364,21 @@ select::-ms-expand {
|
|||||||
.home-catalog-item-image {
|
.home-catalog-item-image {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
object-fit: cover;
|
object-fit: cover;
|
||||||
max-width: 320px;
|
/* max-width: 320px; */
|
||||||
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.home-catalog-item-image-addCart {
|
.home-catalog-item-image-addCart {
|
||||||
background-color: #83D01B;
|
background-color: #83D01B;
|
||||||
color: white;
|
color: white;
|
||||||
display: block;
|
display: inline-block;
|
||||||
height: 43px;
|
height: 43px;
|
||||||
padding: 10px 20px 10px 20px;
|
padding: 10px 20px 10px 20px;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
margin-top: 10px;
|
margin-top: 10px;
|
||||||
margin-left: 50px;
|
margin-left: 60px;
|
||||||
|
margin-right: 60px;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
}
|
}
|
||||||
@ -409,6 +411,11 @@ select::-ms-expand {
|
|||||||
content: '$';
|
content: '$';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.home-catalog-noResults {
|
||||||
|
text-align:center;
|
||||||
|
margin-top: 100px;
|
||||||
|
}
|
||||||
|
|
||||||
.container .nav .navbar-nav .col-sm-6 ::before {
|
.container .nav .navbar-nav .col-sm-6 ::before {
|
||||||
content: 'BRAND';
|
content: 'BRAND';
|
||||||
}
|
}
|
||||||
@ -668,7 +675,7 @@ form .col-md-4 {
|
|||||||
|
|
||||||
.order-section-total {
|
.order-section-total {
|
||||||
margin-bottom: 5px;
|
margin-bottom: 5px;
|
||||||
margin-left: 20px;
|
margin-left: 40px;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -805,8 +812,13 @@ form .col-md-4 {
|
|||||||
|
|
||||||
@media screen and (max-width: 415px) {
|
@media screen and (max-width: 415px) {
|
||||||
.btn-brand-small-filter {
|
.btn-brand-small-filter {
|
||||||
width: 65px;
|
width: 40px;
|
||||||
padding:10px 10px 10px 10px;
|
padding:10px 10px 10px 10px;
|
||||||
font-size: 10px;
|
font-size: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.btn-brand-small-filter::before {
|
||||||
|
content: '->';
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
2
src/Web/WebMVC/wwwroot/css/site.min.css
vendored
2
src/Web/WebMVC/wwwroot/css/site.min.css
vendored
File diff suppressed because one or more lines are too long
Loading…
x
Reference in New Issue
Block a user