From ad026acb666b29940e3adaa1b73917ef968bba47 Mon Sep 17 00:00:00 2001 From: jojo aquino Date: Sat, 22 Mar 2025 09:32:55 +0000 Subject: [PATCH] add EmailSent in checking for signatory --- .../EnotaryoPH.Web/Common/Extensions/StringExtensions.cs | 2 ++ .../Pages/Participant/Registration/Index.cshtml.cs | 7 ++++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/EnotaryoPH/EnotaryoPH.Web/Common/Extensions/StringExtensions.cs b/EnotaryoPH/EnotaryoPH.Web/Common/Extensions/StringExtensions.cs index 391a55d..deacccc 100644 --- a/EnotaryoPH/EnotaryoPH.Web/Common/Extensions/StringExtensions.cs +++ b/EnotaryoPH/EnotaryoPH.Web/Common/Extensions/StringExtensions.cs @@ -10,6 +10,8 @@ public static bool IsInList(this string s, params string[] list) => list.Contains(s, StringComparer.OrdinalIgnoreCase); + public static bool IsInList(this string stringValue, IEnumerable listOfEnums) where T : struct, Enum => Enum.TryParse(stringValue, out T enumValue) && listOfEnums.Contains(enumValue); + public static string NullIfWhiteSpace(this string s) => string.IsNullOrWhiteSpace(s) ? null : s; public static Guid ToGuidFromBase64(this string s) diff --git a/EnotaryoPH/EnotaryoPH.Web/Pages/Participant/Registration/Index.cshtml.cs b/EnotaryoPH/EnotaryoPH.Web/Pages/Participant/Registration/Index.cshtml.cs index a51bc9e..d3d1596 100644 --- a/EnotaryoPH/EnotaryoPH.Web/Pages/Participant/Registration/Index.cshtml.cs +++ b/EnotaryoPH/EnotaryoPH.Web/Pages/Participant/Registration/Index.cshtml.cs @@ -24,16 +24,17 @@ namespace EnotaryoPH.Web.Pages.Participant.Registration return NotFound(); } + var validStates = new SignatoryStatus[] { SignatoryStatus.New, SignatoryStatus.Registered, SignatoryStatus.EmailSent }; var invitationCodeGuid = InvitationCode.ToGuidFromBase64(); var signatory = _notaryoDBContext.TransactionSignatories .Include(e => e.Transaction) - .FirstOrDefault(e => e.InvitationCode == invitationCodeGuid.ToString() && (e.Status == nameof(SignatoryStatus.New) || e.Status == nameof(SignatoryStatus.Registered))); - if (signatory == null) + .FirstOrDefault(e => e.InvitationCode == invitationCodeGuid.ToString()); + if (signatory == null || !signatory.Status.IsInList(validStates)) { return NotFound(); } - var existingUser = _notaryoDBContext.Users.FirstOrDefault(e => e.Email.Equals(signatory.Email, StringComparison.CurrentCultureIgnoreCase)); + var existingUser = _notaryoDBContext.Users.FirstOrDefault(e => e.Email.ToLower() == signatory.Email.ToLower()); if (existingUser != null) { signatory.Status = nameof(SignatoryStatus.Registered);