using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Text; using System.Threading.Tasks; 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.GradeStandardCategory; using MMDAL.DTO.GradeStandard; using MMDAL.DTO.GradeStandardCategory; namespace MMBLL.GradeStandardCategory { public class GradeStandardCategoryBLL : IGradeStandardCategoryBLL { private readonly IGradeStandardCategoryDAL _GradeStandardCategoryDAL; private readonly AutoNumber _AutoNumber; private readonly IValidation _Validation; public GradeStandardCategoryBLL(IGradeStandardCategoryDAL IGradeStandardCategoryDAL, AutoNumber AutoNumber, IValidation Validation) { _GradeStandardCategoryDAL = IGradeStandardCategoryDAL; _AutoNumber = AutoNumber; _Validation = Validation; } public async Task GetGradeStandardCategory(int GradeStandardCategoryId, LoginDTO LoginDTO) { try { return await _GradeStandardCategoryDAL.GetGradeStandardCategory(GradeStandardCategoryId, LoginDTO); } catch (Exception) { throw; } } public async Task SaveGradeStandardCategory(GradeStandardCategoryDTO GradeStandardCategoryDTO, LoginDTO LoginDTO) { if (GradeStandardCategoryDTO == null) throw new ArgumentNullException(nameof(GradeStandardCategoryDTO)); try { GradeStandardCategoryDTO.GradeStandardCategoryModifiedById = LoginDTO.UserId; GradeStandardCategoryDTO.GradeStandardCategoryModifiedOn = DateTime.UtcNow; GradeStandardCategoryDTO.GradeStandardCategoryTenantId = LoginDTO.ClientId; if (GradeStandardCategoryDTO.GradeStandardCategoryId == 0) { GradeStandardCategoryDTO.GradeStandardCategoryCreatedById = LoginDTO.UserId; GradeStandardCategoryDTO.GradeStandardCategoryCreatedOn = DateTime.UtcNow; GradeStandardCategoryDTO.GradeStandardCategoryId = await _GradeStandardCategoryDAL.SaveGradeStandardCategory(GradeStandardCategoryDTO, LoginDTO); return $"{SuccessResponse.SaveSuccessMessage} {GradeStandardCategoryDTO.GradeStandardCategoryId}"; } else { await _GradeStandardCategoryDAL.UpdateGradeStandardCategory(GradeStandardCategoryDTO, LoginDTO); return $"{SuccessResponse.UpdateSuccessMessage} {GradeStandardCategoryDTO.GradeStandardCategoryId}"; } } catch (ValidationException vex) { throw new Exception(vex.Message); } catch (Exception) { throw; } } } }