mirror of
https://github.com/Bubuni-Team/telegram-bot.git
synced 2026-07-31 00:29:24 +03:00
initial chat options implementation
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
#nullable enable
|
||||
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using System.Text.Json.Serialization;
|
||||
using System.Text.Json;
|
||||
using System;
|
||||
|
||||
namespace Kruzya.TelegramBot.Core.Data;
|
||||
|
||||
[PrimaryKey(nameof(ChatId), nameof(OptionId))]
|
||||
public class ChatOptionValue
|
||||
{
|
||||
public long ChatId { get; set; }
|
||||
public string OptionId { get; set; }
|
||||
public byte[] Value { get; set; }
|
||||
|
||||
|
||||
public T GetValue<T>(T? defVal = default)
|
||||
{
|
||||
try
|
||||
{
|
||||
return JsonSerializer.Deserialize<T>(new ReadOnlySpan<byte>(Value));
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
return defVal;
|
||||
}
|
||||
}
|
||||
|
||||
public void SetValue<T>(T value)
|
||||
{
|
||||
Value = JsonSerializer.SerializeToUtf8Bytes(value, new JsonSerializerOptions
|
||||
{
|
||||
WriteIndented = false,
|
||||
DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user