98 lines
3.0 KiB
C#
98 lines
3.0 KiB
C#
using AutoMapper;
|
|
using Azure;
|
|
using Marco.Pms.CacheHelper;
|
|
using Marco.Pms.Model.AppMenu;
|
|
using Marco.Pms.Model.Dtos.AppMenu;
|
|
using Marco.Pms.Model.Employees;
|
|
using Marco.Pms.Model.Entitlements;
|
|
using Marco.Pms.Model.Utilities;
|
|
using Marco.Pms.Services.Service;
|
|
using Marco.Pms.Services.Service.ServiceInterfaces;
|
|
using MarcoBMS.Services.Helpers;
|
|
using MarcoBMS.Services.Service;
|
|
using Microsoft.AspNetCore.Authorization;
|
|
using Microsoft.AspNetCore.Http.HttpResults;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using Org.BouncyCastle.Asn1.Ocsp;
|
|
using System.Threading.Tasks;
|
|
using static System.Collections.Specialized.BitVector32;
|
|
|
|
namespace Marco.Pms.Services.Controllers
|
|
{
|
|
[Authorize]
|
|
[ApiController]
|
|
[Route("api/[controller]")]
|
|
public class AppMenuController : ControllerBase
|
|
{
|
|
|
|
private readonly UserHelper _userHelper;
|
|
private readonly EmployeeHelper _employeeHelper;
|
|
private readonly RolesHelper _rolesHelper;
|
|
private readonly SideBarMenu _sideBarMenuHelper;
|
|
private readonly IMapper _mapper;
|
|
private readonly ILoggingService _logger;
|
|
|
|
public AppMenuController(EmployeeHelper employeeHelper, IProjectServices projectServices, UserHelper userHelper, RolesHelper rolesHelper, SideBarMenu sideBarMenuHelper, IMapper mapper, ILoggingService logger) {
|
|
|
|
_userHelper = userHelper;
|
|
_employeeHelper = employeeHelper;
|
|
_rolesHelper = rolesHelper;
|
|
_sideBarMenuHelper = sideBarMenuHelper;
|
|
_mapper = mapper;
|
|
_logger = logger;
|
|
}
|
|
|
|
|
|
//[HttpGet("/appMenu")]
|
|
|
|
//public async Task<IActionResult> getAppSideBarMenu()
|
|
//{
|
|
// return Ok();
|
|
//}
|
|
|
|
|
|
[HttpPost("create/appsidebar")]
|
|
public async Task<IActionResult> PostAppSideBarMenu([FromBody] MenuSectionDto sidebarMenu)
|
|
{
|
|
|
|
|
|
var user = await _userHelper.GetCurrentEmployeeAsync();
|
|
|
|
if (!(user.ApplicationUser?.IsRootUser ?? false))
|
|
{
|
|
_logger.LogWarning("Access Denied while creating side menu");
|
|
return StatusCode(403, ApiResponse<object>.ErrorResponse("access denied", "User haven't permission", 403));
|
|
}
|
|
|
|
var sideMenu = _mapper.Map<MenuSection>(sidebarMenu);
|
|
try
|
|
{
|
|
sideMenu = await _sideBarMenuHelper.CreateMenuSectionAsync(sideMenu);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
_logger.LogError(ex, "Error Occurred while creating Menu");
|
|
return StatusCode(500, ApiResponse<object>.ErrorResponse("Server Error", ex, 500));
|
|
}
|
|
|
|
if (sideMenu == null) {
|
|
_logger.LogWarning("Error Occurred while creating Menu");
|
|
return BadRequest(ApiResponse<object>.ErrorResponse("Menu creation failed", 400));
|
|
}
|
|
|
|
_logger.LogInfo("Error Occurred while creating Menu");
|
|
return Ok(ApiResponse<object>.SuccessResponse(sideMenu, "Sidebar menu created successfully.", 201));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|