public async Task Registrar(IdentityUser novoUsuario, string senha)
        {
            var validationNovoUsuarioResult  = new LoginValidation().Validate(novoUsuario);
            var validationSenhaUsuarioResult = new SenhaUsuarioValidation().Validate(senha);

            if (!validationNovoUsuarioResult.IsValid)
            {
                _notifications.Add(validationNovoUsuarioResult);
                return;
            }

            if (!validationSenhaUsuarioResult.IsValid)
            {
                _notifications.Add(validationSenhaUsuarioResult);
                return;
            }

            var result = await _userManager.CreateAsync(novoUsuario, senha);

            if (result.Succeeded)
            {
                await _signInManager.SignInAsync(novoUsuario, false);
            }
            else
            {
                _notifications.Add(result.Errors.Select(x => x.Description));
                return;
            }
        }
        public async Task Login(IdentityUser usuario, string senha)
        {
            var validationLoginResult        = new LoginValidation().Validate(usuario);
            var validationSenhaUsuarioResult = new SenhaUsuarioValidation().Validate(senha);

            if (!validationLoginResult.IsValid)
            {
                _notifications.Add(validationLoginResult);
                return;
            }

            if (!validationSenhaUsuarioResult.IsValid)
            {
                _notifications.Add(validationSenhaUsuarioResult);
                return;
            }

            var result = await _signInManager.PasswordSignInAsync(usuario.Email, senha, false, false);

            if (!result.Succeeded)
            {
                _notifications.Add("E-mail ou senha incorretos.");
                return;
            }
        }
        public async Task <UsuarioAutenticadoTokenViewModel> Login(IdentityUser usuario, string senha)
        {
            var validationLoginResult        = new LoginValidation().Validate(usuario);
            var validationSenhaUsuarioResult = new SenhaUsuarioValidation().Validate(senha);

            if (!validationLoginResult.IsValid)
            {
                _notifications.Add(validationLoginResult);
                return(null);
            }

            if (!validationSenhaUsuarioResult.IsValid)
            {
                _notifications.Add(validationSenhaUsuarioResult);
                return(null);
            }

            var result = await _signInManager.PasswordSignInAsync(usuario.Email, senha, false, false);

            if (!result.Succeeded)
            {
                _notifications.Add("E-mail ou senha incorretos.");
                return(null);
            }

            return(await GerarTokenAcesso(usuario.Email));
        }