public async Task <IActionResult> Register(RegisterViewModel register)
        {
            if (ModelState.IsValid)
            {
                if (_userManager.Users.Where(u => u.Email == register.Email).Any())
                {
                    ModelState.AddModelError("", "Istnieje już użytkownik z takim adresem email");
                    return(View(register));
                }

                var user = new User {
                    UserName = register.Name, Email = register.Email
                };
                var result = await _userManager.CreateAsync(user, register.Password);

                if (result.Succeeded)
                {
                    var emailVerifiactionCode = await _userManager.GenerateEmailConfirmationTokenAsync(user);

                    var callbackUrl = Url.Action(
                        "ConfirmEmail",
                        "Account",
                        values: new { userId = user.Id, code = emailVerifiactionCode },
                        protocol: Request.Scheme);
                    await _sendGridEmailSender.SendMail(user.Email, "Potwierdź adres email", $"Potwierdź swoje konto, <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>klikając tutaj</a>.");

                    await _userManager.AddToRoleAsync(user, "User");

                    return(RedirectToAction("Login", "Account"));
                }
                else
                {
                    ModelState.AddModelError("", "Hasło powinno zawierać conajmniej 8 znaków, w tym: jedną dużą literę, jedną małą literę, cyfrę oraz znak specjalny");
                }
            }

            return(View(register));
        }