/// <summary> /// Loads all of the settings. /// </summary> /// <param name="settings">The settings.</param> /// <param name="personalInformation">The personal information.</param> public void Load(BackpackPlannerSettings settings, PersonalInformation personalInformation) { // TODO: put these in a LoadMetaSettings() method settings.MetaSettings.FirstRun = GetBoolean(MetaSettings.FirstRunPreferenceKey, settings.MetaSettings.FirstRun); // TODO: put these in a LoadSettings() method settings.ConnectGooglePlayServices = GetBoolean(BackpackPlannerSettings.ConnectGooglePlayServicesPreferenceKey, settings.ConnectGooglePlayServices); // NOTE: have to read the unit system/currency settings first in order // to properly interpret the rest of the settings string unitSystemPreference = GetString(BackpackPlannerSettings.UnitSystemPreferenceKey, settings.Units.ToString()); UnitSystem unitSystem; if(Enum.TryParse(unitSystemPreference, out unitSystem)) { settings.Units = unitSystem; } else { Logger.Error("Error parsing unit system preference!"); } string currencyPreference = GetString(BackpackPlannerSettings.CurrencyPreferenceKey, settings.Currency.ToString()); Currency currency; if(Enum.TryParse(currencyPreference, out currency)) { settings.Currency = currency; } else { Logger.Error("Error parsing currency preference!"); } // TODO: put these in a LoadPersonalInformation() method personalInformation.Name = GetString(PersonalInformation.NamePreferenceKey, personalInformation.Name); string birthDatePreference = GetString(PersonalInformation.DateOfBirthPreferenceKey, personalInformation.DateOfBirth?.ToString() ?? string.Empty); if(!string.IsNullOrWhiteSpace(birthDatePreference)) { try { personalInformation.DateOfBirth = Convert.ToDateTime(birthDatePreference); } catch(FormatException) { Logger.Error("Error parsing date of birth preference!"); } } string userSexPreference = GetString(PersonalInformation.UserSexPreferenceKey, personalInformation.Sex.ToString()); UserSex userSex; if(Enum.TryParse(userSexPreference, out userSex)) { personalInformation.Sex = userSex; } else { Logger.Error("Error parsing user sex preference!"); } personalInformation.HeightInUnits = GetFloat(PersonalInformation.HeightPreferenceKey, (float)personalInformation.HeightInUnits); personalInformation.WeightInUnits = GetFloat(PersonalInformation.WeightPreferenceKey, (float)personalInformation.WeightInUnits); }
public void PersonalInformation_WeightInGrams_Default() { // Arrange PersonalInformation personalInformation = new PersonalInformation(MockUtil.FakeSettingsManager(), MockUtil.FakeSettings()); // Act // Assert Assert.AreEqual(0, personalInformation.WeightInGrams); }
public void PersonalInformation_Sex_Default() { // Arrange PersonalInformation personalInformation = new PersonalInformation(MockUtil.FakeSettingsManager(), MockUtil.FakeSettings()); // Act // Assert Assert.AreEqual(UserSex.Undeclared, personalInformation.Sex); }
public void PersonalInformation_HeightInCm_Negative() { // Arrange PersonalInformation personalInformation = new PersonalInformation(MockUtil.FakeSettingsManager(), MockUtil.FakeSettings()); // Act personalInformation.HeightInCm = -1; // Assert Assert.AreEqual(0, personalInformation.HeightInCm); }
/// <summary> /// Initializes a new instance of the <see cref="BackpackPlannerState" /> class. /// </summary> /// <param name="platformHockeyAppManager">The platform HockeyApp manager.</param> /// <param name="platformSettingsManager">The platform settings manager.</param> /// <param name="platformPlayServicesManager">The platform google play services manager.</param> /// <param name="platformDatabaseSyncManager">The platform database sync manager.</param> /// <param name="sqlitePlatform">The SQLite platform.</param> public BackpackPlannerState(IHockeyAppManager platformHockeyAppManager, SettingsManager platformSettingsManager, PlayServicesManager platformPlayServicesManager, DatabaseSyncManager platformDatabaseSyncManager, ISQLitePlatform sqlitePlatform) { if(null == platformHockeyAppManager) { throw new ArgumentNullException(nameof(platformHockeyAppManager)); } if(null == platformSettingsManager) { throw new ArgumentNullException(nameof(platformSettingsManager)); } if(null == platformPlayServicesManager) { throw new ArgumentNullException(nameof(platformPlayServicesManager)); } if(null == platformDatabaseSyncManager) { throw new ArgumentNullException(nameof(platformDatabaseSyncManager)); } if(null == sqlitePlatform) { throw new ArgumentNullException(nameof(sqlitePlatform)); } PlatformHockeyAppManager = platformHockeyAppManager; PlatformSettingsManager = platformSettingsManager; Settings = new BackpackPlannerSettings(PlatformSettingsManager); DatabaseState.SQLitePlatform = sqlitePlatform; PlatformPlayServicesManager = platformPlayServicesManager; PlatformDatabaseSyncManager = platformDatabaseSyncManager; PersonalInformation = new PersonalInformation(PlatformSettingsManager, Settings); }
/// <summary> /// Updates a setting from the prferences. /// </summary> /// <param name="key">The setting key.</param> /// <param name="settings">The settings.</param> /// <param name="personalInformation">The personal information.</param> public void UpdateFromPreferences(string key, BackpackPlannerSettings settings, PersonalInformation personalInformation) { switch(key) { // TODO: put these in an UpdateMetaSettingsFromPreferences() method case MetaSettings.FirstRunPreferenceKey: settings.MetaSettings.FirstRun = GetBoolean(MetaSettings.FirstRunPreferenceKey, settings.MetaSettings.FirstRun); break; // TODO: put these in an UpdateSettingsFromPreferences() method case BackpackPlannerSettings.ConnectGooglePlayServicesPreferenceKey: settings.ConnectGooglePlayServices = GetBoolean(BackpackPlannerSettings.ConnectGooglePlayServicesPreferenceKey, settings.ConnectGooglePlayServices); break; case BackpackPlannerSettings.UnitSystemPreferenceKey: string unitSystemPreference = GetString(BackpackPlannerSettings.UnitSystemPreferenceKey, settings.Units.ToString()); UnitSystem unitSystem; if(Enum.TryParse(unitSystemPreference, out unitSystem)) { settings.Units = unitSystem; } else { Logger.Error("Error parsing unit system preference!"); } break; case BackpackPlannerSettings.CurrencyPreferenceKey: string currencyPreference = GetString(BackpackPlannerSettings.CurrencyPreferenceKey, settings.Currency.ToString()); Currency currency; if(Enum.TryParse(currencyPreference, out currency)) { settings.Currency = currency; } else { Logger.Error("Error parsing currency preference!"); } break; // TODO: put these in an UpdatePersonalInformationFromPreferences() method case PersonalInformation.NamePreferenceKey: personalInformation.Name = GetString(PersonalInformation.NamePreferenceKey, personalInformation.Name); break; case PersonalInformation.DateOfBirthPreferenceKey: string birthDatePreference = GetString(PersonalInformation.DateOfBirthPreferenceKey, personalInformation.DateOfBirth?.ToString() ?? string.Empty); if(!string.IsNullOrWhiteSpace(birthDatePreference)) { try { personalInformation.DateOfBirth = Convert.ToDateTime(birthDatePreference); } catch(FormatException) { Logger.Error("Error parsing date of birth preference!"); } } break; case PersonalInformation.UserSexPreferenceKey: string userSexPreference = GetString(PersonalInformation.UserSexPreferenceKey, personalInformation.Sex.ToString()); UserSex userSex; if(Enum.TryParse(userSexPreference, out userSex)) { personalInformation.Sex = userSex; } else { Logger.Error("Error parsing user sex preference!"); } break; case PersonalInformation.HeightPreferenceKey: personalInformation.HeightInUnits = GetFloat(PersonalInformation.HeightPreferenceKey, (float)personalInformation.HeightInUnits); break; case PersonalInformation.WeightPreferenceKey: personalInformation.WeightInUnits = GetFloat(PersonalInformation.WeightPreferenceKey, (float)personalInformation.WeightInUnits); break; default: Logger.Warn($"Unhandled preference key: {key}"); break; } }