using BMA.EHR.Application.Repositories; using BMA.EHR.Application.Repositories.MessageQueue; using BMA.EHR.Discipline.Service.Requests; using BMA.EHR.Domain.Common; using BMA.EHR.Domain.Models.Discipline; using BMA.EHR.Domain.Shared; using BMA.EHR.Infrastructure.Persistence; // using BMA.EHR.Placement.Service.Requests; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using Newtonsoft.Json.Linq; using Newtonsoft.Json; using Swashbuckle.AspNetCore.Annotations; using System.Security.Claims; namespace BMA.EHR.DisciplineSuspend.Service.Controllers { [Route("api/v{version:apiVersion}/discipline/report")] [ApiVersion("1.0")] [ApiController] [Produces("application/json")] [Authorize] [SwaggerTag("ระบบวินัยรายงาน")] public class DisciplineReportController : BaseController { private readonly DisciplineDbContext _context; private readonly MinIODisciplineService _documentService; private readonly IHttpContextAccessor _httpContextAccessor; private readonly PermissionRepository _permission; public DisciplineReportController(DisciplineDbContext context, MinIODisciplineService documentService, IHttpContextAccessor httpContextAccessor, PermissionRepository permission) { // _repository = repository; _context = context; _documentService = documentService; _httpContextAccessor = httpContextAccessor; _permission = permission; } #region " Properties " private string? UserId => _httpContextAccessor?.HttpContext?.User?.FindFirst(ClaimTypes.NameIdentifier)?.Value; private string? FullName => _httpContextAccessor?.HttpContext?.User?.FindFirst("name")?.Value; #endregion /// /// รายชื่อออกคำสั่งลงโทษ /// /// /// /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง /// ไม่ได้ Login เข้าระบบ /// เมื่อเกิดข้อผิดพลาดในการทำงาน [HttpPost("{type}")] public async Task> GetReportDiscipline([FromBody] DisciplineReportRequest req, string type) { // var data = await _context.DisciplineDisciplinary_ProfileComplaintInvestigates // .Include(x => x.DisciplineDisciplinary) // .Where(x => x.Id == d.id) // .FirstOrDefaultAsync(); var getPermission = await _permission.GetPermissionAPIAsync("LIST", "SYS_DISCIPLINE_REPORT"); var jsonData = JsonConvert.DeserializeObject(getPermission); if (jsonData["status"]?.ToString() != "200") { return Error(jsonData["message"]?.ToString(), StatusCodes.Status403Forbidden); } // var profile = new List(); // if (type.Trim().ToUpper() == "OFFICER") // { // profile = await _userProfileRepository.GetProfileWithKeycloakAllOfficer(AccessToken, req.node, req.nodeId, jsonData["result"] == "OWNER" || jsonData["result"] == "CHILD"); // } // else // { // profile = await _userProfileRepository.GetProfileWithKeycloakAllEmployee(AccessToken, req.node, req.nodeId, jsonData["result"] == "OWNER" || jsonData["result"] == "CHILD"); // } var result = new { template = "reportDiscipline", reportName = "reportDiscipline", data = new { year = req.year + 543, data = new List() } }; return Success(result); } } }