member_center/src/MemberCenter.Web/Services/AdminDashboardFactory.cs
2026-07-08 20:05:38 +09:00

25 lines
783 B
C#

using MemberCenter.Infrastructure.Persistence;
using MemberCenter.Web.Models.Admin;
using Microsoft.EntityFrameworkCore;
namespace MemberCenter.Web.Services;
public sealed class AdminDashboardFactory
{
private readonly MemberCenterDbContext _dbContext;
public AdminDashboardFactory(MemberCenterDbContext dbContext)
{
_dbContext = dbContext;
}
public async Task<AdminDashboardViewModel> BuildAsync() =>
new()
{
MemberCount = await _dbContext.Users.CountAsync(),
PendingVerificationCount = await _dbContext.Users.CountAsync(user => !user.EmailConfirmed),
TenantCount = await _dbContext.Tenants.CountAsync(),
NewsletterListCount = await _dbContext.NewsletterLists.CountAsync()
};
}