using GB5Shared.DTO.Framework.Login; using GB5Shared.QueryExecutor; using GB5Shared.Resource.Response; using GB5Shared.Validation; using Newtonsoft.Json; using QMSDAL.DTO; using QMSDAL.Query.ChecklistApplicability; using System.Collections.Generic; using System.Threading.Tasks; namespace QMSDAL.CustomCode.ChecklistApplicability { public class ChecklistApplicabilityDAL : IChecklistApplicabilityDAL { private readonly IQueryExecutor _QueryExecutor; private readonly IValidation _Validation; public ChecklistApplicabilityDAL( IQueryExecutor QueryExecutor, IValidation Validation) { _QueryExecutor = QueryExecutor; _Validation = Validation; } public async Task GetChecklistApplicability( int ChecklistApplicabilityId, LoginDTO LoginDTO) { try { string Sql = ChecklistApplicabilityQB.GET_CHECKLISTAPPLICABILITY; var Parameters = new { ChecklistApplicabilityId }; ChecklistApplicabilityDTO dto = await _QueryExecutor.QuerySingleAsync( LoginDTO, Sql, Parameters); return JsonConvert.SerializeObject(dto); } catch (Exception) { throw; } } public async Task GetChecklistApplicabilityList( ChecklistApplicabilityDTO ChecklistApplicabilityDTO, LoginDTO LoginDTO) { try { string Sql = ChecklistApplicabilityQB.GET_CHECKLISTAPPLICABILITY_LIST; var Parameters = new { ChecklistApplicabilityDTO }; IEnumerable list = await _QueryExecutor.QueryAsync( LoginDTO, Sql, Parameters); return JsonConvert.SerializeObject(list); } catch (Exception) { throw; } } public async Task SaveChecklistApplicability( ChecklistApplicabilityDTO dto, LoginDTO LoginDTO) { try { string Sql = ChecklistApplicabilityQB.SAVE_CHECKLISTAPPLICABILITY; return await _QueryExecutor.ExecuteAsync(LoginDTO, Sql, dto); } catch (Exception ex) { string Error = await _Validation.HandleException( ex, ErrorResponse.SaveErrorMessage); throw new Exception(Error); } } public async Task UpdateChecklistApplicability( ChecklistApplicabilityDTO dto, LoginDTO LoginDTO) { try { string Sql = ChecklistApplicabilityQB.UPDATE_CHECKLISTAPPLICABILITY; return await _QueryExecutor.ExecuteAsync(LoginDTO, Sql, dto); } catch (Exception ex) { string Error = await _Validation.HandleException( ex, ErrorResponse.UpdateErrorMessage); throw new Exception(Error); } } public async Task DeleteChecklistApplicability( int ChecklistApplicabilityId, LoginDTO LoginDTO) { try { string Sql = ChecklistApplicabilityQB.DELETE_CHECKLISTAPPLICABILITY; var Parameters = new { ChecklistApplicabilityId }; int result = await _QueryExecutor.ExecuteAsync(LoginDTO, Sql, Parameters); return result > 0 ? SuccessResponse.DeleteSuccessMessage : ErrorResponse.DeleteNotFoundMessage; } catch (Exception ex) { string Error = await _Validation.HandleException( ex, ErrorResponse.DeleteErrorMessage); throw new Exception(Error); } } } }