using BMA.EHR.Domain.Common; using BMA.EHR.Domain.Models.MetaData; using BMA.EHR.MetaData.Service.Request; using BMA.EHR.MetaData.Service.Services; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Swashbuckle.AspNetCore.Annotations; namespace BMA.EHR.MetaData.Service.Controllers { [Route("api/v{version:apiVersion}/metadata/main")] [ApiVersion("1.0")] [ApiController] [Produces("application/json")] [Authorize] [SwaggerTag("จัดการข้อมูลตำแหน่ง เพื่อนำไปใช้งานในระบบ")] public class MainController : BaseController { #region " Fields " private readonly BloodGroupService _bloodGroupService; private readonly EducationLevelService _educationLevelService; private readonly GenderService _genderService; private readonly ProvinceService _provinceService; private readonly PrefixService _prefixService; private readonly RelationshipService _relationshipService; private readonly ReligionService _religionService; #endregion #region " Constructor and Destructor " public MainController( BloodGroupService bloodGroupService, ProvinceService provinceService, EducationLevelService educationLevelService, GenderService genderService, PrefixService prefixService, RelationshipService relationshipService, ReligionService religionService) { _bloodGroupService = bloodGroupService; _provinceService = provinceService; _educationLevelService = educationLevelService; _genderService = genderService; _prefixService = prefixService; _relationshipService = relationshipService; _religionService = religionService; } #endregion #region " Methods " /// /// อ่านข้อมูล ข้อมูลเกี่ยวกับบุคคล /// /// /// อ่านข้อมูล ข้อมูลเกี่ยวกับบุคคล สำเร็จ /// ไม่ได้ Login เข้าระบบ /// เมื่อเกิดข้อผิดพลาดในการทำงาน [HttpGet("person")] [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status401Unauthorized)] [ProducesResponseType(StatusCodes.Status500InternalServerError)] public async Task> GetsMainPersonAsync() { try { var bloodGroups = await _bloodGroupService.GetsAsync(showAll: false); var provinces = await _provinceService.GetsAsync(showAll: false); var educationLevels = await _educationLevelService.GetsAsync(showAll: false); var genders = await _genderService.GetsAsync(showAll: false); var prefixs = await _prefixService.GetsAsync(showAll: false); var relationships = await _relationshipService.GetsAsync(showAll: false); var religions = await _religionService.GetsAsync(showAll: false); return Success(new { bloodGroups, provinces, educationLevels, genders, prefixs, relationships, religions, }); } catch (Exception ex) { return Error(ex); } } #endregion } }