using OwlCore.AbstractStorage;
using OwlCore.Services;
using StrixMusic.Sdk.Services;
namespace StrixMusic.Cores.OneDrive.Services
{
///
/// A container for settings.
///
public sealed class OneDriveCoreSettings : SettingsBase
{
///
/// Creates a new instance of .
///
public OneDriveCoreSettings(IFolderData folder)
: base(folder, NewtonsoftStreamSerializer.Singleton)
{
}
///
/// If true, the user has had the opportunity to tweak core settings during the out of box experience.
///
public bool UserHasSeenGeneralOobeSettings
{
get => GetSetting(() => false);
set => SetSetting(value);
}
///
/// If true, the user has had the opportunity to supply custom application keys from Azure to authenticate their Microsoft account against.
///
public bool UserHasSeenAuthClientKeysSettings
{
get => GetSetting(() => false);
set => SetSetting(value);
}
///
/// If the core should use TagLib to scan file metadata.
///
public bool ScanWithTagLib
{
get => GetSetting(() => false);
set => SetSetting(value);
}
///
/// If the core should use file properties to scan metadata.
///
public bool ScanWithFileProperties
{
get => GetSetting(() => true);
set => SetSetting(value);
}
///
/// The MS Graph ID of the user-selected folder for this core instance.
///
public string SelectedFolderId
{
get => GetSetting(() => string.Empty);
set => SetSetting(value);
}
///
/// A unique identifier for the account logged in to this core instance.
///
public string AccountIdentifier
{
get => GetSetting(() => string.Empty);
set => SetSetting(value);
}
///
/// Client ID of a registered MS Graph application that the user will be authenticated against.
///
public string ClientId
{
get => GetSetting(() => string.Empty);
set => SetSetting(value);
}
///
/// Tenant ID for authenticating the user against a registered MS Graph application.
///
public string TenantId
{
get => GetSetting(() => string.Empty);
set => SetSetting(value);
}
///
/// Redirect URI used for authenticating the user against a registered MS Graph application.
///
public string RedirectUri
{
get => GetSetting(() => string.Empty);
set => SetSetting(value);
}
}
}