@using Groceries.Data
@layout Layout
@inject AppDbContext DbContext
Groceries – Transactions
@*
View
*@
@code {
private record TransactionModel
{
public Guid Id { get; init; }
public DateTime CreatedAt { get; init; }
public required string Store { get; init; }
public decimal TotalAmount { get; init; }
public int TotalItems { get; init; }
}
private IQueryable transactions = null!;
private PaginationState pagination = new();
protected override void OnParametersSet()
{
transactions = DbContext.Transactions
.Join(
DbContext.TransactionTotals,
transaction => transaction.Id,
transactionTotal => transactionTotal.TransactionId,
(transaction, transactionTotal) => new TransactionModel
{
Id = transaction.Id,
CreatedAt = transaction.CreatedAt,
Store = string.Concat(transaction.Store!.Retailer!.Name, " ", transaction.Store.Name),
TotalAmount = transactionTotal.Total,
TotalItems = transaction.Items.Sum(item => item.Quantity),
})
.OrderByDescending(transaction => transaction.CreatedAt);
}
}