AyCode.Core/AyCode.Database/AcDbLogItemWriter.cs

57 lines
1.6 KiB
C#

using AyCode.Core.Consts;
using AyCode.Core.Enums;
using AyCode.Core.Helpers;
using AyCode.Core.Loggers;
using AyCode.Database.DbContexts.Loggers;
using AyCode.Entities;
using AyCode.Entities.LogItems;
using AyCode.Interfaces.Entities;
namespace AyCode.Database;
public class AcDbLogItemWriter<TLoggerDbContext, TLogItem> : AcLogItemWriterBase<TLogItem> where TLoggerDbContext : AcLoggerDbContextBase<TLogItem>
where TLogItem : class, IAcLogItem
{
private TLoggerDbContext _ctx = Activator.CreateInstance<TLoggerDbContext>();
protected AcDbLogItemWriter() : this(null)
{ }
protected AcDbLogItemWriter(string? categoryName = null) : base(categoryName)
{ }
public AcDbLogItemWriter(AppType appType, LogLevel logLevel, string? categoryName = null) : base(appType, logLevel, categoryName)
{ }
protected override void WriteLogItem(TLogItem logItem, Action? callback = null)
{
try
{
base.WriteLogItem(logItem, () =>
{
_ctx.LogItems.Add(logItem);
_ctx.SaveChanges();
});
}
catch (Exception ex)
{
Console.WriteLine("ERRORORROROR! " + AcEnv.NL + ex.Message);
}
}
//protected override void WriteLogItem(TLogItem logItem, Action<IEnumerable<TLogItem>>? callback = null)
//{
// try
// {
// base.WriteLogItem(logItem, logItems =>
// {
// _ctx.LogItems.AddRange(logItems);
// _ctx.SaveChanges();
// });
// }
// catch (Exception ex)
// {
// Console.WriteLine("ERRORORRORO");
// }
//}
}