using GB5Shared.DTO.Framework.AutoNumber; using GB5Shared.DTO.Framework.Criteria; using GB5Shared.DTO.Framework.Login; using GB5Shared.GenerateAutoNumber; using GB5Shared.Resource.Response; using GB5Shared.Validation; using MMDAL.CustomCode.GradeSpecificationValue; using MMDAL.DTO.GradeSpecificationValue; using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Text; using System.Threading.Tasks; namespace MMBLL.GradeSpecificationValue { public class GradeSpecificationValueBLL : IGradeSpecificationValueBLL { private readonly IGradeSpecificationValueDAL _GradeSpecificationValueDAL; private readonly AutoNumber _AutoNumber; private readonly IValidation _Validation; public GradeSpecificationValueBLL(IGradeSpecificationValueDAL IGradeSpecificationValueDAL, AutoNumber AutoNumber, IValidation validation) { _GradeSpecificationValueDAL = IGradeSpecificationValueDAL; _AutoNumber = AutoNumber; _Validation = validation; } public async Task GetGradeSpecificationValue(int GradeSpecificationValueId, LoginDTO LoginDTO) { try { return await _GradeSpecificationValueDAL.GetGradeSpecificationValue(GradeSpecificationValueId, LoginDTO); } catch (Exception) { throw; } } public async Task GetSelectListGradeSpecificationValue(int FirstNumber, int MaxResult, CriteriaDTO criteriaDTO, LoginDTO LoginDTO) { try { return await _GradeSpecificationValueDAL.GetSelectListGradeSpecificationValue(FirstNumber, MaxResult, criteriaDTO, LoginDTO); } catch (Exception) { throw; } } public async Task SaveGradeSpecificationValue(GradeSpecificationValueDTO GradeSpecificationValueDTO, LoginDTO LoginDTO) { if (GradeSpecificationValueDTO == null) throw new ArgumentNullException(nameof(GradeSpecificationValueDTO)); try { GradeSpecificationValueDTO.GradeSpecificationValueModifiedById = LoginDTO.UserId; GradeSpecificationValueDTO.GradeSpecificationValueModifiedOn = DateTime.UtcNow; GradeSpecificationValueDTO.TenantId = LoginDTO.ClientId; if (GradeSpecificationValueDTO.GradeSpecificationValueId == 0) { GradeSpecificationValueDTO.GradeSpecificationValueCreatedById = LoginDTO.UserId; GradeSpecificationValueDTO.GradeSpecificationValueCreatedOn = DateTime.UtcNow; GradeSpecificationValueDTO.GradeSpecificationValueId = await _GradeSpecificationValueDAL.SaveGradeSpecificationValue(GradeSpecificationValueDTO, LoginDTO); return $"{SuccessResponse.SaveSuccessMessage} {GradeSpecificationValueDTO.GradeSpecificationValueId}"; } else { await _GradeSpecificationValueDAL.UpdateGradeSpecificationValue(GradeSpecificationValueDTO, LoginDTO); return $"{SuccessResponse.UpdateSuccessMessage} {GradeSpecificationValueDTO.GradeSpecificationValueId}"; } } catch (ValidationException vex) { throw new Exception(vex.Message); } catch (Exception) { throw; } } public async Task DeleteGradeSpecificationValue(int GradeSpecificationValueId, LoginDTO LoginDTO) { try { return await _GradeSpecificationValueDAL.DeleteGradeSpecificationValue(GradeSpecificationValueId, LoginDTO); } catch (Exception) { throw; } } } }