Try your search with a different keyword or use * as a wildcard.
using System.Linq.Expressions;
using Nop.Core.Configuration;
using Nop.Core.Domain.Configuration;
namespace Nop.Services.Configuration;
/// <summary>
/// Setting service interface
/// </summary>
public partial interface ISettingService
{
/// <summary>
/// Gets a setting by identifier
/// </summary>
/// <param name="settingId">Setting identifier</param>
/// <returns>
/// A task that represents the asynchronous operation
/// The task result contains the setting
/// </returns>
Task<Setting> GetSettingByIdAsync(int settingId);
/// <summary>
/// Gets a setting by identifier
/// </summary>
/// <param name="settingId">Setting identifier</param>
/// <returns>
/// The setting
/// </returns>
Setting GetSettingById(int settingId);
/// <summary>
/// Deletes a setting
/// </summary>
/// <param name="setting">Setting</param>
/// <returns>A task that represents the asynchronous operation</returns>
Task DeleteSettingAsync(Setting setting);
/// <summary>
/// Deletes a setting
/// </summary>
/// <param name="setting">Setting</param>
void DeleteSetting(Setting setting);
/// <summary>
/// Deletes settings
/// </summary>
/// <param name="settings">Settings</param>
/// <returns>A task that represents the asynchronous operation</returns>
Task DeleteSettingsAsync(IList<Setting> settings);
/// <summary>
/// Get setting by key
/// </summary>
/// <param name="key">Key</param>
/// <param name="storeId">Store identifier</param>
/// <param name="loadSharedValueIfNotFound">A value indicating whether a shared (for all stores) value should be loaded if a value specific for a certain is not found</param>
/// <returns>
/// A task that represents the asynchronous operation
/// The task result contains the setting
/// </returns>
Task<Setting> GetSettingAsync(string key, int storeId = 0, bool loadSharedValueIfNotFound = false);
/// <summary>
/// Get setting by key
/// </summary>
/// <param name="key">Key</param>
/// <param name="storeId">Store identifier</param>
/// <param name="loadSharedValueIfNotFound">A value indicating whether a shared (for all stores) value should be loaded if a value specific for a certain is not found</param>
/// <returns>
/// The setting
/// </returns>
Setting GetSetting(string key, int storeId = 0, bool loadSharedValueIfNotFound = false);
/// <summary>
/// Get setting value by key
/// </summary>
/// <typeparam name="T">Type</typeparam>
/// <param name="key">Key</param>
/// <param name="storeId">Store identifier</param>
/// <param name="defaultValue">Default value</param>
/// <param name="loadSharedValueIfNotFound">A value indicating whether a shared (for all stores) value should be loaded if a value specific for a certain is not found</param>
/// <returns>
/// A task that represents the asynchronous operation
/// The task result contains the setting value
/// </returns>
Task<T> GetSettingByKeyAsync<T>(string key, T defaultValue = default,
int storeId = 0, bool loadSharedValueIfNotFound = false);
/// <summary>
/// Get setting value by key
/// </summary>
/// <typeparam name="T">Type</typeparam>
/// <param name="key">Key</param>
/// <param name="storeId">Store identifier</param>
/// <param name="defaultValue">Default value</param>
/// <param name="loadSharedValueIfNotFound">A value indicating whether a shared (for all stores) value should be loaded if a value specific for a certain is not found</param>
/// <returns>
/// Setting value
/// </returns>
T GetSettingByKey<T>(string key, T defaultValue = default,
int storeId = 0, bool loadSharedValueIfNotFound = false);
/// <summary>
/// Set setting value
/// </summary>
/// <typeparam name="T">Type</typeparam>
/// <param name="key">Key</param>
/// <param name="value">Value</param>
/// <param name="storeId">Store identifier</param>
/// <param name="clearCache">A value indicating whether to clear cache after setting update</param>
/// <returns>A task that represents the asynchronous operation</returns>
Task SetSettingAsync<T>(string key, T value, int storeId = 0, bool clearCache = true);
/// <summary>
/// Set setting value
/// </summary>
/// <typeparam name="T">Type</typeparam>
/// <param name="key">Key</param>
/// <param name="value">Value</param>
/// <param name="storeId">Store identifier</param>
/// <param name="clearCache">A value indicating whether to clear cache after setting update</param>
void SetSetting<T>(string key, T value, int storeId = 0, bool clearCache = true);
/// <summary>
/// Gets all settings
/// </summary>
/// <returns>
/// A task that represents the asynchronous operation
/// The task result contains the settings
/// </returns>
Task<IList<Setting>> GetAllSettingsAsync();
/// <summary>
/// Gets all settings
/// </summary>
/// <returns>
/// Settings
/// </returns>
IList<Setting> GetAllSettings();
/// <summary>
/// Determines whether a setting exists
/// </summary>
/// <typeparam name="T">Entity type</typeparam>
/// <typeparam name="TPropType">Property type</typeparam>
/// <param name="settings">Settings</param>
/// <param name="keySelector">Key selector</param>
/// <param name="storeId">Store identifier</param>
/// <returns>
/// A task that represents the asynchronous operation
/// The task result contains the true -setting exists; false - does not exist
/// </returns>
Task<bool> SettingExistsAsync<T, TPropType>(T settings,
Expression<Func<T, TPropType>> keySelector, int storeId = 0)
where T : ISettings, new();
/// <summary>
/// Determines whether a setting exists
/// </summary>
/// <typeparam name="T">Entity type</typeparam>
/// <typeparam name="TPropType">Property type</typeparam>
/// <param name="settings">Settings</param>
/// <param name="keySelector">Key selector</param>
/// <param name="storeId">Store identifier</param>
/// <returns>
/// The true -setting exists; false - does not exist
/// </returns>
bool SettingExists<T, TPropType>(T settings,
Expression<Func<T, TPropType>> keySelector, int storeId = 0)
where T : ISettings, new();
/// <summary>
/// Load settings
/// </summary>
/// <typeparam name="T">Type</typeparam>
/// <param name="storeId">Store identifier for which settings should be loaded</param>
/// <returns>A task that represents the asynchronous operation</returns>
Task<T> LoadSettingAsync<T>(int storeId = 0) where T : ISettings, new();
/// <summary>
/// Load settings
/// </summary>
/// <typeparam name="T">Type</typeparam>
/// <param name="storeId">Store identifier for which settings should be loaded</param>
/// <returns>Settings</returns>
T LoadSetting<T>(int storeId = 0) where T : ISettings, new();
/// <summary>
/// Load settings
/// </summary>
/// <param name="type">Type</param>
/// <param name="storeId">Store identifier for which settings should be loaded</param>
/// <returns>A task that represents the asynchronous operation</returns>
Task<ISettings> LoadSettingAsync(Type type, int storeId = 0);
/// <summary>
/// Load settings
/// </summary>
/// <param name="type">Type</param>
/// <param name="storeId">Store identifier for which settings should be loaded</param>
/// <returns>Settings</returns>
ISettings LoadSetting(Type type, int storeId = 0);
/// <summary>
/// Save settings object
/// </summary>
/// <typeparam name="T">Type</typeparam>
/// <param name="storeId">Store identifier</param>
/// <param name="settings">Setting instance</param>
/// <returns>A task that represents the asynchronous operation</returns>
Task SaveSettingAsync<T>(T settings, int storeId = 0) where T : ISettings, new();
/// <summary>
/// Save settings object
/// </summary>
/// <typeparam name="T">Type</typeparam>
/// <param name="storeId">Store identifier</param>
/// <param name="settings">Setting instance</param>
void SaveSetting<T>(T settings, int storeId = 0) where T : ISettings, new();
/// <summary>
/// Save settings object
/// </summary>
/// <typeparam name="T">Entity type</typeparam>
/// <typeparam name="TPropType">Property type</typeparam>
/// <param name="settings">Settings</param>
/// <param name="keySelector">Key selector</param>
/// <param name="storeId">Store ID</param>
/// <param name="clearCache">A value indicating whether to clear cache after setting update</param>
/// <returns>A task that represents the asynchronous operation</returns>
Task SaveSettingAsync<T, TPropType>(T settings,
Expression<Func<T, TPropType>> keySelector,
int storeId = 0, bool clearCache = true) where T : ISettings, new();
/// <summary>
/// Save settings object
/// </summary>
/// <typeparam name="T">Entity type</typeparam>
/// <typeparam name="TPropType">Property type</typeparam>
/// <param name="settings">Settings</param>
/// <param name="keySelector">Key selector</param>
/// <param name="storeId">Store ID</param>
/// <param name="clearCache">A value indicating whether to clear cache after setting update</param>
void SaveSetting<T, TPropType>(T settings,
Expression<Func<T, TPropType>> keySelector,
int storeId = 0, bool clearCache = true) where T : ISettings, new();
/// <summary>
/// Save settings object (per store). If the setting is not overridden per store then it'll be delete
/// </summary>
/// <typeparam name="T">Entity type</typeparam>
/// <typeparam name="TPropType">Property type</typeparam>
/// <param name="settings">Settings</param>
/// <param name="keySelector">Key selector</param>
/// <param name="overrideForStore">A value indicating whether to setting is overridden in some store</param>
/// <param name="storeId">Store ID</param>
/// <param name="clearCache">A value indicating whether to clear cache after setting update</param>
/// <returns>A task that represents the asynchronous operation</returns>
Task SaveSettingOverridablePerStoreAsync<T, TPropType>(T settings,
Expression<Func<T, TPropType>> keySelector,
bool overrideForStore, int storeId = 0, bool clearCache = true) where T : ISettings, new();
/// <summary>
/// Adds a setting
/// </summary>
/// <param name="setting">Setting</param>
/// <param name="clearCache">A value indicating whether to clear cache after setting update</param>
/// <returns>A task that represents the asynchronous operation</returns>
Task InsertSettingAsync(Setting setting, bool clearCache = true);
/// <summary>
/// Adds a setting
/// </summary>
/// <param name="setting">Setting</param>
/// <param name="clearCache">A value indicating whether to clear cache after setting update</param>
void InsertSetting(Setting setting, bool clearCache = true);
/// <summary>
/// Updates a setting
/// </summary>
/// <param name="setting">Setting</param>
/// <param name="clearCache">A value indicating whether to clear cache after setting update</param>
/// <returns>A task that represents the asynchronous operation</returns>
Task UpdateSettingAsync(Setting setting, bool clearCache = true);
/// <summary>
/// Updates a setting
/// </summary>
/// <param name="setting">Setting</param>
/// <param name="clearCache">A value indicating whether to clear cache after setting update</param>
void UpdateSetting(Setting setting, bool clearCache = true);
/// <summary>
/// Delete all settings
/// </summary>
/// <typeparam name="T">Type</typeparam>
/// <returns>A task that represents the asynchronous operation</returns>
Task DeleteSettingAsync<T>() where T : ISettings, new();
/// <summary>
/// Delete settings object
/// </summary>
/// <typeparam name="T">Entity type</typeparam>
/// <typeparam name="TPropType">Property type</typeparam>
/// <param name="settings">Settings</param>
/// <param name="keySelector">Key selector</param>
/// <param name="storeId">Store ID</param>
/// <returns>A task that represents the asynchronous operation</returns>
Task DeleteSettingAsync<T, TPropType>(T settings,
Expression<Func<T, TPropType>> keySelector, int storeId = 0) where T : ISettings, new();
/// <summary>
/// Clear cache
/// </summary>
/// <returns>A task that represents the asynchronous operation</returns>
Task ClearCacheAsync();
/// <summary>
/// Clear cache
/// </summary>
void ClearCache();
/// <summary>
/// Get setting key (stored into database)
/// </summary>
/// <typeparam name="TSettings">Type of settings</typeparam>
/// <typeparam name="T">Property type</typeparam>
/// <param name="settings">Settings</param>
/// <param name="keySelector">Key selector</param>
/// <returns>Key</returns>
string GetSettingKey<TSettings, T>(TSettings settings, Expression<Func<TSettings, T>> keySelector)
where TSettings : ISettings, new();
}