using System.Threading.Tasks; using Kruzya.TelegramBot.Core.Data; using Microsoft.EntityFrameworkCore; namespace Kruzya.TelegramBot.Core.Extensions; public partial class RepositoryExtension { public static async Task FindOption(this DbSet repository, long chatId, string optionId) { return await repository.SingleOrDefaultAsync(x => x.ChatId == chatId && x.OptionId == optionId); } public static async Task FindOrCreateOption(this DbSet repository, long chatId, string optionId) { var opt = await repository.FindOption(chatId, optionId) ?? new ChatOptionValue { ChatId = chatId, OptionId = optionId }; return opt; } }