public JsonResult ChangeEmail(string email)
 {
     Account target = work_entity.Account.First(x => x.UserName == User.Identity.Name);
     AccountSecurityToken AC = new AccountSecurityToken(target, email);
     string param = $"/?user={target.UserName}&email={email}&token={AC.Token}";
     MessageGenerator MG = new MessageGenerator("ChangeEmail", target, param);
     Mail.SendMail(target, MG.Message, MG.Subject);
     return null;
 }
 public ActionResult ConfirmEmail(string token, string user, string email)
 {
     Account target = work_entity.Account.First(x => x.UserName == user);
     AccountSecurityToken First = new AccountSecurityToken(target, email);
     AccountSecurityToken Second = new AccountSecurityToken(token);
     if (First == Second)
     {
         target.Email = email;
         work_entity.SaveChanges();
         ViewData["Changed"] = $"{target.FirstName} {target.LastName} <br/> Вашу пошту було успішно змінено";
         return View("ConfirmView", target);
     }
     return View();
 }
 public JsonResult ChangePassword(string OldPass, string NewPass)
 {
     Account target = work_entity.Account.First(x => x.UserName == User.Identity.Name);
     if (OldPass == target.Password)
     {
         try
         {
             AccountSecurityToken AC = new AccountSecurityToken(target, NewPass);
             string param = $"/?user={target.UserName}&token={AC.Token}";
             MessageGenerator MG = new MessageGenerator("ChangePassword", target, param);
             Mail.SendMail(target, MG.Message, MG.Subject);
             target.NewPassword = NewPass;
             work_entity.SaveChanges();
             return Json(new Result(true, "На вашу пошту відправлений лист для підтвердження"));
         }
         catch (Exception ex)
         {
             return Json(new Result(false, ex.Message));
         }
     }
     else
         return Json(new Result(false, "Схоже ви ввели неправильний старий пароль. Будь-ласка , перевірте його правильність та спробуйте ще раз."));
 }
        public ActionResult ConfirmPassword(string token, string user)
        {
            Account target = work_entity.Account.First(x => x.UserName == user);
            AccountSecurityToken First = new AccountSecurityToken(target, target.NewPassword);
            AccountSecurityToken Second = new AccountSecurityToken(token);
            if (First == Second)
            {
                target.Password = target.NewPassword;
                target.NewPassword = null;
                work_entity.SaveChanges();
                ViewData["Changed"] = $"{target.FirstName} {target.LastName} <br/> Ваш пароль було успішно змінено";
                return View("ConfirmView");

            }

            return View();
        }