aspnetcore/samples/MusicStore/Components/CartSummaryComponent.cs

31 lines
837 B
C#

using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using MusicStore.Models;
namespace MusicStore.Components
{
[ViewComponent(Name = "CartSummary")]
public class CartSummaryComponent : ViewComponent
{
public CartSummaryComponent(MusicStoreContext dbContext)
{
DbContext = dbContext;
}
private MusicStoreContext DbContext { get; }
public async Task<IViewComponentResult> InvokeAsync()
{
var cart = ShoppingCart.GetCart(DbContext, HttpContext);
var cartItems = await cart.GetCartAlbumTitles();
ViewBag.CartCount = cartItems.Count;
ViewBag.CartSummary = string.Join("\n", cartItems.Distinct());
return View();
}
}
}