using EnotaryoPH.Data; using EnotaryoPH.Data.Constants; using EnotaryoPH.Web.Common.Services; using Microsoft.AspNetCore.Mvc.RazorPages; using Microsoft.EntityFrameworkCore; namespace EnotaryoPH.Web.Pages.Principal.Dashboard { public class DashboardModel : PageModel { private readonly NotaryoDBContext _notaryoDBContext; private readonly ICurrentUserService _currentUserService; public DashboardModel(NotaryoDBContext notaryoDBContext, ICurrentUserService currentUserService) { _notaryoDBContext = notaryoDBContext; _currentUserService = currentUserService; } public void OnGet() { var user = _notaryoDBContext.Users.FirstOrDefault(u => u.User_UID == _currentUserService.GetUser_UID()); _notaryoDBContext.Transactions.Include(t => t.TransactionDocument); var userTransactions = _notaryoDBContext.Transactions.Where(e => e.PrincipalID == user.UserID).ToList(); CompletedDocuments = userTransactions .Where(ut => ut.Status == nameof(TransactionStatus.Completed)) .Select(ut => new DashboardItem { Date = ut.TransactionDate, Status = ut.Status, Type = ut.TransactionDocument.DocumentType, Link = "#" }) .ToList(); IncompleteDocuments = userTransactions .Where(ut => ut.Status != nameof(TransactionStatus.Completed)) .Select(ut => new DashboardItem { Date = ut.TransactionDate, Status = ut.Status, Type = ut.TransactionDocument.DocumentType, Link = "#" }) .ToList(); IdentificationDocuments = _notaryoDBContext.IdentificationDocuments .Where(id => id.UserID == user.UserID) .Select(id => new DashboardItem { Date = id.UploadedOn, Type = id.Type, Link = "#" }) .ToList(); } public List CompletedDocuments { get; set; } public List IncompleteDocuments { get; set; } public List IdentificationDocuments { get; set; } } }