using FBCKDAL.DTOs; using FBCKDAL.Interfaces; using FBCKDAL.QueryBuilders; using GB5Shared.DTO.Framework.Login; using GB5Shared.QueryExecutor; namespace FBCKDAL.Implementations; public class RecognitionDAL : IRecognitionDAL { private readonly IQueryExecutor _qe; public RecognitionDAL(IQueryExecutor qe) => _qe = qe; public async Task GetRecognitionAsync(int recognitionId, LoginDTO login, CancellationToken ct) => await _qe.QuerySingleAsync(login, RecognitionQB.GET_RECOGNITION, new { RecognitionId = recognitionId, TenantId = login.ClientId }).ConfigureAwait(false); public async Task> GetRecognitionListAsync( int toEmployeeId, int fromEmployeeId, int page, int pageSize, LoginDTO login, CancellationToken ct) => await _qe.QueryAsync(login, RecognitionQB.GET_RECOGNITION_LIST, new { ToEmployeeId = toEmployeeId, FromEmployeeId = fromEmployeeId, TenantId = login.ClientId, Offset = (page - 1) * pageSize, PageSize = pageSize }, cancellationToken: ct).ConfigureAwait(false) ?? Enumerable.Empty(); public async Task> GetRecognitionWallAsync( int ouid, int page, int pageSize, LoginDTO login, CancellationToken ct) => await _qe.QueryAsync(login, RecognitionQB.GET_RECOGNITION_WALL, new { OUID = ouid, TenantId = login.ClientId, Offset = (page - 1) * pageSize, PageSize = pageSize }, cancellationToken: ct).ConfigureAwait(false) ?? Enumerable.Empty(); public async Task SaveRecognitionAsync(RecognitionDTO dto, LoginDTO login, CancellationToken ct) { dto.TenantId = login.ClientId; dto.CreatedBy = login.UserId; return await _qe.ExecuteIdentityAsync(login, RecognitionQB.INSERT_RECOGNITION, dto).ConfigureAwait(false); } public async Task DeleteRecognitionAsync(int recognitionId, LoginDTO login, CancellationToken ct) => await _qe.ExecuteAsync(login, RecognitionQB.DELETE_RECOGNITION, new { RecognitionId = recognitionId, TenantId = login.ClientId }, cancellationToken: ct).ConfigureAwait(false); }