/
krasninja
/
querycat
Обзор
Документация
Войти
/
krasninja
/
querycat
Код
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
src/QueryCat.Backend.Core/Data/InputConfigStorageExtensions.cs
44 строки
1 KB
Ivan Kozhin
Move InputConfigStorageExtensions to core
27 авг 2023, 19:26
27 авг 2023, 19:26
e17fb16
Код
Авторство
О чём код?
using QueryCat.Backend.Core.Types; namespace QueryCat.Backend.Core.Data; /// <summary> /// Extensions for <see cref="IInputConfigStorage" />. /// </summary> public static class InputConfigStorageExtensions { /// <summary> /// Get value from the storage or set if it doesn't exist. /// </summary> /// <param name="configStorage">Instance of <see cref="IInputConfigStorage" />.</param> /// <param name="key">Key.</param> /// <param name="func">Delegate to create value.</param> /// <returns>Existing or new value.</returns> public static VariantValue GetOrSet(this IInputConfigStorage configStorage, string key, Func<string, VariantValue> func) { if (!configStorage.Has(key)) { var value = func(key); configStorage.Set(key, value); return value; } return configStorage.Get(key); } /// <summary> /// Get value from the storage or default. /// </summary> /// <param name="configStorage">Instance of <see cref="IInputConfigStorage" />.</param> /// <param name="key">Key.</param> /// <param name="default">Default value.</param> /// <returns>The value.</returns> public static VariantValue GetOrDefault(this IInputConfigStorage configStorage, string key, VariantValue @default = default) { if (!configStorage.Has(key)) { return @default; } return configStorage.Get(key); } }