public Activation_Link GetActivationLink(string activationCode) { using (var db = new AgnosDBContext()) { Activation_Link link = db.Activation_Link .Where(w => w.Activation_Code.Equals(activationCode)) .FirstOrDefault(); return(link); } }
public void SetExpireActivationLinkTimeLimit(int link_id) { DateTime currentdate = StoredProcedure.GetCurrentDate(); using (var db = new AgnosDBContext()) { Activation_Link link = db.Activation_Link .Where(w => w.Activation_ID == link_id) .FirstOrDefault(); link.Time_Limit = currentdate; db.Entry(link).State = EntityState.Modified; db.SaveChanges(); } }
public Boolean validateActivationCode(String code) { using (var db = new AgnosDBContext()) { Activation_Link u = (from a in db.Activation_Link where a.Activation_Code.Equals(code) select a).FirstOrDefault(); if (u != null) { return(false); } else { return(true); } } }
public int sendResetPassword(int Profile_ID, string domain) { DateTime currentdate = StoredProcedure.GetCurrentDate(); using (var db = new AgnosDBContext()) { try { User_Profile user = getUser(Profile_ID); //GENERATE ACTIVATION CODE String code; do { code = "R" + randomString(40); } while (!validateActivationCode(code)); Activation_Link activation_link = new Activation_Link() { Activation_Code = code, //SET Time_Limit to activate within LINK_TIME_LIMIT hour Time_Limit = currentdate.AddHours(LINK_TIME_LIMIT), Profile_ID = user.Profile_ID }; db.Activation_Link.Add(activation_link); db.SaveChanges(); try { //SEND EMAIL //4 System Send reset password link to user EmailTemplete.sendResetPasswordEmail(user.Email_Address, code, user.Name, domain); } catch { return(0); } } catch { return(0); } } return(1); }
public ActionResult ResetPassword(String code = "", int uid = 0) { var currentdate = StoredProcedure.GetCurrentDate(); ResetPasswordViewModel model = new ResetPasswordViewModel(); var userService = new UserService(); bool activate = false; model.IsActivationLink = false; if (HttpContext.Session["Activate"] != null) { activate = (bool)HttpContext.Session["Activate"]; } //By Activation if (activate) { User_Profile user = GetUser(); if (user != null) { model.uid = user.Profile_ID; model.name = user.Name; HttpContext.Session["ResetPassword"] = model.uid; HttpContext.Session["ResetPassword_NotValidateCurrent"] = true; model.notValidateCurrent = true; } } else if (code.Length == 0 && uid == 0 && isAuthenticatedUser()) { User_Profile user = GetUser(); if (user != null) { model.uid = user.Profile_ID; model.name = user.Name; HttpContext.Session["ResetPassword"] = model.uid; HttpContext.Session["ResetPassword_NotValidateCurrent"] = false; model.notValidateCurrent = false; } } else if (code.Length > 0 && uid == 0) { Activation_Link link = userService.GetActivationLink(code); if (link != null) { if (link.Time_Limit > currentdate) { User_Profile user = userService.getUser(link.Profile_ID); if (user != null) { model.IsActivationLink = true; model.uid = user.Profile_ID; model.name = user.Name; HttpContext.Session["ResetPassword"] = user.Profile_ID; HttpContext.Session["ResetPassword_NotValidateCurrent"] = true; HttpContext.Session["ResetPassword_ID"] = link.Activation_ID; model.notValidateCurrent = true; } } else { //ERROR4 return(RedirectToAction("ErrorPage", "Account", new ErrorViewModel() { Message = Error.GetMessage(ReturnCode.ERROR_RESET_PASSWORD_EXPIRE) })); } } else { //ERROR5 return(RedirectToAction("ErrorPage", "Account", new ErrorViewModel() { Message = Error.GetMessage(ReturnCode.ERROR_RESET_PASSWORD_CODE_NOT_FOUND) })); } } else if (uid > 0) { User_Profile user = userService.getUser(uid); if (user != null) { model.uid = user.Profile_ID; model.name = user.Name; HttpContext.Session["ResetPassword"] = model.uid; HttpContext.Session["ResetPassword_NotValidateCurrent"] = true; model.notValidateCurrent = true; } } else { return(returnUnAuthorize()); } return(View(model)); }