public async Task <IActionResult> Register(UserForRegisterDto userForRegisterDto)
        {
            var userForRegister = mapper.Map <User>(userForRegisterDto);

            if (await authService.Register(userForRegister, userForRegisterDto.Password))
            {
                await rolesService.AdmitRole(userForRegister, RoleName.User);

                var callbackUrl = await authService.GenerateEmailConfirmationCallbackUrl(userForRegister);

                if (await emailSender.SendEmail(StaticExpressions.ConfirmationEmail(userForRegister.Email, userForRegister.UserName, callbackUrl)))
                {
                    var user = mapper.Map <UserAuthDto>(userForRegister);

                    return(Accepted(user));
                }

                return(StatusCode(503, "Wystąpił błąd podczas wysyłania maila aktywacyjnego. Spróbuj wysłać maila ponownie"));
            }

            throw new AuthorizationException("Wystąpił problem podczas rejestracji");
        }
        public async Task <IActionResult> ResendConfirmationEmail([FromForm] string email)
        {
            var user = await authService.GetUserByEmail(email);

            if (user == null)
            {
                throw new EntityNotFoundException("Taki użytkownik nie istnieje");
            }

            if (user.EmailConfirmed)
            {
                return(BadRequest("Twoje konto jest już aktywowane"));
            }

            var callbackUrl = await authService.GenerateEmailConfirmationCallbackUrl(user);

            if (await emailSender.SendEmail(StaticExpressions.ConfirmationEmail(user.Email, user.UserName, callbackUrl)))
            {
                return(Accepted());
            }

            throw new AuthorizationException("Wystąpił błąd podczas wysyłania linka potwierdzającego email");
        }