/// <summary> /// Gets the defaut drive letter for ResourceMounting service. Client and Server will use different defaults (<c>R</c>, <c>S</c>). If the preferred drive letter /// is not available, the next higher one will be returned. If none is found, a lower one is tried as last option. /// </summary> /// <returns>Available drive letter or <c>null</c> if none is available anymore</returns> private char?GetDefaultDriveLetter() { ISystemResolver systemResolver = ServiceRegistration.Get <ISystemResolver>(); char? driveLetter = systemResolver.SystemType == SystemType.Server ? ResourceMountingSettings.DEFAULT_DRIVE_LETTER_SERVER : ResourceMountingSettings.DEFAULT_DRIVE_LETTER_CLIENT; AvailableDriveLettersSettings adls = new AvailableDriveLettersSettings(); List <char?> availableLetters = adls.AvailableDriveLetters.Select(d => (char?)d).ToList(); // If the preferred drive letter is not available, first try to find a "higher", or if not possible a lower drive letter. if (!availableLetters.Contains(driveLetter)) { driveLetter = availableLetters.FirstOrDefault(d => d > driveLetter) ?? availableLetters.FirstOrDefault(d => d < driveLetter); } // Save the new drive letter if (driveLetter.HasValue) { ServiceRegistration.Get <ILogger>().Info("ResourceMountingService: Setup new drive letter {0}", driveLetter); ResourceMountingSettings setting = ServiceRegistration.Get <ISettingsManager>().Load <ResourceMountingSettings>(); setting.DriveLetter = driveLetter; _firstRun = true; // Set a flag so we can ignore the "SettingChanged" event ServiceRegistration.Get <ISettingsManager>().Save(setting); } return(driveLetter); }
protected char?ReadDriveLetterFromSettings() { ISettingsManager settingsManager = ServiceRegistration.Get <ISettingsManager>(); ResourceMountingSettings settings = settingsManager.Load <ResourceMountingSettings>(); return(settings.DriveLetter); }
protected void SaveDefaultDriveSettings(char driveLetter) { ISettingsManager settingsManager = ServiceRegistration.Get <ISettingsManager>(); ResourceMountingSettings settings = settingsManager.Load <ResourceMountingSettings>(); settings.DriveLetter = driveLetter; settingsManager.Save(settings); }
public override void Save() { base.Save(); ISettingsManager settingsManager = ServiceRegistration.Get <ISettingsManager>(); ResourceMountingSettings settings = settingsManager.Load <ResourceMountingSettings>(); settings.DriveLetter = _items[Selected].ToString()[0]; settingsManager.Save(settings); }
public override void Save() { if (!Enabled) { return; } base.Save(); IServerSettingsClient serverSettings = ServiceRegistration.Get <IServerSettingsClient>(); ResourceMountingSettings settings = serverSettings.Load <ResourceMountingSettings>(); settings.DriveLetter = _items[Selected].ToString()[0]; serverSettings.Save(settings); }