예제 #1
0
        private async void OnSettingsDelete(object obj)
        {
            if (SelectedDrive == null)
            {
                Message = "Invalid drive";
                return;
            }

            Drive d = SelectedDrive;

            if (GoldDriveList.Contains(d))
            {
                GoldDriveList.Remove(d);
            }
            await Task.Run(() =>
            {
                if (d.Status == DriveStatus.CONNECTED)
                {
                    _mountService.Unmount(d);
                }
                Settings settings = _mountService.LoadSettings();
                settings.AddDrives(GoldDriveList);
                _mountService.SaveSettings(settings);
                _mountService.UpdateDrives(settings);
            });

            UpdateObservableDrives();
            if (GoldDriveList.Count == 0)
            {
                IsDriveNew = true;
            }
        }
예제 #2
0
        public void Closing(object obj)
        {
            Settings settings = _mountService.LoadSettings();

            if (GoldDriveList != null)
            {
                settings.Selected = SelectedDrive != null ? SelectedDrive.Name : "";
                settings.AddDrives(GoldDriveList.ToList());
                _mountService.SaveSettings(settings);
            }
        }
예제 #3
0
        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");
        }