using FrameworkDAL.DTO.CommandPanel; using FrameworkDAL.Query.CommandPanel; using GB5Shared.DTO.Framework.Criteria; using GB5Shared.DTO.Framework.Login; using GB5Shared.QueryExecutor; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Data.Common; using System.Linq; using System.Threading.Tasks; namespace FrameworkDAL.CustomCode.CommandPanel { public class CommandPanelDAL : ICommandPanelDAL { private readonly IQueryExecutor _QueryExecutor; public CommandPanelDAL(IQueryExecutor queryExecutor) { _QueryExecutor = queryExecutor; } public async Task GetSelectListCommandPanel(int FirstNumber, int MaxResult, CriteriaDTO criteriaDTO, LoginDTO loginDTO, bool IsCount = false) { try { string json = ""; if (!IsCount) { string sql = CommandPanelQB.GET_SELECTLIST_COMMAND_PANEL; var parameter = new { firstnumber = FirstNumber, maxresult = MaxResult, TenantId = loginDTO.ClientId }; List list = (await _QueryExecutor.QueryAsync(loginDTO, sql, parameter)).ToList(); json = JsonConvert.SerializeObject(list); } else { int count = await _QueryExecutor.ExecuteScalarAsync( loginDTO, CommandPanelQB.GET_SELECTLIST_COMMAND_PANEL_COUNT, new { TenantId = loginDTO.ClientId }); json = count.ToString(); } return json; } catch (Exception) { throw; } } public async Task GetCommandPanel(int commandPanelId, LoginDTO loginDTO) { string json = ""; try { string sql = CommandPanelQB.GET_COMMAND_PANEL; var parameters = new { CommandPanelId = commandPanelId, TenantId = loginDTO.ClientId }; CommandPanelDTO data = await _QueryExecutor.QuerySingleAsync(loginDTO, sql, parameters); json = JsonConvert.SerializeObject(data); return json; } catch (Exception) { throw; } } public async Task SaveCommandPanel(CommandPanelDTO dto, LoginDTO loginDTO) { try { const string sql = CommandPanelQB.SAVE_COMMAND_PANEL; return await _QueryExecutor.ExecuteAsync(loginDTO, sql, dto); } catch (Exception ex) { throw new Exception("Error while saving CommandPanel", ex); } } public async Task UpdateCommandPanel(CommandPanelDTO dto, LoginDTO loginDTO) { try { const string sql = CommandPanelQB.UPDATE_COMMAND_PANEL; return await _QueryExecutor.ExecuteAsync(loginDTO, sql, dto); } catch (Exception ex) { throw new Exception("Error while updating CommandPanel", ex); } } public async Task DeleteCommandPanel(int commandPanelId, LoginDTO loginDTO) { try { const string sql = CommandPanelQB.DELETE_COMMAND_PANEL; var parameters = new { CommandPanelId = commandPanelId, TenantId = loginDTO.ClientId }; return await _QueryExecutor.ExecuteAsync(loginDTO, sql, parameters); } catch (Exception ex) { throw new Exception("Error while deleting CommandPanel", ex); } } public async Task GetAllCommandPanel(LoginDTO loginDTO) { try { List list = (await _QueryExecutor.QueryAsync(loginDTO, CommandPanelQB.GET_ALL_COMMAND_PANEL)).ToList(); return JsonConvert.SerializeObject(list); } catch (Exception) { throw; } } } }