using System.Linq; using System.Threading.Tasks; using AccountsDAL.DTO.AccountsReports; using AccountsDAL.DTO.Voucher; using AccountsDAL.Query.AccountReports; using AccountsDAL.Query.Voucher; using GB5Shared.DTO.Framework.Login; using GB5Shared.QueryExecutor; namespace AccountsDAL.CustomCode.AccountReports { public class AccountReportAccessControlDAL : IAccountReportAccessControlDAL { private readonly IQueryExecutor _queryExecutor; public AccountReportAccessControlDAL(IQueryExecutor queryExecutor) { _queryExecutor = queryExecutor; } public async Task GetReportAccessLimits(int roleId, int menuId, LoginDTO loginDTO) { var rows = await _queryExecutor .QueryAsync(loginDTO, AccountReportsQB.GET_REPORT_ACCESS_LIMITS, new { RoleId = roleId, MenuId = menuId }) .ConfigureAwait(false); return rows.FirstOrDefault(); } public async Task GetNoOfReadPeriodForUser(int userId, LoginDTO loginDTO) { var rows = await _queryExecutor .QueryAsync(loginDTO, AccountReportsQB.GET_NOOFREADPERIOD_FOR_USER, new { UserId = userId }) .ConfigureAwait(false); return rows.FirstOrDefault(); } public async Task GetPeriodDateRange(int periodId, LoginDTO loginDTO) { var rows = await _queryExecutor .QueryAsync(loginDTO, VoucherQB.GET_PERIOD_DATE_RANGE, new { PeriodId = periodId }) .ConfigureAwait(false); return rows.FirstOrDefault(); } } }