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.Commands.Core; 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 Swashbuckle.AspNetCore.Annotations; using System.Configuration; using System.Net.Http.Headers; using System.Security.Claims; namespace BMA.EHR.DisciplineResult.Service.Controllers { [Route("api/v{version:apiVersion}/discipline/result")] [ApiVersion("1.0")] [ApiController] [Produces("application/json")] [Authorize] [SwaggerTag("ระบบวินัยเรื่องผลการพิจารณาทางวินัย")] public class DisciplineResultController : BaseController { private readonly DisciplineDbContext _context; private readonly MinIODisciplineService _documentService; private readonly IHttpContextAccessor _httpContextAccessor; private readonly IConfiguration _configuration; public DisciplineResultController(DisciplineDbContext context, MinIODisciplineService documentService, IHttpContextAccessor httpContextAccessor, IConfiguration configuration) { // _repository = repository; _context = context; _documentService = documentService; _httpContextAccessor = httpContextAccessor; _configuration = configuration; } #region " Properties " private string? UserId => _httpContextAccessor?.HttpContext?.User?.FindFirst(ClaimTypes.NameIdentifier)?.Value; private string? FullName => _httpContextAccessor?.HttpContext?.User?.FindFirst("name")?.Value; private string? token => _httpContextAccessor?.HttpContext?.Request.Headers["Authorization"]; #endregion /// /// list รายการสรุปผลการพิจารณาทางวินัย /// /// /// /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง /// ไม่ได้ Login เข้าระบบ /// เมื่อเกิดข้อผิดพลาดในการทำงาน [HttpGet()] public async Task> GetDisciplineResult(int page = 1, int pageSize = 25, string keyword = "", string status = "") { // var data_search = (from x in _context.DisciplineDisciplinarys // where x.Title.Contains(keyword) || // (x.ResultOc == null ? false : x.ResultOc.Contains(keyword)) || // (x.ResultDisciplineType == null ? false : x.ResultDisciplineType.Contains(keyword)) || // (x.ResultTitleType == null ? false : x.ResultTitleType.Contains(keyword)) || // (x.ResultYear == null ? false : (x.ResultYear + 543).ToString().Contains(keyword)) // where x.Status.Contains("DONE") || x.Status.Contains("REPORT") // // x.DisciplinaryFaultLevel == null ? false : x.DisciplinaryFaultLevel.Contains(keyword) || // // x.DisciplinaryCaseFault == null ? false : x.DisciplinaryCaseFault.Contains(keyword) || // select x).ToList(); var data_search = await _context.DisciplineDisciplinarys.AsQueryable() .Where(x => x.Title.Contains(keyword) || (x.ResultOc == null ? false : x.ResultOc.Contains(keyword)) || (x.ResultDisciplineType == null ? false : x.ResultDisciplineType.Contains(keyword)) || (x.ResultTitleType == null ? false : x.ResultTitleType.Contains(keyword)) || (x.ResultYear == null ? false : (x.ResultYear + 543).ToString().Contains(keyword))) .Where(x => x.Status.Contains("DONE") || x.Status.Contains("REPORT")) .ToListAsync(); // x.DisciplinaryFaultLevel == null ? false : x.DisciplinaryFaultLevel.Contains(keyword) || // x.DisciplinaryCaseFault == null ? false : x.DisciplinaryCaseFault.Contains(keyword) || if (status.Trim().ToUpper() != "ALL") data_search = data_search.Where(x => x.Status.Contains(status.Trim().ToUpper())).ToList(); var data = data_search .Select(x => new { Id = x.Id,//id ข้อมูลเรื่องสอบสวน Title = x.Title,//ชื่อเรื่อง RespondentType = x.RespondentType,//ผู้ถูกสืบสวน OffenseDetails = x.OffenseDetails,//ลักษณะความผิด DisciplinaryFaultLevel = x.DisciplinaryFaultLevel,//ระดับโทษความผิด DisciplinaryCaseFault = x.DisciplinaryCaseFault,//กรณีความผิด Status = x.Status,//สถานะหรือผลการสอบสวน CreatedAt = x.CreatedAt,//วันที่สร้างเรื่องสอบสวน ResultOc = x.ResultOc,// ResultDisciplineType = x.ResultDisciplineType,// ResultTitleType = x.ResultTitleType,// ResultYear = x.ResultYear,// }) .OrderByDescending(x => x.CreatedAt) .Skip((page - 1) * pageSize) .Take(pageSize) .ToList(); return Success(new { data, total = data_search.Count() }); } /// /// get รายการสรุปผลการพิจารณาทางวินัย /// /// /// /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง /// ไม่ได้ Login เข้าระบบ /// เมื่อเกิดข้อผิดพลาดในการทำงาน [HttpGet("{id:guid}")] public async Task> GetByDisciplineResult(Guid id) { var _data = await _context.DisciplineDisciplinarys .Select(x => new { Id = x.Id,//id ข้อมูลเรื่องสอบสวน IdInvestigate = x.DisciplineInvestigate.Id,//id ข้อมูลเรื่องสืบสวน IdComplaint = x.DisciplineInvestigate.DisciplineComplaint.Id,//id ข้อมูลเรื่องร้องเรียน RespondentType = x.RespondentType,//ผู้ถูกสืบสวน Persons = x.DisciplineDisciplinary_ProfileComplaintInvestigates.Where(x => x.IsReport == "NEW").Select(p => new { Id = p.Id, Idcard = p.CitizenId, Name = $"{p.Prefix}{p.FirstName} {p.LastName}", Prefix = p.Prefix, FirstName = p.FirstName, LastName = p.LastName, Position = p.Position, // PositionLevel = p.PositionLevel, IsAncestorDNA = p.IsAncestorDNA, Salary = p.Salary, PersonId = p.PersonId, PosNo = p.PosNo, Organization = p.Organization, root = p.root, rootId = p.rootId, rootShortName = p.rootShortName, child1 = p.child1, child1Id = p.child1Id, child1ShortName = p.child1ShortName, child2 = p.child2, child2Id = p.child2Id, child2ShortName = p.child2ShortName, child3 = p.child3, child3Id = p.child3Id, child3ShortName = p.child3ShortName, child4 = p.child4, child4Id = p.child4Id, child4ShortName = p.child4ShortName, posMasterNo = p.posMasterNo, posTypeId = p.posTypeId, posTypeName = p.posTypeName, posLevelId = p.posLevelId, posLevelName = p.posLevelName, Status = p.Status, StatusDiscard = p.StatusDiscard, }),//รายการข้อมูลบุคลผู้ถูกสืบสวน Organization = x.Organization,//id หน่วยงานกรณี type เป็นหน่วยงาน OrganizationId = x.OrganizationId,//id หน่วยงานกรณี type เป็นหน่วยงาน ResultDescription = x.ResultDescription,//สรุปผลการพิจารณา ResultOc = x.ResultOc,// ResultDisciplineType = x.ResultDisciplineType,// ResultTitleType = x.ResultTitleType,// ResultYear = x.ResultYear,// Status = x.Status,//สถานะหรือผลการสอบสวน DisciplineDisciplinary_DocResults = x.DisciplineDisciplinary_DocResults.Where(d => d.Document != null).Select(d => new { d.Document.Id, d.Document.FileName }), }) .Where(x => x.Id == id) .FirstOrDefaultAsync(); if (_data == null) return Error(new Exception(GlobalMessages.DataNotFound), (int)StatusCodes.Status404NotFound); var disciplineDisciplinary_DocResults = new List(); foreach (var doc in _data.DisciplineDisciplinary_DocResults) { var _doc = new { doc.Id, doc.FileName, PathName = await _documentService.ImagesPath(doc.Id), }; disciplineDisciplinary_DocResults.Add(_doc); } var data = new { _data.Id, _data.IdInvestigate, _data.IdComplaint, _data.RespondentType, _data.Persons, _data.Organization, _data.OrganizationId, _data.ResultDescription, _data.ResultOc, _data.ResultDisciplineType, _data.ResultTitleType, _data.ResultYear, _data.Status, disciplineDisciplinary_DocResults, }; return Success(data); } /// /// แก้ไขรายการสรุปผลการพิจารณาทางวินัย /// /// /// /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง /// ไม่ได้ Login เข้าระบบ /// เมื่อเกิดข้อผิดพลาดในการทำงาน [HttpPut("{id:guid}")] public async Task> UpdateDisciplineResult([FromBody] DisciplineResultRequest req, Guid id) { var data = await _context.DisciplineDisciplinarys.Where(x => x.Id == id).FirstOrDefaultAsync(); if (data == null) return Error(new Exception(GlobalMessages.DataNotFound), (int)StatusCodes.Status404NotFound); data.ResultDescription = req.resultDescription; data.ResultOc = req.oc; data.ResultDisciplineType = req.disciplineType; data.ResultTitleType = req.titleType; data.ResultYear = req.year; data.LastUpdateFullName = FullName ?? "System Administrator"; data.LastUpdateUserId = UserId ?? ""; data.LastUpdatedAt = DateTime.Now; await _context.SaveChangesAsync(); return Success(data.Id); } // /// // /// สั่งรายชื่อไปออกคำสั่งให้ออกจากราชการไว้ก่อน // /// // /// // /// // /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง // /// ไม่ได้ Login เข้าระบบ // /// เมื่อเกิดข้อผิดพลาดในการทำงาน // [HttpPut("report/{commandTypeId:length(36)}")] // public async Task> PostToReport([FromBody] DisciplineProfileRequest req, Guid commandTypeId) // { // foreach (var item in req.Id) // { // var uppdated = await _context.DisciplineDisciplinary_ProfileComplaintInvestigates // .FirstOrDefaultAsync(x => x.Id == item); // if (uppdated == null) // continue; // uppdated.CommandTypeId = commandTypeId; // uppdated.Status = "REPORT"; // uppdated.LastUpdateFullName = FullName ?? "System Administrator"; // uppdated.LastUpdateUserId = UserId ?? ""; // uppdated.LastUpdatedAt = DateTime.Now; // } // await _context.SaveChangesAsync(); // return Success(); // } /// /// อัพไฟล์เอกสารสืบสวนวินัย /// /// /// /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง /// ไม่ได้ Login เข้าระบบ /// เมื่อเกิดข้อผิดพลาดในการทำงาน [HttpPut("file/{id:guid}")] public async Task> UploadFileDisciplineDisciplinaryInvestigate([FromForm] DisciplineFileRequest req, Guid id) { var data = await _context.DisciplineDisciplinarys .Where(x => x.Id == id) .FirstOrDefaultAsync(); if (data == null) return Error(new Exception(GlobalMessages.DataNotFound), (int)StatusCodes.Status404NotFound); // if (data.Status.Trim().ToUpper() != "NEW") // return Error(new Exception("ไม่สามารถแก้ไขข้อมูลนี้ได้"), (int)StatusCodes.Status500InternalServerError); if (Request.Form.Files != null && Request.Form.Files.Count != 0) { foreach (var file in Request.Form.Files) { var fileExtension = Path.GetExtension(file.FileName); var doc = await _documentService.UploadFileAsync(file, file.FileName); var _doc = await _context.Documents.AsQueryable() .FirstOrDefaultAsync(x => x.Id == doc.Id); if (_doc != null) { var disciplineDisciplinary_DocResult = new DisciplineDisciplinary_DocResult { DisciplineDisciplinary = data, Document = _doc, CreatedFullName = FullName ?? "System Administrator", CreatedUserId = UserId ?? "", CreatedAt = DateTime.Now, LastUpdateFullName = FullName ?? "System Administrator", LastUpdateUserId = UserId ?? "", LastUpdatedAt = DateTime.Now, }; await _context.DisciplineDisciplinary_DocResults.AddAsync(disciplineDisciplinary_DocResult); } } } await _context.SaveChangesAsync(); return Success(); } /// /// ลบไฟล์เอกสารสืบสวนวินัย /// /// /// /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง /// ไม่ได้ Login เข้าระบบ /// เมื่อเกิดข้อผิดพลาดในการทำงาน [HttpDelete("file/{id:guid}/{docId:guid}")] public async Task> DeleteFileDisciplineDisciplinaryInvestigate(Guid id, Guid docId) { var data = await _context.DisciplineDisciplinarys .Include(x => x.DisciplineDisciplinary_DocResults) .ThenInclude(x => x.Document) .Where(x => x.Id == id) .FirstOrDefaultAsync(); if (data == null) return Error(new Exception(GlobalMessages.DataNotFound), (int)StatusCodes.Status404NotFound); // if (data.Status.Trim().ToUpper() != "NEW") // return Error(new Exception("ไม่สามารถแก้ไขข้อมูลนี้ได้"), (int)StatusCodes.Status500InternalServerError); var dataDoc = data.DisciplineDisciplinary_DocResults.Where(x => x.Document.Id == docId).FirstOrDefault(); if (dataDoc != null) { _context.DisciplineDisciplinary_DocResults.Remove(dataDoc); await _context.SaveChangesAsync(); await _documentService.DeleteFileAsync(docId); await _context.SaveChangesAsync(); return Success(); } else { return Error(new Exception("ไม่พบไฟล์นี้ในระบบ"), (int)StatusCodes.Status404NotFound); } } /// /// รายชื่อออกคำสั่งลงโทษ /// /// /// /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง /// ไม่ได้ Login เข้าระบบ /// เมื่อเกิดข้อผิดพลาดในการทำงาน [HttpGet("report/up/{id:guid}")] public async Task> GetPersonReportUp(Guid id) { var data = await _context.DisciplineDisciplinary_ProfileComplaintInvestigates .Where(x => x.Status == "REPORT") .Where(x => x.DisciplineDisciplinary.DisciplineInvestigate.DisciplineComplaint.Id == id) .Select(x => new { PersonId = x.PersonId, Id = x.Id, CommandId = x.CommandTypeId, }) .ToListAsync(); return Success(data); } /// /// รายชื่อออกคำสั่งงด/ลดโทษ /// /// /// /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง /// ไม่ได้ Login เข้าระบบ /// เมื่อเกิดข้อผิดพลาดในการทำงาน [HttpGet("report/down/{id:guid}")] public async Task> GetPersonReportDown(Guid id) { var data = await _context.DisciplineDisciplinary_ProfileComplaintInvestigates .Where(x => x.StatusDiscard == "REPORT") .Where(x => x.DisciplineDisciplinary.DisciplineInvestigate.DisciplineComplaint.Id == id) .Select(x => new { PersonId = x.PersonId, Id = x.Id, CommandId = x.CommandTypeDiscardId, }) .ToListAsync(); return Success(data); } /// /// รายชื่อออกคำสั่งยุติ /// /// /// /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง /// ไม่ได้ Login เข้าระบบ /// เมื่อเกิดข้อผิดพลาดในการทำงาน [HttpGet("report/reject/{id:guid}")] public async Task> GetPersonReportReject(Guid id) { var data1 = await _context.DisciplineInvestigate_ProfileComplaints .Where(x => x.IsReport == "REPORT") .Where(x => x.DisciplineInvestigate.DisciplineComplaint.Id == id) .Select(x => new { PersonId = x.PersonId, Id = x.Id, }) .ToListAsync(); var data2 = await _context.DisciplineDisciplinary_ProfileComplaintInvestigates .Where(x => x.IsReport == "REPORT") .Where(x => x.DisciplineDisciplinary.DisciplineInvestigate.DisciplineComplaint.Id == id) .Select(x => new { PersonId = x.PersonId, Id = x.Id, }) .ToListAsync(); foreach (var data in data1) { data2.Add(data); }; return Success(data2); } /// /// รายชื่อออกคำสั่งพักราชการ /// /// /// /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง /// ไม่ได้ Login เข้าระบบ /// เมื่อเกิดข้อผิดพลาดในการทำงาน [HttpGet("report/stop/{id:guid}")] public async Task> GetPersonReportStop(Guid id) { var data = await _context.DisciplineReport_Profiles .Where(x => x.Status == "REPORT") .Where(x => x.DisciplineDisciplinary.DisciplineInvestigate.DisciplineComplaint.Id == id) .Select(x => new { PersonId = x.PersonId, Id = x.Id, CommandId = x.CommandTypeId, }) .ToListAsync(); return Success(data); } /// /// รายชื่อออกคำสั่งลงโทษ /// /// /// /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง /// ไม่ได้ Login เข้าระบบ /// เมื่อเกิดข้อผิดพลาดในการทำงาน [HttpPost("report/up/resume")] public async Task> GetPersonReportUpResume([FromBody] PassDisciplineResponse req) { foreach (var d in req.result) { var data = await _context.DisciplineDisciplinary_ProfileComplaintInvestigates .Include(x => x.DisciplineDisciplinary) //.Where(x => x.Status == "REPORT") .Where(x => x.Id == d.id) .FirstOrDefaultAsync(); if (data != null) { data.Status = "NEW"; data.CommandTypeId = null; var baseAPI = _configuration["API"]; var apiUrlDiscipline = $"{baseAPI}/org/profile/discipline"; using (var client = new HttpClient()) { client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", "")); var _req = new HttpRequestMessage(HttpMethod.Post, apiUrlDiscipline); var _res = await client.PostAsJsonAsync(apiUrlDiscipline, new { profileId = d.personId, date = d.commandAffectDate, detail = data.DisciplineDisciplinary.Title, level = data.DisciplineDisciplinary.DisciplinaryFaultLevel, refCommandDate = DateTime.Now, refCommandNo = $"{d.commandNo}/{d.commandYear}", unStigma = d.detail, }); var _result = await _res.Content.ReadAsStringAsync(); } } await _context.SaveChangesAsync(); } return Success(); } /// /// รายชื่อออกคำสั่งงด/ลดโทษ /// /// /// /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง /// ไม่ได้ Login เข้าระบบ /// เมื่อเกิดข้อผิดพลาดในการทำงาน [HttpPost("report/down/resume")] public async Task> GetPersonReportDownResume([FromBody] PassDisciplineResponse req) { foreach (var d in req.result) { var data = await _context.DisciplineDisciplinary_ProfileComplaintInvestigates .Include(x => x.DisciplineDisciplinary) .Where(x => x.StatusDiscard == "REPORT") .Where(x => x.Id == d.id) .FirstOrDefaultAsync(); if (data != null) { data.StatusDiscard = "NEW"; data.CommandTypeDiscardId = null; var baseAPI = _configuration["API"]; var apiUrlDiscipline = $"{baseAPI}/org/profile/discipline"; using (var client = new HttpClient()) { client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", "")); var _req = new HttpRequestMessage(HttpMethod.Post, apiUrlDiscipline); var _res = await client.PostAsJsonAsync(apiUrlDiscipline, new { profileId = d.personId, date = d.commandAffectDate, detail = data.DisciplineDisciplinary.Title, level = data.DisciplineDisciplinary.DisciplinaryFaultLevel, refCommandDate = DateTime.Now, refCommandNo = $"{d.commandNo}/{d.commandYear}", unStigma = d.detail, }); var _result = await _res.Content.ReadAsStringAsync(); } } await _context.SaveChangesAsync(); } return Success(); } /// /// รายชื่อออกคำสั่งยุติ /// /// /// /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง /// ไม่ได้ Login เข้าระบบ /// เมื่อเกิดข้อผิดพลาดในการทำงาน [HttpPost("report/reject/resume")] public async Task> GetPersonReportRejectResume([FromBody] PassDisciplineResponse req) { foreach (var d in req.result) { var data1 = await _context.DisciplineInvestigate_ProfileComplaints .Include(x => x.DisciplineInvestigate) .Where(x => x.IsReport == "REPORT") .Where(x => x.Id == d.id) .FirstOrDefaultAsync(); if (data1 != null) { data1.IsReport = "NEW"; var baseAPI = _configuration["API"]; var apiUrlDiscipline = $"{baseAPI}/org/profile/discipline"; using (var client = new HttpClient()) { client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", "")); var _req = new HttpRequestMessage(HttpMethod.Post, apiUrlDiscipline); var _res = await client.PostAsJsonAsync(apiUrlDiscipline, new { profileId = d.personId, date = d.commandAffectDate, detail = data1.DisciplineInvestigate.Title, level = "", refCommandDate = DateTime.Now, refCommandNo = $"{d.commandNo}/{d.commandYear}", unStigma = d.detail, }); var _result = await _res.Content.ReadAsStringAsync(); } } var data2 = await _context.DisciplineDisciplinary_ProfileComplaintInvestigates .Include(x => x.DisciplineDisciplinary) .Where(x => x.IsReport == "REPORT") .Where(x => x.Id == d.id) .FirstOrDefaultAsync(); if (data2 != null) { data2.IsReport = "NEW"; var baseAPI = _configuration["API"]; var apiUrlDiscipline = $"{baseAPI}/org/profile/discipline"; using (var client = new HttpClient()) { client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", "")); var _req = new HttpRequestMessage(HttpMethod.Post, apiUrlDiscipline); var _res = await client.PostAsJsonAsync(apiUrlDiscipline, new { profileId = d.personId, date = d.commandAffectDate, detail = data2.DisciplineDisciplinary.Title, level = data2.DisciplineDisciplinary.DisciplinaryFaultLevel, refCommandDate = DateTime.Now, refCommandNo = $"{d.commandNo}/{d.commandYear}", unStigma = d.detail, }); var _result = await _res.Content.ReadAsStringAsync(); } } await _context.SaveChangesAsync(); } return Success(); } /// /// รายชื่อออกคำสั่งพักราชการ /// /// /// /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง /// ไม่ได้ Login เข้าระบบ /// เมื่อเกิดข้อผิดพลาดในการทำงาน [HttpPost("report/stop/resume")] public async Task> GetPersonReportStopResume([FromBody] PassDisciplineResponse req) { foreach (var d in req.result) { var data = await _context.DisciplineReport_Profiles .Include(x => x.DisciplineDisciplinary) .Where(x => x.Status == "REPORT") .Where(x => x.Id == d.id) .FirstOrDefaultAsync(); if (data != null) { data.Status = "DONE"; var baseAPI = _configuration["API"]; var apiUrlDiscipline = $"{baseAPI}/org/profile/discipline"; using (var client = new HttpClient()) { client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", "")); var _req = new HttpRequestMessage(HttpMethod.Post, apiUrlDiscipline); var _res = await client.PostAsJsonAsync(apiUrlDiscipline, new { profileId = d.personId, date = d.commandAffectDate, detail = data.DisciplineDisciplinary.Title, level = data.DisciplineDisciplinary.DisciplinaryFaultLevel, refCommandDate = DateTime.Now, refCommandNo = $"{d.commandNo}/{d.commandYear}", unStigma = d.detail, }); var _result = await _res.Content.ReadAsStringAsync(); } } await _context.SaveChangesAsync(); } return Success(); } /// /// รายชื่อออกคำสั่ง /// /// /// /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง /// ไม่ได้ Login เข้าระบบ /// เมื่อเกิดข้อผิดพลาดในการทำงาน [HttpGet("report/find/{periodId:guid}/{personId:guid}")] public async Task> GetPersonReportFind(Guid periodId, Guid personId) { var data1 = await _context.DisciplineComplaint_Profiles .Where(x => x.Id == periodId) .Where(x => x.PersonId == personId.ToString()) .FirstOrDefaultAsync(); if (data1 == null) { var data2 = await _context.DisciplineInvestigate_ProfileComplaints .Where(x => x.Id == periodId) .Where(x => x.PersonId == personId.ToString()) .FirstOrDefaultAsync(); if (data2 == null) { var data3 = await _context.DisciplineDisciplinary_ProfileComplaintInvestigates .Where(x => x.Id == periodId) .Where(x => x.PersonId == personId.ToString()) .FirstOrDefaultAsync(); if (data3 == null) { var data4 = await _context.DisciplineReport_Profiles .Where(x => x.Id == periodId) .Where(x => x.PersonId == personId.ToString()) .FirstOrDefaultAsync(); return Success(data4); } return Success(data3); } return Success(data2); } return Success(data1); } } }