Skip to content

Commit 1f97592

Browse files
committed
web ui developments
1 parent 3a74328 commit 1f97592

28 files changed

+146
-222
lines changed

src/Basket/Basket.API/Entities/BasketCartItem.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,6 @@ public class BasketCartItem
66
public string Color { get; set; }
77
public decimal Price { get; set; }
88
public string ProductId { get; set; }
9+
public string ProductName { get; set; }
910
}
1011
}

src/Catalog/Catalog.API/Controllers/SystemController.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ public async Task<IActionResult> Init(string setting)
4343
Description = "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ut, tenetur natus doloremque laborum quos iste ipsum rerum obcaecati impedit odit illo dolorum ab tempora nihil dicta earum fugiat. Temporibus, voluptatibus. Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ut, tenetur natus doloremque laborum quos iste ipsum rerum obcaecati impedit odit illo dolorum ab tempora nihil dicta earum fugiat. Temporibus, voluptatibus.",
4444
ImageFile = "product-1.png",
4545
Price = 950.00M,
46-
Category = "Phone"
46+
Category = "Smart Phone"
4747
},
4848
new Product()
4949
{
@@ -52,7 +52,7 @@ public async Task<IActionResult> Init(string setting)
5252
Description = "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ut, tenetur natus doloremque laborum quos iste ipsum rerum obcaecati impedit odit illo dolorum ab tempora nihil dicta earum fugiat. Temporibus, voluptatibus. Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ut, tenetur natus doloremque laborum quos iste ipsum rerum obcaecati impedit odit illo dolorum ab tempora nihil dicta earum fugiat. Temporibus, voluptatibus.",
5353
ImageFile = "product-2.png",
5454
Price = 840.00M,
55-
Category = "Phone"
55+
Category = "Smart Phone"
5656
},
5757
new Product()
5858
{
@@ -61,7 +61,7 @@ public async Task<IActionResult> Init(string setting)
6161
Description = "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ut, tenetur natus doloremque laborum quos iste ipsum rerum obcaecati impedit odit illo dolorum ab tempora nihil dicta earum fugiat. Temporibus, voluptatibus. Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ut, tenetur natus doloremque laborum quos iste ipsum rerum obcaecati impedit odit illo dolorum ab tempora nihil dicta earum fugiat. Temporibus, voluptatibus.",
6262
ImageFile = "product-3.png",
6363
Price = 650.00M,
64-
Category = "Phone"
64+
Category = "White Appliances"
6565
},
6666
new Product()
6767
{
@@ -70,7 +70,7 @@ public async Task<IActionResult> Init(string setting)
7070
Description = "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ut, tenetur natus doloremque laborum quos iste ipsum rerum obcaecati impedit odit illo dolorum ab tempora nihil dicta earum fugiat. Temporibus, voluptatibus. Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ut, tenetur natus doloremque laborum quos iste ipsum rerum obcaecati impedit odit illo dolorum ab tempora nihil dicta earum fugiat. Temporibus, voluptatibus.",
7171
ImageFile = "product-4.png",
7272
Price = 470.00M,
73-
Category = "Phone"
73+
Category = "White Appliances"
7474
},
7575
new Product()
7676
{
@@ -79,7 +79,7 @@ public async Task<IActionResult> Init(string setting)
7979
Description = "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ut, tenetur natus doloremque laborum quos iste ipsum rerum obcaecati impedit odit illo dolorum ab tempora nihil dicta earum fugiat. Temporibus, voluptatibus. Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ut, tenetur natus doloremque laborum quos iste ipsum rerum obcaecati impedit odit illo dolorum ab tempora nihil dicta earum fugiat. Temporibus, voluptatibus.",
8080
ImageFile = "product-5.png",
8181
Price = 380.00M,
82-
Category = "Phone"
82+
Category = "Smart Phone"
8383
},
8484
new Product()
8585
{
@@ -88,7 +88,7 @@ public async Task<IActionResult> Init(string setting)
8888
Description = "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ut, tenetur natus doloremque laborum quos iste ipsum rerum obcaecati impedit odit illo dolorum ab tempora nihil dicta earum fugiat. Temporibus, voluptatibus. Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ut, tenetur natus doloremque laborum quos iste ipsum rerum obcaecati impedit odit illo dolorum ab tempora nihil dicta earum fugiat. Temporibus, voluptatibus.",
8989
ImageFile = "product-6.png",
9090
Price = 240.00M,
91-
Category = "Phone"
91+
Category = "Home Kitchen"
9292
}
9393
};
9494

src/WebApp/AspnetRunBasics/ApiCollection/BasketApi.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,15 @@ public BasketApi(IHttpClientFactory factory, IApiSettings settings)
2323
public async Task<BasketModel> GetBasket(string userName)
2424
{
2525
var message = new HttpRequestBuilder(_settings.BaseAddress)
26-
.SetPath(_settings.BasketPath + "//" + userName)
26+
.SetPath(_settings.BasketPath)
27+
.AddQueryString("username", userName)
2728
.HttpMethod(HttpMethod.Get)
2829
.GetHttpMessage();
2930

3031
return await SendRequest<BasketModel>(message);
3132
}
3233

33-
public async Task<BasketModel> AddBasket(BasketModel model)
34+
public async Task<BasketModel> UpdateBasket(BasketModel model)
3435
{
3536
var message = new HttpRequestBuilder(_settings.BaseAddress)
3637
.SetPath(_settings.BasketPath)
@@ -45,10 +46,9 @@ public async Task<BasketModel> AddBasket(BasketModel model)
4546

4647
public async Task CheckoutBasket(BasketCheckoutModel model)
4748
{
48-
var postPath = _settings.BasketPath + "/Checkout";
49-
5049
var message = new HttpRequestBuilder(_settings.BaseAddress)
51-
.SetPath(postPath)
50+
.SetPath(_settings.BasketPath)
51+
.AddToPath("Checkout")
5252
.HttpMethod(HttpMethod.Post)
5353
.GetHttpMessage();
5454

src/WebApp/AspnetRunBasics/ApiCollection/CatalogApi.cs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,8 @@ public async Task<IEnumerable<CatalogModel>> GetCatalog()
3333
public async Task<CatalogModel> GetCatalog(string id)
3434
{
3535
var message = new HttpRequestBuilder(_settings.BaseAddress)
36-
.SetPath(_settings.CatalogPath + "//" + id)
36+
.SetPath(_settings.CatalogPath)
37+
.AddToPath(id)
3738
.HttpMethod(HttpMethod.Get)
3839
.GetHttpMessage();
3940

@@ -42,10 +43,10 @@ public async Task<CatalogModel> GetCatalog(string id)
4243

4344
public async Task<IEnumerable<CatalogModel>> GetCatalogByCategory(string category)
4445
{
45-
var queryPath = _settings.CatalogPath + "/GetProductByCategory/" + category;
46-
4746
var message = new HttpRequestBuilder(_settings.BaseAddress)
48-
.SetPath(queryPath)
47+
.SetPath(_settings.CatalogPath)
48+
.AddToPath("GetProductByCategory")
49+
.AddToPath(category)
4950
.HttpMethod(HttpMethod.Get)
5051
.GetHttpMessage();
5152

src/WebApp/AspnetRunBasics/ApiCollection/Interfaces/IBasketApi.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ namespace AspnetRunBasics.ApiCollection.Interfaces
99
public interface IBasketApi
1010
{
1111
Task<BasketModel> GetBasket(string userName);
12-
Task<BasketModel> AddBasket(BasketModel model);
12+
Task<BasketModel> UpdateBasket(BasketModel model);
1313
Task CheckoutBasket(BasketCheckoutModel model);
1414
}
1515
}
Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
1-
using System.Threading.Tasks;
1+
using AspnetRunBasics.Models;
2+
using System.Collections.Generic;
3+
using System.Threading.Tasks;
24

35
namespace AspnetRunBasics.ApiCollection.Interfaces
46
{
57
public interface IOrderApi
68
{
7-
Task<OrderModel> GetOrder(string userName);
9+
Task<IEnumerable<OrderResponseModel>> GetOrdersByUserName(string userName);
810
}
911
}

src/WebApp/AspnetRunBasics/ApiCollection/OrderApi.cs

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
using AspnetRunBasics.ApiCollection.Infrastructure;
22
using AspnetRunBasics.ApiCollection.Interfaces;
3+
using AspnetRunBasics.Models;
34
using AspnetRunBasics.Settings;
5+
using System.Collections.Generic;
46
using System.Net.Http;
57
using System.Threading.Tasks;
68

@@ -16,14 +18,15 @@ public OrderApi(IHttpClientFactory factory, IApiSettings settings)
1618
_settings = settings;
1719
}
1820

19-
public async Task<OrderModel> GetOrder(string userName)
21+
public async Task<IEnumerable<OrderResponseModel>> GetOrdersByUserName(string userName)
2022
{
2123
var message = new HttpRequestBuilder(_settings.BaseAddress)
22-
.SetPath(_settings.OrderPath + "//" + userName)
23-
.HttpMethod(HttpMethod.Get)
24-
.GetHttpMessage();
24+
.SetPath(_settings.OrderPath)
25+
.AddQueryString("username", userName)
26+
.HttpMethod(HttpMethod.Get)
27+
.GetHttpMessage();
2528

26-
return await SendRequest<OrderModel>(message);
29+
return await SendRequest<IEnumerable<OrderResponseModel>>(message);
2730
}
2831
}
2932
}

src/WebApp/AspnetRunBasics/Entities/Cart.cs

Lines changed: 0 additions & 25 deletions
This file was deleted.

src/WebApp/AspnetRunBasics/Entities/CartItem.cs

Lines changed: 0 additions & 12 deletions
This file was deleted.

src/WebApp/AspnetRunBasics/Entities/Category.cs

Lines changed: 0 additions & 14 deletions
This file was deleted.

src/WebApp/AspnetRunBasics/Entities/Contact.cs

Lines changed: 0 additions & 23 deletions
This file was deleted.

src/WebApp/AspnetRunBasics/Entities/Order.cs

Lines changed: 0 additions & 32 deletions
This file was deleted.

src/WebApp/AspnetRunBasics/Entities/Product.cs

Lines changed: 0 additions & 19 deletions
This file was deleted.

src/WebApp/AspnetRunBasics/Models/BasketItemModel.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,6 @@ public class BasketItemModel
1111
public string Color { get; set; }
1212
public decimal Price { get; set; }
1313
public string ProductId { get; set; }
14+
public string ProductName { get; set; }
1415
}
1516
}

src/WebApp/AspnetRunBasics/Models/OrderModel.cs renamed to src/WebApp/AspnetRunBasics/Models/OrderResponseModel.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
namespace AspnetRunBasics.Models
22
{
3-
public class OrderModel
3+
public class OrderResponseModel
44
{
55
public string UserName { get; set; }
66
public decimal TotalPrice { get; set; }

src/WebApp/AspnetRunBasics/Pages/Cart.cshtml

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,16 +38,15 @@
3838
{
3939
<tr>
4040
<td><img src="https://dummyimage.com/50x50/55595c/fff" /></td>
41-
<td>@cartItem.Product.Name</td>
41+
<td>@cartItem.ProductName</td>
4242
<td>In stock</td>
4343
<td><input class="form-control" type="text" value="@cartItem.Quantity" /></td>
4444
<td class="text-right">@(cartItem.Price * cartItem.Quantity) $</td>
4545
<td class="text-right">
4646

4747
<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" />
48+
<button class="btn btn-sm btn-danger"><i class="fa fa-trash"></i></button>
49+
<input type="hidden" asp-for="@cartItem.ProductId" name="productId" />
5150
</form>
5251

5352
</td>

src/WebApp/AspnetRunBasics/Pages/Cart.cshtml.cs

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,42 @@
11
using System;
2+
using System.Linq;
23
using System.Threading.Tasks;
3-
using AspnetRunBasics.Entities;
4-
using AspnetRunBasics.Repositories;
4+
using AspnetRunBasics.ApiCollection.Interfaces;
5+
using AspnetRunBasics.Models;
56
using Microsoft.AspNetCore.Mvc;
67
using Microsoft.AspNetCore.Mvc.RazorPages;
78

89
namespace AspnetRunBasics
910
{
1011
public class CartModel : PageModel
1112
{
12-
private readonly ICartRepository _cartRepository;
13+
private readonly IBasketApi _basketApi;
1314

14-
public CartModel(ICartRepository cartRepository)
15+
public CartModel(IBasketApi basketApi)
1516
{
16-
_cartRepository = cartRepository ?? throw new ArgumentNullException(nameof(cartRepository));
17+
_basketApi = basketApi ?? throw new ArgumentNullException(nameof(basketApi));
1718
}
1819

19-
public Entities.Cart Cart { get; set; } = new Entities.Cart();
20+
public BasketModel Cart { get; set; } = new BasketModel();
2021

2122
public async Task<IActionResult> OnGetAsync()
2223
{
23-
Cart = await _cartRepository.GetCartByUserName("test");
24+
var userName = "swn";
25+
Cart = await _basketApi.GetBasket(userName);
2426

2527
return Page();
2628
}
2729

28-
public async Task<IActionResult> OnPostRemoveToCartAsync(int cartId, int cartItemId)
30+
public async Task<IActionResult> OnPostRemoveToCartAsync(string productId)
2931
{
30-
await _cartRepository.RemoveItem(cartId, cartItemId);
32+
var userName = "swn";
33+
var basket = await _basketApi.GetBasket(userName);
34+
35+
var item = basket.Items.Single(x => x.ProductId == productId);
36+
basket.Items.Remove(item);
37+
38+
var basketUpdated = await _basketApi.UpdateBasket(basket);
39+
3140
return RedirectToPage();
3241
}
3342
}

src/WebApp/AspnetRunBasics/Pages/CheckOut.cshtml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@
3131
{
3232
<li class="list-group-item d-flex justify-content-between lh-condensed">
3333
<div>
34-
<h6 class="my-0">@item.Product.Name</h6>
35-
<small class="text-muted">@item.Product.Summary</small>
34+
<h6 class="my-0">@item.ProductName</h6>
35+
@*<small class="text-muted">@item.Product.Summary</small>*@
3636
</div>
3737
<span class="text-muted">$@item.Price</span>
3838
</li>

0 commit comments

Comments
 (0)