123 lines
4.2 KiB
C#
123 lines
4.2 KiB
C#
using Microsoft.AspNetCore.Mvc;
|
|
using Microsoft.EntityFrameworkCore;
|
|
using PSTW_CentralSystem.DBContext;
|
|
using PSTW_CentralSystem.Models;
|
|
|
|
namespace PSTW_CentralSystem.Controllers.API
|
|
{
|
|
[ApiController]
|
|
[Route("[controller]")]
|
|
public class ModuleAPI : Controller
|
|
{
|
|
private readonly ILogger<HomeController> _logger;
|
|
private readonly AuthDBContext _authDbContext;
|
|
public ModuleAPI(ILogger<HomeController> logger, AuthDBContext authDbContext)
|
|
{
|
|
_logger = logger;
|
|
_authDbContext = authDbContext;
|
|
}
|
|
|
|
[HttpPost("GetModuleInformation")]
|
|
public async Task<IActionResult> GetModuleInformation()
|
|
{
|
|
var qcList = await _authDbContext.ModuleSettings.ToListAsync();
|
|
return Json(qcList);
|
|
}
|
|
|
|
[HttpPost("GetXModuleInformation")]
|
|
public async Task<IActionResult> GetXModuleInformation(int? id)
|
|
{
|
|
var qcList = await _authDbContext.ModuleSettings.Where(x => x.SettingId == id).FirstOrDefaultAsync();
|
|
return Json(qcList);
|
|
}
|
|
|
|
[HttpPost("addMethod")]
|
|
public async Task<IActionResult> AddMethod(int? id, string? module)
|
|
{
|
|
|
|
// Retrieve the module setting from the database
|
|
var moduleSetting = await _authDbContext.ModuleSettings
|
|
.Where(x => x.SettingId == id)
|
|
.FirstOrDefaultAsync();
|
|
|
|
if (moduleSetting == null)
|
|
{
|
|
return NotFound("Module setting not found");
|
|
}
|
|
|
|
// Initialize the list if null
|
|
if (moduleSetting.MethodAllowedUserType == null)
|
|
{
|
|
moduleSetting.MethodAllowedUserType = new List<MethodAllowedUserType>();
|
|
}
|
|
|
|
// Add the new module
|
|
moduleSetting.MethodAllowedUserType.Add(new MethodAllowedUserType
|
|
{
|
|
MethodName = module,
|
|
AllowedUserTypesArray = Array.Empty<string>()
|
|
});
|
|
|
|
// Save the changes to the database
|
|
_authDbContext.ModuleSettings.Update(moduleSetting);
|
|
await _authDbContext.SaveChangesAsync();
|
|
|
|
return Json(moduleSetting);
|
|
}
|
|
|
|
|
|
[HttpPost("saveData")]
|
|
public async Task<IActionResult> saveData([FromBody] ModuleSettingModel modelSettingList)
|
|
{
|
|
var qcList = await _authDbContext.ModuleSettings
|
|
.Where(x => x.SettingId == modelSettingList.SettingId)
|
|
.FirstOrDefaultAsync();
|
|
|
|
if (qcList != null)
|
|
{
|
|
|
|
qcList.ModuleName = modelSettingList.ModuleName;
|
|
qcList.AllowedUserType = modelSettingList.AllowedUserType;
|
|
|
|
if (modelSettingList.MethodAllowedUserType != null)
|
|
{
|
|
qcList.MethodAllowedUserType = modelSettingList.MethodAllowedUserType
|
|
.Select(m => new MethodAllowedUserType
|
|
{
|
|
MethodName = m.MethodName,
|
|
AllowedUserTypesArray = m.AllowedUserTypesArray
|
|
}).ToList();
|
|
}
|
|
|
|
qcList.ModuleStatus = modelSettingList.ModuleStatus;
|
|
qcList.Description = modelSettingList.Description;
|
|
|
|
_authDbContext.ModuleSettings.Update(qcList);
|
|
await _authDbContext.SaveChangesAsync();
|
|
}
|
|
|
|
return Json(qcList);
|
|
}
|
|
|
|
[HttpPost("addData")]
|
|
public async Task<IActionResult> addData([FromBody] ModuleSettingModel modelSettingList)
|
|
{
|
|
var existingModule = await _authDbContext.ModuleSettings.Where(x => x.ModuleName.ToLower() == modelSettingList.ModuleName.ToLower()).FirstOrDefaultAsync();
|
|
|
|
if (existingModule != null)
|
|
{
|
|
return BadRequest("Module name already exists."); // Return a 400 Bad Request
|
|
}
|
|
|
|
// Add new module
|
|
modelSettingList.ModuleStatus = 1; // Default status
|
|
|
|
_authDbContext.ModuleSettings.Add(modelSettingList);
|
|
await _authDbContext.SaveChangesAsync();
|
|
|
|
|
|
return Json(modelSettingList);
|
|
}
|
|
}
|
|
}
|