// using BMA.EHR.Core; using BMA.EHR.Recurit.Exam.Service.Response; using BMA.EHR.Recurit.Exam.Service.Services; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using System.Net; namespace BMA.EHR.Recurit.Exam.Service.Controllers { public class BaseController : ControllerBase { #region " Methods " #region " Protected " #region " IActionResult " protected virtual ActionResult Success(string message, object? result = null) { if (result != null) { return Ok(new ResponseObject { Status = StatusCodes.Status200OK, Message = message, Result = result }); } else { return Ok(new ResponseObject { Status = StatusCodes.Status200OK, Message = message }); } } protected virtual ActionResult Success(object? result = null) { return Success("สำเร็จ", result); } protected virtual ActionResult Error(string message, string result, int statusCode = StatusCodes.Status500InternalServerError) { return StatusCode((int)statusCode, new ResponseObject { Status = statusCode, Message = message, Result = result }); } protected virtual ActionResult Error(string message, int statusCode = StatusCodes.Status500InternalServerError) { return StatusCode((int)statusCode, new ResponseObject { Status = statusCode, Message = message }); } protected virtual ActionResult Error(Exception exception, string message, int statusCode = StatusCodes.Status500InternalServerError) { var msg = exception.Message; var inner = exception.InnerException; while (inner != null) { msg += $" {inner.Message}\r\n"; inner = inner.InnerException; } return Error(message, msg, statusCode); } protected virtual ActionResult Error(Exception exception, int statusCode = StatusCodes.Status500InternalServerError) { var msg = exception.Message; var inner = exception.InnerException; while (inner != null) { msg += $" {inner.Message}\r\n"; inner = inner.InnerException; } return Error(msg, statusCode); } #endregion #endregion #endregion } }