Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit c00ccfe

Browse files
cart page developed
1 parent 9992938 commit c00ccfe

File tree

7 files changed

+124
-57
lines changed

7 files changed

+124
-57
lines changed

‎AspnetRunBasics/Pages/Cart.cshtml

Lines changed: 37 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,18 @@
44
ViewData["Title"] = "Cart";
55
}
66

7-
<section class="jumbotron text-center">
8-
<div class="container">
9-
<h1 class="jumbotron-heading">E-COMMERCE CART</h1>
7+
<div class="container">
8+
<div class="row">
9+
<div class="col">
10+
<nav aria-label="breadcrumb">
11+
<ol class="breadcrumb">
12+
<li class="breadcrumb-item"><a asp-page="Index">Home</a></li>
13+
<li class="breadcrumb-item active" aria-current="page">Shopping Cart</li>
14+
</ol>
15+
</nav>
16+
</div>
1017
</div>
11-
</section>
18+
</div>
1219

1320
<div class="container mb-4">
1421
<div class="row">
@@ -26,53 +33,34 @@
2633
</tr>
2734
</thead>
2835
<tbody>
29-
<tr>
30-
<td><img src="https://dummyimage.com/50x50/55595c/fff" /> </td>
31-
<td>Product Name Dada</td>
32-
<td>In stock</td>
33-
<td><input class="form-control" type="text" value="1" /></td>
34-
<td class="text-right">124,90 €</td>
35-
<td class="text-right"><button class="btn btn-sm btn-danger"><i class="fa fa-trash"></i> </button> </td>
36-
</tr>
37-
<tr>
38-
<td><img src="https://dummyimage.com/50x50/55595c/fff" /> </td>
39-
<td>Product Name Toto</td>
40-
<td>In stock</td>
41-
<td><input class="form-control" type="text" value="1" /></td>
42-
<td class="text-right">33,90 €</td>
43-
<td class="text-right"><button class="btn btn-sm btn-danger"><i class="fa fa-trash"></i> </button> </td>
44-
</tr>
45-
<tr>
46-
<td><img src="https://dummyimage.com/50x50/55595c/fff" /> </td>
47-
<td>Product Name Titi</td>
48-
<td>In stock</td>
49-
<td><input class="form-control" type="text" value="1" /></td>
50-
<td class="text-right">70,00 €</td>
51-
<td class="text-right"><button class="btn btn-sm btn-danger"><i class="fa fa-trash"></i> </button> </td>
52-
</tr>
53-
<tr>
54-
<td></td>
55-
<td></td>
56-
<td></td>
57-
<td></td>
58-
<td>Sub-Total</td>
59-
<td class="text-right">255,90 €</td>
60-
</tr>
61-
<tr>
62-
<td></td>
63-
<td></td>
64-
<td></td>
65-
<td></td>
66-
<td>Shipping</td>
67-
<td class="text-right">6,90 €</td>
68-
</tr>
36+
37+
@foreach (var cartItem in Model.Cart.Items)
38+
{
39+
<tr>
40+
<td><img src="https://dummyimage.com/50x50/55595c/fff" /></td>
41+
<td>@cartItem.Product.Name</td>
42+
<td>In stock</td>
43+
<td><input class="form-control" type="text" value="@cartItem.Quantity" /></td>
44+
<td class="text-right">@(cartItem.Price * cartItem.Quantity) $</td>
45+
<td class="text-right">
46+
47+
<form asp-page-handler="removetocart" method="post">
48+
<button class="btn btn-sm btn-danger"><i class="fa fa-trash"></i></button>
49+
<input type="hidden" asp-for="@Model.Cart.Id" name="cartId" />
50+
<input type="hidden" asp-for="@cartItem.Id" name="cartItemId" />
51+
</form>
52+
53+
</td>
54+
</tr>
55+
}
56+
6957
<tr>
7058
<td></td>
7159
<td></td>
7260
<td></td>
7361
<td></td>
7462
<td><strong>Total</strong></td>
75-
<td class="text-right"><strong>346,90 €</strong></td>
63+
<td class="text-right"><strong>@Model.TotalPrice $</strong></td>
7664
</tr>
7765
</tbody>
7866
</table>
@@ -81,14 +69,15 @@
8169
<div class="col mb-2">
8270
<div class="row">
8371
<div class="col-sm-12 col-md-6">
84-
<button class="btn btn-block btn-light">Continue Shopping</button>
72+
@*<button class="btn btn-lg btn-block btn-danger">Continue Shopping</button>*@
73+
<a asp-page="Product" class="btn btn-lg btn-block btn-success">Continue Shopping</a>
8574
</div>
8675
<div class="col-sm-12 col-md-6 text-right">
87-
<button class="btn btn-lg btn-block btn-success text-uppercase">Checkout</button>
76+
@*<button class="btn btn-lg btn-block btn-danger text-uppercase">CheckOut</button>*@
77+
<a asp-page="CheckOut" asp-route-cartId="@Model.Cart.Id" class="btn btn-lg btn-block btn-danger text-uppercase">CheckOut</a>
8878
</div>
8979
</div>
9080
</div>
9181
</div>
9282
</div>
9383

94-

‎AspnetRunBasics/Pages/Cart.cshtml.cs

Lines changed: 30 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,44 @@
11
using System;
2-
using System.Collections.Generic;
3-
using System.Linq;
42
using System.Threading.Tasks;
3+
using AspnetRunBasics.Entities;
4+
using AspnetRunBasics.Repositories;
55
using Microsoft.AspNetCore.Mvc;
66
using Microsoft.AspNetCore.Mvc.RazorPages;
77

88
namespace AspnetRunBasics
99
{
1010
public class CartModel : PageModel
1111
{
12-
public void OnGet()
12+
private readonly ICartRepository _cartRepository;
13+
14+
public CartModel(ICartRepository cartRepository)
15+
{
16+
_cartRepository = cartRepository ?? throw new ArgumentNullException(nameof(cartRepository));
17+
}
18+
19+
public Entities.Cart Cart { get; set; } = new Entities.Cart();
20+
public decimal TotalPrice { get; set; } = 0;
21+
22+
public async Task<IActionResult> OnGetAsync()
1323
{
24+
Cart = await _cartRepository.GetCartByUserName("test");
25+
CalculateTotalPrice(Cart);
1426

27+
return Page();
28+
}
29+
30+
public async Task<IActionResult> OnPostRemoveToCartAsync(int cartId, int cartItemId)
31+
{
32+
await _cartRepository.RemoveItem(cartId, cartItemId);
33+
return RedirectToPage();
34+
}
35+
36+
private void CalculateTotalPrice(Cart cart)
37+
{
38+
foreach (var item in cart.Items)
39+
{
40+
TotalPrice += item.Price * item.Quantity;
41+
}
1542
}
1643
}
1744
}

‎AspnetRunBasics/Pages/CheckOut.cshtml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
@page
2+
@model AspnetRunBasics.CheckOutModel
3+
@{
4+
ViewData["Title"] = "CheckOut";
5+
}
6+
7+
<h1>CheckOut</h1>
8+
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq;
4+
using System.Threading.Tasks;
5+
using AspnetRunBasics.Repositories;
6+
using Microsoft.AspNetCore.Mvc;
7+
using Microsoft.AspNetCore.Mvc.RazorPages;
8+
9+
namespace AspnetRunBasics
10+
{
11+
public class CheckOutModel : PageModel
12+
{
13+
private readonly ICartRepository _cartRepository;
14+
private readonly IOrderRepository _orderRepository;
15+
16+
public CheckOutModel(ICartRepository cartRepository, IOrderRepository orderRepository)
17+
{
18+
_cartRepository = cartRepository ?? throw new ArgumentNullException(nameof(cartRepository));
19+
_orderRepository = orderRepository ?? throw new ArgumentNullException(nameof(orderRepository));
20+
}
21+
22+
public Entities.Order Order { get; set; }
23+
24+
[BindProperty]
25+
public string Color { get; set; }
26+
27+
[BindProperty]
28+
public int Quantity { get; set; }
29+
30+
public async Task<IActionResult> OnGetAsync(int? cartId)
31+
{
32+
33+
return Page();
34+
}
35+
36+
public async Task<IActionResult> OnPostCheckOutAsync()
37+
{
38+
//if (!User.Identity.IsAuthenticated)
39+
// return RedirectToPage("./Account/Login", new { area = "Identity" });
40+
return Page();
41+
}
42+
}
43+
}

‎AspnetRunBasics/Pages/Product.cshtml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@
99
<div class="col">
1010
<nav aria-label="breadcrumb">
1111
<ol class="breadcrumb">
12-
<li class="breadcrumb-item"><a asp-page="Product">Home</a></li>
12+
<li class="breadcrumb-item"><a asp-page="Index">Home</a></li>
1313
<li class="breadcrumb-item"><a asp-page="Product">Category</a></li>
14-
<li class="breadcrumb-item active" aria-current="page">@Model.SelectedCategory</li>
14+
<li class="breadcrumb-item active" aria-current="page">@Model.SelectedCategory</li>
1515
</ol>
1616
</nav>
1717
</div>

‎AspnetRunBasics/Pages/ProductDetail.cshtml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@
99
<div class="col">
1010
<nav aria-label="breadcrumb">
1111
<ol class="breadcrumb">
12-
<li class="breadcrumb-item"><a asp-page="Product">Home</a></li>
13-
<li class="breadcrumb-item"><a asp-page="Product">Category</a></li>
14-
<li class="breadcrumb-item active" aria-current="page">Product</li>
12+
<li class="breadcrumb-item"><a asp-page="Index">Home</a></li>
13+
<li class="breadcrumb-item"><a asp-page="Product">Product</a></li>
14+
<li class="breadcrumb-item active" aria-current="page">@Model.Product.Name</li>
1515
</ol>
1616
</nav>
1717
</div>

‎AspnetRunBasics/Repositories/CartRepository.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
using AspnetRunBasics.Entities;
33
using Microsoft.EntityFrameworkCore;
44
using System;
5-
using System.Collections.Generic;
65
using System.Linq;
76
using System.Threading.Tasks;
87

@@ -21,6 +20,7 @@ public async Task<Cart> GetCartByUserName(string userName)
2120
{
2221
var cart = _dbContext.Carts
2322
.Include(c => c.Items)
23+
.ThenInclude(i => i.Product)
2424
.FirstOrDefault(c => c.UserName == userName);
2525

2626
if (cart != null)

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /