Пример #1
0
        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);
            }
        }
Пример #2
0
        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();
            }
        }
Пример #3
0
 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);
         }
     }
 }
Пример #4
0
        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);
        }
Пример #5
0
        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));
        }