using System.Text.Json; using AdminDAL.DTO.ReportFormatAdmin; using AdminDAL.Query.ReportFormatAdmin; using GB5Shared.DTO.Framework.Criteria; using GB5Shared.DTO.Framework.Login; using GB5Shared.QueryExecutor; namespace AdminDAL.CustomCode.ReportFormatAdmin { public class ReportFormatAdminDAL : IReportFormatAdminDAL { private readonly IQueryExecutor _QueryExecutor; public ReportFormatAdminDAL(IQueryExecutor QueryExecutor) { _QueryExecutor = QueryExecutor; } public async Task GetReportMenuPicklist(CriteriaDTO CriteriaDTO, LoginDTO LoginDTO, CancellationToken ct) { string MenuId = ""; string Code = ""; string Name = ""; string ReportId = ""; var Attributes = CriteriaDTO?.SectionCriteriaList?.Count > 0 ? CriteriaDTO.SectionCriteriaList[0].AttributesCriteriaList : null; if (Attributes != null) { foreach (var Item in Attributes) { switch (Item.FieldName.ToLower()) { case "menuid": MenuId = Item.FieldValue?.ToString() ?? ""; break; case "code": Code = Item.FieldValue?.ToString() ?? ""; break; case "name": Name = Item.FieldValue?.ToString() ?? ""; break; case "reportid": ReportId = Item.FieldValue?.ToString() ?? ""; break; } } } var Parameter = new { MenuId, Code, Name, ReportId }; var Result = await _QueryExecutor.QueryAsync( LoginDTO, ReportFormatAdminQB.GET_REPORT_MENU_PICKLIST, Parameter, cancellationToken: ct).ConfigureAwait(false); return JsonSerializer.Serialize(Result); } public async Task GetSelectListSection(CriteriaDTO CriteriaDTO, LoginDTO LoginDTO, CancellationToken ct) { string Id = ""; string Code = ""; string Name = ""; string ModuleId = ""; var Attributes = CriteriaDTO?.SectionCriteriaList?.Count > 0 ? CriteriaDTO.SectionCriteriaList[0].AttributesCriteriaList : null; if (Attributes != null) { foreach (var Item in Attributes) { switch (Item.FieldName.ToLower()) { case "id": Id = Item.FieldValue?.ToString() ?? ""; break; case "code": Code = Item.FieldValue?.ToString() ?? ""; break; case "name": Name = Item.FieldValue?.ToString() ?? ""; break; case "moduleid": ModuleId = Item.FieldValue?.ToString() ?? ""; break; } } } var Parameter = new { Id, Code, Name, ModuleId }; var Result = await _QueryExecutor.QueryAsync( LoginDTO, ReportFormatAdminQB.GET_SELECTLIST_SECTION, Parameter, cancellationToken: ct).ConfigureAwait(false); return JsonSerializer.Serialize(Result); } } }