public AutenticarUsuarioResponse AutenticarUsuario(AutenticarUsuarioRequest request)
        {
            if (request == null)
            {
                AddNotification("AutenticarUsuarioRequest", MSG.OBJETO_X0_E_OBRIGATORIO.ToFormat("AutenticarUsuarioRequest"));
                return(null);
            }

            var email           = new Email(request.Email);
            var usuarioPlaylist = new UsuarioPlaylist(email, request.Senha);

            AddNotifications(usuarioPlaylist);

            if (this.IsInvalid())
            {
                return(null);
            }

            usuarioPlaylist = _repositoryUsuario.Obter(usuarioPlaylist.Email.Endereco, usuarioPlaylist.Senha);

            if (usuarioPlaylist == null)
            {
                AddNotification("Usuario", MSG.DADOS_NAO_ENCONTRADOS);
                return(null);
            }

            var response = (AutenticarUsuarioResponse)usuarioPlaylist;

            return(response);
        }
        public AdicionarUsuarioResponse AdicionarUsuario(AdicionarUsuarioRequest request)
        {
            if (request == null)
            {
                AddNotification("AdicionarUsuarioRequest", MSG.OBJETO_X0_E_OBRIGATORIO.ToFormat("AdicionarUsuarioRequest"));
                return(null);
            }

            //Cria value objects
            Nome  nome  = new Nome(request.PrimeiroNome, request.UltimoNome);
            Email email = new Email(request.Email);

            //cria entidade
            UsuarioPlaylist usuarioPlaylist = new UsuarioPlaylist(nome, email, request.Senha);

            AddNotifications(usuarioPlaylist);

            if (this.IsInvalid())
            {
                return(null);
            }

            //Persiste no banco de dados
            _repositoryUsuario.Salvar(usuarioPlaylist);

            return(new AdicionarUsuarioResponse(usuarioPlaylist.Id));
        }