using GB5Shared.DTO.Framework.Criteria; using GB5Shared.DTO.Framework.Login; using GB5Shared.QueryExecutor; using FrameworkDAL.DTO.Entity; using FrameworkDAL.Query.Entity; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Linq; using System.Runtime.CompilerServices; using System.Text; using System.Threading.Tasks; using GB5Shared.GB5Exception; using GB5Shared.DTO.Framework.Logging; namespace FrameworkDAL.CustomCode.Entity { public class EntityDAL : IEntityDAL { private readonly IQueryExecutor _queryExecutor; public EntityDAL(IQueryExecutor queryExecutor) { _queryExecutor = queryExecutor; } public async Task GetSelectListEntity(int FirstNumber, int MaxResult, CriteriaDTO CriteriaDTO, LoginDTO LoginDTO, bool IsCount = false) { try { string Json = ""; if (IsCount == false) { string SQL = EntityQB.GetSelectList_Entity; var parameter = new { firstnumber = FirstNumber, maxresult = MaxResult }; List EntityPicklistDTO = (await _queryExecutor.QueryAsync(LoginDTO, SQL, parameter)).ToList(); Json = JsonConvert.SerializeObject(EntityPicklistDTO); } else { int Count = 0; Json = Count.ToString(); } return Json; } catch (Exception) { throw; } } public async Task GetEntityById(int EntityId, LoginDTO LoginDTO) { try { var parameter = new { EntityId }; // QuerySingleAsync returns default(EntityPicklistDTO) (Code == null) when not found. return await _queryExecutor.QuerySingleAsync( LoginDTO, EntityQB.GET_ENTITY_BY_ID, parameter); } catch (Exception) { throw; } } } }