2024-12-16 17:30:27 +00:00

61 lines
2.4 KiB
C#

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 ICurrentUserService _currentUserService;
private readonly NotaryoDBContext _notaryoDBContext;
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 = $"/Principal/IdentificationDocument/IdentificationDocument/{id.IdentificationDocument_UID}"
})
.ToList();
}
public List<DashboardItem> CompletedDocuments { get; set; }
public List<DashboardItem> IdentificationDocuments { get; set; }
public List<DashboardItem> IncompleteDocuments { get; set; }
}
}