Added expired services overview to store pages

This commit is contained in:
Marcel Baumgartner 2023-11-15 21:02:35 +01:00
parent 3092daaad4
commit 6d5a5fd16c
2 changed files with 79 additions and 0 deletions

View file

@ -16,6 +16,11 @@
<i class="bx bx-sm bx-gift me-2"></i> Gifts
</a>
</li>
<li class="nav-item mt-2">
<a class="nav-link text-active-primary ms-0 me-10 py-5 @(Index == 3 ? "active" : "")" href="/admin/store/expired">
<i class="bx bx-sm bx-timer me-2"></i> Expired services
</a>
</li>
</ul>
</div>
</div>

View file

@ -0,0 +1,74 @@
@page "/admin/store/expired"
@using Moonlight.App.Extensions.Attributes
@using Moonlight.App.Models.Enums
@using Moonlight.App.Database.Entities.Store
@using BlazorTable
@using Microsoft.EntityFrameworkCore
@using Moonlight.App.Repositories
@attribute [RequirePermission(Permission.AdminStore)]
@inject Repository<Service> ServiceRepository
<AdminStoreNavigation Index="3"/>
<div class="card">
<div class="card-header">
<h3 class="card-title">Expired services</h3>
</div>
<div class="card-body">
<LazyLoader Load="Load">
<Table TableItem="Service"
Items="Services"
PageSize="50"
TableClass="table table-row-bordered table-row-gray-100 align-middle gs-0 gy-3 fs-6"
TableHeadClass="fw-bold text-muted">
<Column TableItem="Service" Field="@(x => x.Id)" Title="Id" Filterable="true" Sortable="true"/>
<Column TableItem="Service" Field="@(x => x.Nickname)" Title="Name" Filterable="true" Sortable="false">
<Template>
<a href="/admin/services/view/@(context.Id)">@(context.Nickname ?? $"Service {context.Id}")</a>
</Template>
</Column>
<Column TableItem="Service" Field="@(x => x.Owner)" Title="Owner" Filterable="false" Sortable="false">
<Template>
<span>@(context.Owner.Username)</span>
</Template>
</Column>
<Column TableItem="Service" Field="@(x => x.Product)" Title="Type" Filterable="false" Sortable="false">
<Template>
<span>@(context.Product.Type)</span>
</Template>
</Column>
<Column TableItem="Service" Field="@(x => x.Product)" Title="Product" Filterable="false" Sortable="false">
<Template>
<span>@(context.Product.Name)</span>
</Template>
</Column>
<Column TableItem="Service" Field="@(x => x.CreatedAt)" Title="Created at" Filterable="true" Sortable="true"/>
<Column TableItem="Service" Field="@(x => x.RenewAt)" Title="" Filterable="false" Sortable="true">
<Template>
<span>Expired since @(Formatter.FormatAgoFromDateTime(context.RenewAt))</span>
</Template>
</Column>
</Table>
</LazyLoader>
</div>
</div>
@code
{
private Service[] Services;
private Task Load(LazyLoader lazyLoader)
{
Services = ServiceRepository
.Get()
.Include(x => x.Owner)
.Include(x => x.Product)
.Where(x => x.RenewAt < DateTime.UtcNow)
.ToArray();
return Task.CompletedTask;
}
}