initial chat options implementation

This commit is contained in:
Andriy
2023-07-20 20:24:16 +03:00
parent 46774bfd93
commit 8de8eac959
17 changed files with 420 additions and 5 deletions
@@ -0,0 +1,26 @@
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<ChatOptionValue> FindOption(this DbSet<ChatOptionValue> repository, long chatId,
string optionId)
{
return await repository.SingleOrDefaultAsync(x => x.ChatId == chatId && x.OptionId == optionId);
}
public static async Task<ChatOptionValue> FindOrCreateOption(this DbSet<ChatOptionValue> repository, long chatId,
string optionId)
{
var opt = await repository.FindOption(chatId, optionId) ?? new ChatOptionValue
{
ChatId = chatId,
OptionId = optionId
};
return opt;
}
}