public static VerificationResult reSendVerificationLog(string userId, String email) { VerificationResult result = new VerificationResult(); var userManager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(new ApplicationDbContext())); if (userManager.IsInRole(userId, "Client")) { result.addError("User is already verified!"); return(result); } List <UserVerificationLog> oldLogs = db.UserVerificationLogs.Where(a => a.UserId.Equals(userId) && a.Status.Equals("NOT_CONFIRMED")).ToList(); if (oldLogs.Count >= 10) { result.addError("Reached Code Limit"); return(result); } foreach (var item in oldLogs) { item.Status = "EXPIRED"; item.LastModificationDate = DateTime.Now; db.Entry(item).State = EntityState.Modified; } return(generateVerificationLog(userId, email)); }
public static VerificationResult verifyCode(string userId, String code) { VerificationResult result = new VerificationResult(); var userManager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(new ApplicationDataContext())); if (userManager.IsInRole(userId, "Guest")) { result.addError("User is already verified!"); return(result); } UserVerificationLog currentLog = db.UserVerificationLogs.Where(a => a.UserId.Equals(userId) && a.Status.Equals("NOT_CONFIRMED") && a.Code.Equals(code)).FirstOrDefault(); if (currentLog != null) { if (currentLog.ExpiryDate.CompareTo(DateTime.Now) < 0) { result.addError("Code is expired, Request new one please!"); return(result); } currentLog.ConfirmationDate = DateTime.Now; currentLog.Status = "CONFIRMED"; currentLog.LastModificationDate = DateTime.Now; db.Entry(currentLog).State = EntityState.Modified; db.SaveChanges(); assignUserToGuestRole(userId); result.addSuccess("Success"); } else { result.addError("Code is wrong"); } return(result); }