@using Groceries.Data @using Microsoft.EntityFrameworkCore @layout Layout @inject AppDbContext DbContext Groceries – New Transaction

New Transaction

@Transaction.CreatedAt.ToShortDateString() @Transaction.CreatedAt.ToLongTimeString() – @store

Items

New item
@foreach (var item in Transaction.Items) { }
Name Price Qty Amount
@itemNames.GetValueOrDefault(item.ItemId) @item.Price.ToString("c") @item.Quantity @item.Amount.ToString("c") Edit
Subtotal @Transaction.Items.Sum(item => item.Amount).ToString("c")
Back
@code { [Parameter] public required Transaction Transaction { get; set; } private string store = string.Empty; private Dictionary itemNames = new(); protected override async Task OnParametersSetAsync() { store = await DbContext.Stores .Where(store => store.Id == Transaction.StoreId) .Select(store => string.Concat(store.Retailer!.Name, " ", store.Name)) .SingleAsync(); var itemIds = Transaction.Items.Select(item => item.ItemId); itemNames = await DbContext.Items .Where(item => itemIds.Contains(item.Id)) .ToDictionaryAsync(item => item.Id, item => string.Concat(item.Brand, " ", item.Name)); } }