using FBCKDAL.DTOs; using FBCKDAL.Interfaces; using FBCKDAL.QueryBuilders; using GB5Shared.DTO.Framework.Login; using GB5Shared.QueryExecutor; namespace FBCKDAL.Implementations; public class OneOnOneNoteDAL : IOneOnOneNoteDAL { private readonly IQueryExecutor _qe; public OneOnOneNoteDAL(IQueryExecutor qe) => _qe = qe; public async Task GetNoteAsync(int tononoteId, LoginDTO login, CancellationToken ct) => await _qe.QuerySingleAsync(login, OneOnOneNoteQB.GET_NOTE, new { TONONoteId = tononoteId, TenantId = login.ClientId }).ConfigureAwait(false); public async Task> GetNoteListAsync( int employeeId, int managerId, short status, int page, int pageSize, LoginDTO login, CancellationToken ct) => await _qe.QueryAsync(login, OneOnOneNoteQB.GET_NOTE_LIST, new { EmployeeId = employeeId, ManagerId = managerId, Status = status, TenantId = login.ClientId, Offset = (page - 1) * pageSize, PageSize = pageSize }, cancellationToken: ct).ConfigureAwait(false) ?? Enumerable.Empty(); public async Task SaveNoteAsync(OneOnOneNoteDTO dto, LoginDTO login, CancellationToken ct) { if (dto.TONONoteId == 0) { dto.TenantId = login.ClientId; return await _qe.ExecuteIdentityAsync(login, OneOnOneNoteQB.INSERT_NOTE, dto).ConfigureAwait(false); } await _qe.ExecuteAsync(login, OneOnOneNoteQB.UPDATE_NOTE, dto, cancellationToken: ct).ConfigureAwait(false); return dto.TONONoteId; } public async Task CompleteNoteAsync(int tononoteId, LoginDTO login, CancellationToken ct) => await _qe.ExecuteAsync(login, OneOnOneNoteQB.COMPLETE_NOTE, new { TONONoteId = tononoteId, TenantId = login.ClientId }, cancellationToken: ct).ConfigureAwait(false); }