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 : AcLogItemWriterBase where TLoggerDbContext : AcLoggerDbContextBase where TLogItem : class, IAcLogItem { private TLoggerDbContext _ctx = Activator.CreateInstance(); 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>? callback = null) //{ // try // { // base.WriteLogItem(logItem, logItems => // { // _ctx.LogItems.AddRange(logItems); // _ctx.SaveChanges(); // }); // } // catch (Exception ex) // { // Console.WriteLine("ERRORORRORO"); // } //} }