コード例 #1
0
        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);
        }