diff --git a/EnotaryoPH/EnotaryoPH.Data/Constants/TransactionStatus.cs b/EnotaryoPH/EnotaryoPH.Data/Constants/TransactionStatus.cs new file mode 100644 index 0000000..9e0c653 --- /dev/null +++ b/EnotaryoPH/EnotaryoPH.Data/Constants/TransactionStatus.cs @@ -0,0 +1,11 @@ +namespace EnotaryoPH.Data.Constants +{ + public enum TransactionStatus + { + New = 0, + SelfiePassed = 1, + DocumentUploaded = 2, + Submitted = 3, + Completed = 100 + } +} \ No newline at end of file diff --git a/EnotaryoPH/EnotaryoPH.Web/Pages/Login.cshtml.cs b/EnotaryoPH/EnotaryoPH.Web/Pages/Login.cshtml.cs index 9623c8d..8f38861 100644 --- a/EnotaryoPH/EnotaryoPH.Web/Pages/Login.cshtml.cs +++ b/EnotaryoPH/EnotaryoPH.Web/Pages/Login.cshtml.cs @@ -12,8 +12,8 @@ namespace EnotaryoPH.Web.Pages { public class LoginModel : PageModel { - private readonly IPasswordService _passwordService; private readonly NotaryoDBContext _notaryoDBContext; + private readonly IPasswordService _passwordService; public LoginModel(IPasswordService passwordService, NotaryoDBContext notaryoDBContext) { @@ -51,10 +51,10 @@ namespace EnotaryoPH.Web.Pages var claims = new List { - new("User_UID", user.User_UID.ToString()), + new(ClaimTypes.NameIdentifier, user.User_UID.ToString()), new(ClaimTypes.Name, user.Email), new(ClaimTypes.Email, user.Email), - new(ClaimTypes.Role, user.Role) + new(ClaimTypes.Role, user.Role!) }; var claimsIdentity = new ClaimsIdentity( claims, CookieAuthenticationDefaults.AuthenticationScheme); @@ -65,7 +65,7 @@ namespace EnotaryoPH.Web.Pages new ClaimsPrincipal(claimsIdentity), authProperties); - return RedirectToPage("/Principal/Dashboard"); + return RedirectToPage("/Principal/Dashboard/Dashboard"); } [Required] diff --git a/EnotaryoPH/EnotaryoPH.Web/Pages/Principal/Dashboard.cshtml.cs b/EnotaryoPH/EnotaryoPH.Web/Pages/Principal/Dashboard.cshtml.cs deleted file mode 100644 index d5826fa..0000000 --- a/EnotaryoPH/EnotaryoPH.Web/Pages/Principal/Dashboard.cshtml.cs +++ /dev/null @@ -1,12 +0,0 @@ -using Microsoft.AspNetCore.Mvc; -using Microsoft.AspNetCore.Mvc.RazorPages; - -namespace EnotaryoPH.Web.Pages.Principal -{ - public class DashboardModel : PageModel - { - public void OnGet() - { - } - } -} diff --git a/EnotaryoPH/EnotaryoPH.Web/Pages/Principal/Dashboard.cshtml b/EnotaryoPH/EnotaryoPH.Web/Pages/Principal/Dashboard/Dashboard.cshtml similarity index 50% rename from EnotaryoPH/EnotaryoPH.Web/Pages/Principal/Dashboard.cshtml rename to EnotaryoPH/EnotaryoPH.Web/Pages/Principal/Dashboard/Dashboard.cshtml index 3146d91..7877af9 100644 --- a/EnotaryoPH/EnotaryoPH.Web/Pages/Principal/Dashboard.cshtml +++ b/EnotaryoPH/EnotaryoPH.Web/Pages/Principal/Dashboard/Dashboard.cshtml @@ -1,5 +1,5 @@ @page -@model EnotaryoPH.Web.Pages.Principal.DashboardModel +@model EnotaryoPH.Web.Pages.Principal.Dashboard.DashboardModel @{ } @@ -12,14 +12,14 @@
-
+

Completed Documents

@@ -32,16 +32,25 @@ - - Deed of Absolute Sale - 2024-11-01 - Download - - - Certification
against non-forum shopping - 2024-01-25 - Download - + @if (Model.CompletedDocuments.Count > 0) + { + @foreach (var item in Model.CompletedDocuments) + { + + @item.Type + @item.Date.ToShortDateString() + View + + } + } + else + { + + + No records to display. + + + }
@@ -60,16 +69,23 @@ - - Deed of Absolute Sale - Submitted - View - - - Certification
against non-forum shopping - Assigned - View - + @if(Model.CompletedDocuments.Count > 0){ + @foreach (var item in Model.CompletedDocuments) + { + + @item.Type + @item.Status + View + + } + } + else { + + + No records to display. + + + }
@@ -88,19 +104,34 @@ - - Driver's License - 2024-11-01 - View - - - Passport - 2024-01-25 - View - + @if (Model.CompletedDocuments.Count > 0) + { + @foreach (var item in Model.CompletedDocuments) + { + + @item.Type + @item.Date.ToShortDateString() + View + + } + } + else + { + + + No records to display. + + + }
+
+ +
diff --git a/EnotaryoPH/EnotaryoPH.Web/Pages/Principal/Dashboard/Dashboard.cshtml.cs b/EnotaryoPH/EnotaryoPH.Web/Pages/Principal/Dashboard/Dashboard.cshtml.cs new file mode 100644 index 0000000..e3034c5 --- /dev/null +++ b/EnotaryoPH/EnotaryoPH.Web/Pages/Principal/Dashboard/Dashboard.cshtml.cs @@ -0,0 +1,61 @@ +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; } + } +} \ No newline at end of file diff --git a/EnotaryoPH/EnotaryoPH.Web/Pages/Principal/Dashboard/DashboardItem.cs b/EnotaryoPH/EnotaryoPH.Web/Pages/Principal/Dashboard/DashboardItem.cs new file mode 100644 index 0000000..53bba6a --- /dev/null +++ b/EnotaryoPH/EnotaryoPH.Web/Pages/Principal/Dashboard/DashboardItem.cs @@ -0,0 +1,10 @@ +namespace EnotaryoPH.Web.Pages.Principal.Dashboard +{ + public class DashboardItem + { + public DateTime Date { get; set; } + public string Link { get; set; } + public string Status { get; set; } + public string Type { get; set; } + } +} \ No newline at end of file