using GB5Shared.DTO.Framework.Login; using GB5Shared.QueryExecutor; using TMSDAL.DTO.AssessmentFlsBridge; using TMSDAL.Query.AssessmentFlsBridge; namespace TMSDAL.CustomCode.AssessmentFlsBridge { public class AssessmentFlsBridgeDAL : IAssessmentFlsBridgeDAL { private readonly IQueryExecutor _QueryExecutor; public AssessmentFlsBridgeDAL(IQueryExecutor QueryExecutor) { _QueryExecutor = QueryExecutor; } public async Task ResolveFormTemplateIdByCode(string formTemplateCode, LoginDTO loginDTO, CancellationToken ct) { var result = await _QueryExecutor.QueryAsync( loginDTO, AssessmentFlsBridgeQB.RESOLVE_FORMTEMPLATEID_BY_CODE, new { code = formTemplateCode }, cancellationToken: ct).ConfigureAwait(false); return result.FirstOrDefault(); } public async Task ResolveModuleIdByCode(string moduleCode, LoginDTO loginDTO, CancellationToken ct) { var result = await _QueryExecutor.QueryAsync( loginDTO, AssessmentFlsBridgeQB.RESOLVE_MODULEID_BY_CODE, new { code = moduleCode }, cancellationToken: ct).ConfigureAwait(false); return result.FirstOrDefault(); } public async Task GetCoordinatorByTenant(LoginDTO loginDTO, CancellationToken ct) { var result = await _QueryExecutor.QueryAsync( loginDTO, AssessmentFlsBridgeQB.GET_COORDINATOR_BY_TENANT, new { tenantid = loginDTO.ClientId }, cancellationToken: ct).ConfigureAwait(false); return result.FirstOrDefault(); } public async Task SaveCoordinator(AssessmentFlsCoordinatorDTO dto, LoginDTO loginDTO, CancellationToken ct) => await _QueryExecutor.ExecuteAsync(loginDTO, AssessmentFlsBridgeQB.SAVE_COORDINATOR, dto, cancellationToken: ct).ConfigureAwait(false); public async Task InsertFlsInstanceOpen(int flsInstanceId, int flsRegistrationId, string instanceCode, string instanceName, LoginDTO loginDTO, CancellationToken ct) { await _QueryExecutor.ExecuteAsync( loginDTO, AssessmentFlsBridgeQB.INSERT_FLS_INSTANCE_OPEN, new { FlsInstanceId = flsInstanceId, FlsRegistrationId = flsRegistrationId, InstanceCode = instanceCode, InstanceName = instanceName, CreatedById = loginDTO.UserId, ModifiedById = loginDTO.UserId, TenantId = loginDTO.ClientId }, cancellationToken: ct).ConfigureAwait(false); } public async Task InsertFlsInstanceGroup(int groupId, int flsInstanceId, string groupCode, string groupName, LoginDTO loginDTO, CancellationToken ct) { await _QueryExecutor.ExecuteAsync( loginDTO, AssessmentFlsBridgeQB.INSERT_FLS_INSTANCE_GROUP, new { GroupId = groupId, FlsInstanceId = flsInstanceId, GroupCode = groupCode, GroupName = groupName, CreatedById = loginDTO.UserId, ModifiedById = loginDTO.UserId, TenantId = loginDTO.ClientId }, cancellationToken: ct).ConfigureAwait(false); } public async Task GetBridgeByRespondentId(int flsRespondentId, LoginDTO loginDTO, CancellationToken ct) { var result = await _QueryExecutor.QueryAsync( loginDTO, AssessmentFlsBridgeQB.GET_BRIDGE_BY_RESPONDENTID, new { flsrespondentid = flsRespondentId }, cancellationToken: ct).ConfigureAwait(false); return result.FirstOrDefault(); } public async Task SaveBridge(AssessmentFlsBridgeDTO dto, LoginDTO loginDTO, CancellationToken ct) => await _QueryExecutor.ExecuteAsync(loginDTO, AssessmentFlsBridgeQB.SAVE_BRIDGE, dto, cancellationToken: ct).ConfigureAwait(false); public async Task MarkBridgeOpened(int assessmentFlsBridgeId, int assessmentAttemptId, LoginDTO loginDTO, CancellationToken ct) => await _QueryExecutor.ExecuteAsync( loginDTO, AssessmentFlsBridgeQB.MARK_BRIDGE_OPENED, new { AssessmentFlsBridgeId = assessmentFlsBridgeId, AssessmentAttemptId = assessmentAttemptId }, cancellationToken: ct).ConfigureAwait(false); public async Task MarkBridgeSubmitted(int assessmentFlsBridgeId, LoginDTO loginDTO, CancellationToken ct) => await _QueryExecutor.ExecuteAsync( loginDTO, AssessmentFlsBridgeQB.MARK_BRIDGE_SUBMITTED, new { AssessmentFlsBridgeId = assessmentFlsBridgeId }, cancellationToken: ct).ConfigureAwait(false); } }