using System.Runtime.Serialization; using System.Threading.Tasks; namespace Kruzya.TelegramBot.Core.Options; public abstract class AbstractOption : IOption where TOption: AbstractOption { private readonly IOptionProvider _optionProvider; protected AbstractOption(IOptionProvider optionProvider) { _optionProvider = optionProvider; } public async Task GetValueAsync(long chatId) { return await _optionProvider.GetValueAsync(chatId); } public async Task SetValueAsync(long chatId, TValue value) { await _optionProvider.SetValueAsync(chatId, value); } }