public IActionResult EmailValidation(EmailValidationViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = _userService.GetUserByUsername(model.Username);

                if (user == null)
                {
                    TempData["Message"]      = "Böyle bir kullanıcı bulunamadı !";
                    TempData["MessageState"] = "danger";

                    return(RedirectToAction("Login", "Account"));
                }

                if (HttpContext.Session.GetString(model.Username) == model.Code)
                {
                    user.IsEmailConfirm = true;
                    _userService.Update(user);

                    var identity = new ClaimsIdentity(new[]
                    {
                        new Claim(ClaimTypes.NameIdentifier, user.Id.ToString()),
                        new Claim(ClaimTypes.Name, user.UserName),
                        new Claim(ClaimTypes.Email, user.Email),
                        new Claim(ClaimTypes.Role, user.Role.Name)
                    },
                                                      CookieAuthenticationDefaults.AuthenticationScheme);

                    var principal = new ClaimsPrincipal(identity);

                    HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, principal);

                    TempData["Message"]      = "Mail doğrulama işlemi başarıyla gerçekleşti !";
                    TempData["MessageState"] = "warning";

                    return(RedirectToAction("Index", "Post"));
                }
            }

            TempData["Message"]      = "Mail doğrulama işlemi gerçekleştirilemedi !";
            TempData["MessageState"] = "danger";

            return(RedirectToAction("Login", "Account"));
        }
        public IActionResult EmailValidation(string username, string email)
        {
            bool validationCode = String.IsNullOrEmpty(HttpContext.Session.GetString(username));

            if (validationCode)
            {
                var code = _accountService.GenerateCode();
                HttpContext.Session.SetString(username, code);

                var description = "Bu kodu mail doğrulama sayfasına girerek mailinizi doğrulayabilirsiniz.";
                _accountService.SendCodeWithEmail(email, code, description);
            }

            var model = new EmailValidationViewModel {
                Username = username, Email = email
            };

            return(View(model));
        }