/* constructor and initialization */
        public InterfaceClientViewModel(Window window, int IdCompte, string Token)
        {
            _window = window;

            _restApiQueries = new RestApiQueries(Token);

            _router = new Router();

            string path = "Compte/" + IdCompte;

            Compte = _restApiQueries.GetSpecificCompte(path);

            // Initialisation des listes (%20 = " ")
            path           = "Article/Panier/" + Compte.CompteId + "/%20";
            ArticlesPanier = new ObservableCollection <Article>(_restApiQueries.GetArticle(path));

            path = "Article/Disponibles/%20";
            ArticlesDisponibles = new ObservableCollection <Article>(_restApiQueries.GetArticle(path));

            SynchroniserTotalPanier();

            this.IdCompte = IdCompte;
            this.Token    = Token;

            NomCompte = Compte.NomCompte;

            /* Routing */
            GoToInterfaceClient = new RelayCommand(
                o => true,
                o => _router.GoToInterfaceClient(_window, IdCompte, Token)
                );

            GoToListeFactures = new RelayCommand(
                o => true,
                o => _router.GoToListeFactures(_window, IdCompte, Token)
                );

            GoToListeTicketsClient = new RelayCommand(
                o => true,
                o => _router.GoToListeTicketsClient(_window, IdCompte, Token)
                );

            GoToSolde = new RelayCommand(
                o => true,
                o => _router.GoToSoldeClient(_window, IdCompte, Token)
                );

            GoToConnexion = new RelayCommand(
                o => true,
                o => _router.GoToConnexion(_window)
                );

            /* Action */
            RechercheCommand = new RelayCommand(
                o => !string.IsNullOrEmpty(StringRecherchee),
                o => Recherche(StringRecherchee)
                );

            OuvrirTicket = new RelayCommand(
                o => (SelectedArticlePanier != null),
                o => _router.GoToOuvertureTicketSupport(_window, IdCompte, Token, SelectedArticlePanier.ArticleId)
                );

            RetirerArticle = new RelayCommand(
                o => (SelectedArticlePanier != null),
                o => EnlevementArticlePanier()
                );

            AjouterArticle = new RelayCommand(
                o => (SelectedArticleDisponible != null),
                o => AjoutArticlePanier()
                );

            GenererFacture = new RelayCommand(
                o => true,
                o => GenerationFacture()
                );
        }