Use file-scoped namespaces

This commit is contained in:
Andriy
2023-07-29 15:14:52 +03:00
parent a24332370d
commit 8ab067a027
58 changed files with 2222 additions and 2280 deletions
+18 -19
View File
@@ -1,24 +1,23 @@
using System;
using System.ComponentModel.DataAnnotations;
namespace Kruzya.TelegramBot.Core.Data
{
public class BotUser
{
/// <summary>
/// The unique bot user identifier.
/// </summary>
[Key]
public Guid BotUserId { get; set; }
/// <summary>
/// The chat identifier where this user is related.
/// </summary>
public long ChatId { get; set; }
namespace Kruzya.TelegramBot.Core.Data;
/// <summary>
/// The Telegram User identifier.
/// </summary>
public long UserId { get; set; }
}
public class BotUser
{
/// <summary>
/// The unique bot user identifier.
/// </summary>
[Key]
public Guid BotUserId { get; set; }
/// <summary>
/// The chat identifier where this user is related.
/// </summary>
public long ChatId { get; set; }
/// <summary>
/// The Telegram User identifier.
/// </summary>
public long UserId { get; set; }
}
+26 -27
View File
@@ -4,38 +4,37 @@ using System.ComponentModel.DataAnnotations.Schema;
using System.Text.Json;
using System.Text.Json.Serialization;
namespace Kruzya.TelegramBot.Core.Data
namespace Kruzya.TelegramBot.Core.Data;
public class BotUserValue
{
public class BotUserValue
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[Key]
public Guid BotUserValueId { get; set; }
public BotUser BotUser { get; set; }
public string Name { get; set; }
public string ValueType { get; set; }
public byte[] Value { get; set; }
public T GetValue<T>(T defVal = default)
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[Key]
public Guid BotUserValueId { get; set; }
public BotUser BotUser { get; set; }
public string Name { get; set; }
public string ValueType { get; set; }
public byte[] Value { get; set; }
public T GetValue<T>(T defVal = default)
try
{
try
{
return JsonSerializer.Deserialize<T>(new ReadOnlySpan<byte>(Value));
}
catch (Exception)
{
return defVal;
}
return JsonSerializer.Deserialize<T>(new ReadOnlySpan<byte>(Value));
}
public void SetValue<T>(T value)
catch (Exception)
{
Value = JsonSerializer.SerializeToUtf8Bytes(value, new JsonSerializerOptions { WriteIndented = false,
DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull });
ValueType = value.GetType().FullName;
return defVal;
}
}
public void SetValue<T>(T value)
{
Value = JsonSerializer.SerializeToUtf8Bytes(value, new JsonSerializerOptions { WriteIndented = false,
DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull });
ValueType = value.GetType().FullName;
}
}
+17 -18
View File
@@ -1,25 +1,24 @@
using Kruzya.TelegramBot.Core.EF;
using Microsoft.EntityFrameworkCore;
namespace Kruzya.TelegramBot.Core.Data
namespace Kruzya.TelegramBot.Core.Data;
public class CoreContext : AutoSaveDbContext
{
public class CoreContext : AutoSaveDbContext
/// <summary>
/// The all known users.
/// </summary>
public DbSet<BotUser> Users { get; set; }
/// <summary>
/// The all knows user options and values.
/// </summary>
public DbSet<BotUserValue> UserValues { get; set; }
public DbSet<ChatOptionValue> ChatOptionValues { get; set; }
public CoreContext(DbContextOptions<CoreContext> ctx) : base(ctx)
{
/// <summary>
/// The all known users.
/// </summary>
public DbSet<BotUser> Users { get; set; }
/// <summary>
/// The all knows user options and values.
/// </summary>
public DbSet<BotUserValue> UserValues { get; set; }
public DbSet<ChatOptionValue> ChatOptionValues { get; set; }
public CoreContext(DbContextOptions<CoreContext> ctx) : base(ctx)
{
Database.Migrate();
}
Database.Migrate();
}
}