예제 #1
0
        private void SelectDossier()
        {
            Extensions = new ObservableCollection <Extension>();
            Fichiers   = new List <Fichier>();

            Dossier = Dossier.SelectDossier();
            RaisePropertyChanged("Dossier");
            SelectedDossier = Dossier.PathDossier;
            RaisePropertyChanged("PathDossier");
            if (SelectedDossier == "")
            {
                Result = "Aucun dossier choisi";
            }
            else
            {
                try
                {
                    Result = "En cours de chargement...";
                    RaisePropertyChanged("Result");
                    Task.Factory.StartNew(() =>
                    {
                        List <Fichier> tmpFichiers = Fichier.GetFilesList(Dossier.PathDossier, WithFolders);
                        Dispatcher.CurrentDispatcher.Invoke(() =>
                        {
                            Fichiers = tmpFichiers;
                            Result   = "";
                            RaisePropertyChanged("Result");
                            RaisePropertyChanged("Fichiers");

                            if (Fichiers.Count() > 0)
                            {
                                Result = "En cours de chargement...";
                                Task.Factory.StartNew(() =>
                                {
                                    List <Extension> tmpExtensions = Extension.GetExtensionsList(Fichiers);
                                    Dispatcher.CurrentDispatcher.Invoke(() =>
                                    {
                                        Extensions = tmpExtensions.CastToObservable();
                                        RaisePropertyChanged("Extensions");
                                        Result = "Chargement fini";
                                        RaisePropertyChanged("Result");
                                    });
                                });
                            }
                            else if (Fichiers.Count() == 0)
                            {
                                Result = "Aucun fichier dans ce dossier";
                                RaisePropertyChanged("Result");
                            }
                        });
                    });
                }
                catch (Exception ex)
                {
                    Result = "Erreur, veuillez choisir le dossier de nouveau";
                    RaisePropertyChanged("Result");
                }
            }
        }