using GB5Shared.DTO.Framework.Criteria; using GB5Shared.DTO.Framework.Login; using GB5Shared.QueryExecutor; using GB5Shared.Resource.Response; using GB5Shared.Validation; using MMDAL.DTO.NDTCertificate; using MMDAL.Query.NDTCertificate; using Newtonsoft.Json; namespace MMDAL.CustomCode.NDTCertificate { public class NDTCertificateDAL : INDTCertificateDAL { private readonly IQueryExecutor _QueryExecutor; private readonly IValidation _Validation; public NDTCertificateDAL(IQueryExecutor QueryExecutor, IValidation Validation) { _QueryExecutor = QueryExecutor; _Validation = Validation; } public async Task GetNDTCertificate(int NDTCertificateId, LoginDTO LoginDTO) { try { string sql = NDTCertificateQB.GET_NDTCERTIFICATE; var parameters = new { ndtcertificateid = NDTCertificateId, tenantid = LoginDTO.ClientId }; return await _QueryExecutor.QuerySingleAsync(LoginDTO, sql, parameters); } catch (Exception) { throw; } } public async Task GetSelectListNDTCertificate(int FirstNumber, int MaxResult, CriteriaDTO CriteriaDTO, LoginDTO LoginDTO, bool IsCount = false) { try { if (IsCount == false) { string sql = NDTCertificateQB.GET_SELECTLIST_NDTCERTIFICATE; var parameters = new { firstnumber = FirstNumber, maxresult = MaxResult, tenantid = LoginDTO.ClientId }; var result = await _QueryExecutor.QueryAsync(LoginDTO, sql, parameters); return JsonConvert.SerializeObject(result); } else { return 0.ToString(); } } catch (Exception) { throw; } } public async Task SaveNDTCertificate(NDTCertificateDTO NDTCertificateDTO, LoginDTO LoginDTO) { try { var parameters = new { NDTCertificateDTO.NDTCertificateId, NDTCertificateDTO.NDTCertificateNdtReportId, NDTCertificateDTO.NDTCertificateNdtAgencyId, NDTCertificateDTO.NDTCertificateCertificateNo, NDTCertificateDTO.NDTCertificateCertificateDate, NDTCertificateDTO.NDTCertificateInspectorName, NDTCertificateDTO.NDTCertificateInspectorLevel, NDTCertificateDTO.NDTCertificateAgencyCertificateNo, NDTCertificateDTO.NDTCertificateValidUpto, NDTCertificateDTO.NDTCertificateAttachmentId, NDTCertificateDTO.NDTCertificateVerifiedById, NDTCertificateDTO.NDTCertificateVerifiedOn, NDTCertificateDTO.NDTCertificateRemarks, NDTCertificateDTO.NDTCertificateSortOrder, NDTCertificateDTO.NDTCertificateStatus, NDTCertificateDTO.NDTCertificateVersion, NDTCertificateDTO.NDTCertificateSourceType, NDTCertificateDTO.NDTCertificateCreatedById, NDTCertificateDTO.NDTCertificateCreatedOn, NDTCertificateDTO.NDTCertificateModifiedById, NDTCertificateDTO.NDTCertificateModifiedOn, tenantid = LoginDTO.ClientId }; return await _QueryExecutor.ExecuteAsync(LoginDTO, NDTCertificateQB.SAVE_NDTCERTIFICATE, parameters); } catch (Exception ex) { string error = await _Validation.HandleException(ex, $"{ErrorResponse.SaveErrorMessage}"); throw new Exception(error); } } public async Task UpdateNDTCertificate(NDTCertificateDTO NDTCertificateDTO, LoginDTO LoginDTO) { try { var parameters = new { NDTCertificateDTO.NDTCertificateId, NDTCertificateDTO.NDTCertificateNdtReportId, NDTCertificateDTO.NDTCertificateNdtAgencyId, NDTCertificateDTO.NDTCertificateCertificateNo, NDTCertificateDTO.NDTCertificateCertificateDate, NDTCertificateDTO.NDTCertificateInspectorName, NDTCertificateDTO.NDTCertificateInspectorLevel, NDTCertificateDTO.NDTCertificateAgencyCertificateNo, NDTCertificateDTO.NDTCertificateValidUpto, NDTCertificateDTO.NDTCertificateAttachmentId, NDTCertificateDTO.NDTCertificateVerifiedById, NDTCertificateDTO.NDTCertificateVerifiedOn, NDTCertificateDTO.NDTCertificateRemarks, NDTCertificateDTO.NDTCertificateSortOrder, NDTCertificateDTO.NDTCertificateStatus, NDTCertificateDTO.NDTCertificateVersion, NDTCertificateDTO.NDTCertificateSourceType, NDTCertificateDTO.NDTCertificateModifiedById, NDTCertificateDTO.NDTCertificateModifiedOn, tenantid = LoginDTO.ClientId }; return await _QueryExecutor.ExecuteAsync(LoginDTO, NDTCertificateQB.UPDATE_NDTCERTIFICATE, parameters); } catch (Exception ex) { string error = await _Validation.HandleException(ex, $"{ErrorResponse.UpdateErrorMessage}"); throw new Exception(error); } } public async Task DeleteNDTCertificate(int NDTCertificateId, LoginDTO LoginDTO) { try { var parameters = new { ndtcertificateid = NDTCertificateId, tenantid = LoginDTO.ClientId }; var result = await _QueryExecutor.ExecuteAsync(LoginDTO, NDTCertificateQB.DELETE_NDTCERTIFICATE, parameters); if (result > 0) return $"{SuccessResponse.DeleteSuccessMessage}"; else return $"{ErrorResponse.DeleteNotFoundMessage}"; } catch (Exception ex) { string error = await _Validation.HandleException(ex, $"{ErrorResponse.DeleteErrorMessage}"); throw new Exception(error); } } } }