private async void OnConnect(object obj) { if (IsWorking) { return; } Message = ""; if (GoldDriveList.Count == 0 || string.IsNullOrEmpty(SelectedDrive.Host)) { IsDriveNew = true; SelectedDrive = FreeDriveList.First(); CurrentPage = Page.Host; return; } if (ConnectButtonText == "Connect") { ConnectAsync(SelectedDrive); } else { WorkStart("Disconnecting..."); ReturnBox r = await Task.Run(() => _mountService.Unmount(SelectedDrive)); WorkDone(r); } }
public async void LoadDrivesAsync() { Loaded = false; WorkStart("Exploring local drives..."); await Task.Run(() => { Settings settings = _mountService.LoadSettings(); if (_selectedDrive == null && settings.SelectedDrive != null) { SelectedDrive = settings.SelectedDrive; } _mountService.UpdateDrives(settings); }); UpdateObservableDrives(); if (_mountService.GoldDrives.Count == 0) { CurrentPage = Page.Host; IsDriveNew = true; OnFocusRequested(nameof(SelectedDrive.Host)); SelectedDrive = FreeDriveList.First(); WorkDone(); } else { CheckDriveStatusAsync(); } Loaded = true; }
private void UpdateObservableDrives() { Drive old = null; if (SelectedDrive != null) { old = SelectedDrive; } GoldDriveList.Clear(); FreeDriveList.Clear(); _mountService.GoldDrives.ForEach(GoldDriveList.Add); _mountService.FreeDrives.ForEach(FreeDriveList.Add); if (old != null && SelectedDrive == null) { SelectedDrive = old; } if (SelectedDrive != null) { var d1 = _mountService.GoldDrives.ToList().Find(x => x.Name == SelectedDrive.Name); if (d1 != null) { d1.Clone(SelectedDrive); SelectedDrive = d1; } else { var d2 = _mountService.FreeDrives.ToList().Find(x => x.Name == SelectedDrive.Name); if (d2 != null) { d2.Clone(SelectedDrive); SelectedDrive = d2; } } } else { if (_mountService.GoldDrives.Count > 0) { SelectedDrive = _mountService.GoldDrives.First(); } else if (_mountService.FreeDrives.Count > 0) { SelectedDrive = _mountService.FreeDrives.First(); } } NotifyPropertyChanged("FreeDriveList"); NotifyPropertyChanged("GoldDriveList"); }
private void OnSettingsNew(object obj) { OriginalDrive = new Drive(SelectedDrive); SelectedDrive = FreeDriveList.First(); IsDriveNew = true; }