From 6e7c40a34758828a03715afa7b693a5c8653ead9 Mon Sep 17 00:00:00 2001 From: malik masis Date: Wed, 27 Jul 2022 19:05:55 +0300 Subject: [PATCH] Added ProductDetail page --- .../Pages/ProductDetail.cshtml | 65 +++++++++++++++++++ .../Pages/ProductDetail.cshtml.cs | 38 +++++++++++ 2 files changed, 103 insertions(+) create mode 100644 apps/public-web/src/EShopOnAbp.PublicWeb/Pages/ProductDetail.cshtml create mode 100644 apps/public-web/src/EShopOnAbp.PublicWeb/Pages/ProductDetail.cshtml.cs diff --git a/apps/public-web/src/EShopOnAbp.PublicWeb/Pages/ProductDetail.cshtml b/apps/public-web/src/EShopOnAbp.PublicWeb/Pages/ProductDetail.cshtml new file mode 100644 index 00000000..5656dc03 --- /dev/null +++ b/apps/public-web/src/EShopOnAbp.PublicWeb/Pages/ProductDetail.cshtml @@ -0,0 +1,65 @@ +@page "{id:guid}" +@using EShopOnAbp.Localization +@using Microsoft.Extensions.Localization +@using System.Globalization +@using Microsoft.Extensions.Options +@using Volo.Abp.Http.Client +@model EShopOnAbp.PublicWeb.Pages.ProductDetailModel +@inject IStringLocalizer L +@inject IOptions options + +@{ + string pageHeader = Model.Product.Name; +} + +@section styles{ + +} + +@section scripts { + + +} + +@if (Model.HasRemoteServiceError) +{ + pageHeader = L["CatalogServiceNotAvailable"]; +} + +
+
+
+

@pageHeader

+
+ @{ + var product = Model.Product; + var productPrice = product.Price.ToString("C", new CultureInfo("en-US")); + string productImage = !product.ImageName.IsNullOrEmpty() ? $"{options.Value.RemoteServices.Default.BaseUrl}product-images/{product.ImageName}" : $"{options.Value.RemoteServices.Default.BaseUrl}product-images/@product.ImageName"; + string buyText = L["Index:AddToBasket"]; +
+
+
+
@product.Name
+ @product.Code - @L["StockCount"]: @product.StockCount +
+
+ +
+ @if (product.StockCount > 0) + { + + } + else + { + + } +
+ @productPrice +
+
+
+ } +
+
+
+
\ No newline at end of file diff --git a/apps/public-web/src/EShopOnAbp.PublicWeb/Pages/ProductDetail.cshtml.cs b/apps/public-web/src/EShopOnAbp.PublicWeb/Pages/ProductDetail.cshtml.cs new file mode 100644 index 00000000..220cfeff --- /dev/null +++ b/apps/public-web/src/EShopOnAbp.PublicWeb/Pages/ProductDetail.cshtml.cs @@ -0,0 +1,38 @@ +using EShopOnAbp.CatalogService.Products; +using Microsoft.AspNetCore.Mvc; +using System; +using System.Threading.Tasks; +using Volo.Abp.AspNetCore.Mvc.UI.RazorPages; + +namespace EShopOnAbp.PublicWeb.Pages +{ + public class ProductDetailModel : AbpPageModel + { + [BindProperty(SupportsGet = true)] + public int OrderNo { get; set; } + + public ProductDto Product { get; private set; } + public bool HasRemoteServiceError { get; set; } = false; + private readonly IPublicProductAppService _productAppService; + + + public ProductDetailModel(IPublicProductAppService productAppService) + { + _productAppService = productAppService; + } + + public async Task OnGet(Guid id) + { + try + { + Product = await _productAppService.GetAsync(id); + } + catch (Exception e) + { + Product = new ProductDto(); + HasRemoteServiceError = true; + Console.WriteLine(e); + } + } + } +} \ No newline at end of file