using System; using System.Collections.Generic; using System.Linq; using System.Runtime.CompilerServices; using System.Text; using System.Text.Json.Nodes; using System.Threading.Tasks; using GB5Shared.DTO.Framework.Criteria; using GB5Shared.DTO.Framework.Login; using GB5Shared.QueryExecutor; using MMDAL.DTO.EventLog; using MMDAL.Query.EventLog; using Newtonsoft.Json; using Newtonsoft.Json.Linq; namespace MMDAL.CustomCode.EventLog { public class EventLogDAL : IEventLogDAL { private readonly IQueryExecutor _queryExecutor; public EventLogDAL(IQueryExecutor queryExecutor) { _queryExecutor = queryExecutor; } public async IAsyncEnumerable GetEventLogAsync(LoginDTO LoginDTO, [EnumeratorCancellation] CancellationToken cancellationToken = default) { string Sql = EventLogQB.EVENTLOG_REPORT; await foreach (var item in _queryExecutor.QueryStreamAsync( LoginDTO, Sql, null!, cancellationToken)) { //if (item.Data is string dataStr && dataStr.TrimStart().StartsWith("{")) //{ // try // { // item.Data = JsonConvert.DeserializeObject(dataStr)!; // } // catch // { // // fallback: leave as is // } //} yield return item; } } } }