add EmailSent in checking for signatory

This commit is contained in:
jojo aquino 2025-03-22 09:32:55 +00:00
parent a09e2a5613
commit ad026acb66
2 changed files with 6 additions and 3 deletions

View File

@ -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 s, params string[] list) => list.Contains(s, StringComparer.OrdinalIgnoreCase);
public static bool IsInList<T>(this string stringValue, IEnumerable<T> 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 string NullIfWhiteSpace(this string s) => string.IsNullOrWhiteSpace(s) ? null : s;
public static Guid ToGuidFromBase64(this string s) public static Guid ToGuidFromBase64(this string s)

View File

@ -24,16 +24,17 @@ namespace EnotaryoPH.Web.Pages.Participant.Registration
return NotFound(); return NotFound();
} }
var validStates = new SignatoryStatus[] { SignatoryStatus.New, SignatoryStatus.Registered, SignatoryStatus.EmailSent };
var invitationCodeGuid = InvitationCode.ToGuidFromBase64(); var invitationCodeGuid = InvitationCode.ToGuidFromBase64();
var signatory = _notaryoDBContext.TransactionSignatories var signatory = _notaryoDBContext.TransactionSignatories
.Include(e => e.Transaction) .Include(e => e.Transaction)
.FirstOrDefault(e => e.InvitationCode == invitationCodeGuid.ToString() && (e.Status == nameof(SignatoryStatus.New) || e.Status == nameof(SignatoryStatus.Registered))); .FirstOrDefault(e => e.InvitationCode == invitationCodeGuid.ToString());
if (signatory == null) if (signatory == null || !signatory.Status.IsInList(validStates))
{ {
return NotFound(); 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) if (existingUser != null)
{ {
signatory.Status = nameof(SignatoryStatus.Registered); signatory.Status = nameof(SignatoryStatus.Registered);