public RestoreViewModel(ILocalSettings tr,IcloudRepository repository)
        {
            var canSearch = this.WhenAny(x => x.FilterPattern, x => !String.IsNullOrWhiteSpace(x.Value));
            Search =  ReactiveCommand.Create(canSearch,System.Reactive.Concurrency.DispatcherScheduler.Current);
            Search.CanExecute(canSearch);
            Search.Subscribe(x => CreateTreeView(this.FilterPattern));
            this.WhenAnyValue(x => x.FilterPattern)
             .Throttle(TimeSpan.FromSeconds(1), RxApp.MainThreadScheduler);
            


            RestoreFiles = new RelayCommand(() => ExecuteRestoreFiles());
            OpenDialog = new RelayCommand(() => ExecuteOpenFileDialog());
            RefreshData = new RelayCommand(() => RefreshCurrentData());
            this.repository = repository;
            this.localsettings = tr;

            
            CreateTreeView();
           

        }
        private void CreateRepository()
        {

            this.unitofwork = ServiceLocator.Current.GetInstance<ISettingRepository>();
            this.localsettings = unitofwork.getdata();
            this.repository = new cloudRepository(this.localsettings);

        }
        private void BackupStart(object sender, DoWorkEventArgs e)
        {
            if (!canRunBackup) return;
            canRunBackup = false;

            using (_cloudRepos = new cloudRepository(_localsetting))
            {
                _cloudRepos.uploadFilesAsync();
            }
        }