Added API to get Master Tables list dynamically
This commit is contained in:
parent
f85f1adb92
commit
e7705a5051
@ -737,6 +737,7 @@ namespace Marco.Pms.DataAccess.Data
|
||||
Name = "Suspended"
|
||||
}
|
||||
);
|
||||
|
||||
modelBuilder.Entity<Module>().HasData(
|
||||
new Module
|
||||
{
|
||||
|
8
Marco.Pms.Model/ViewModels/AppMenu/MasterMenuVM.cs
Normal file
8
Marco.Pms.Model/ViewModels/AppMenu/MasterMenuVM.cs
Normal file
@ -0,0 +1,8 @@
|
||||
namespace Marco.Pms.Model.ViewModels.AppMenu
|
||||
{
|
||||
public class MasterMenuVM
|
||||
{
|
||||
public int Id { get; set; }
|
||||
public string? Name { get; set; }
|
||||
}
|
||||
}
|
@ -3,6 +3,8 @@ using Marco.Pms.CacheHelper;
|
||||
using Marco.Pms.Model.AppMenu;
|
||||
using Marco.Pms.Model.Dtos.AppMenu;
|
||||
using Marco.Pms.Model.Utilities;
|
||||
using Marco.Pms.Model.ViewModels.AppMenu;
|
||||
using Marco.Pms.Services.Helpers;
|
||||
using Marco.Pms.Services.Service;
|
||||
using MarcoBMS.Services.Helpers;
|
||||
using MarcoBMS.Services.Service;
|
||||
@ -21,22 +23,31 @@ namespace Marco.Pms.Services.Controllers
|
||||
private readonly SidebarMenuHelper _sideBarMenuHelper;
|
||||
private readonly IMapper _mapper;
|
||||
private readonly ILoggingService _logger;
|
||||
private readonly PermissionServices _permissions;
|
||||
private readonly IServiceScopeFactory _serviceScopeFactory;
|
||||
|
||||
private readonly Guid tenantId;
|
||||
private static readonly Guid superTenantId = Guid.Parse("b3466e83-7e11-464c-b93a-daf047838b26");
|
||||
private static readonly Guid ProjectManagement = Guid.Parse("53176ebf-c75d-42e5-839f-4508ffac3def");
|
||||
private static readonly Guid ExpenseManagement = Guid.Parse("a4e25142-449b-4334-a6e5-22f70e4732d7");
|
||||
private static readonly Guid TaskManagement = Guid.Parse("9d4b5489-2079-40b9-bd77-6e1bf90bc19f");
|
||||
private static readonly Guid EmployeeManagement = Guid.Parse("81ab8a87-8ccd-4015-a917-0627cee6a100");
|
||||
private static readonly Guid AttendanceManagement = Guid.Parse("52c9cf54-1eb2-44d2-81bb-524cf29c0a94");
|
||||
private static readonly Guid MastersMangent = Guid.Parse("be3b3afc-6ccf-4566-b9b6-aafcb65546be");
|
||||
private static readonly Guid DirectoryManagement = Guid.Parse("39e66f81-efc6-446c-95bd-46bff6cfb606");
|
||||
private static readonly Guid TenantManagement = Guid.Parse("2f3509b7-160d-410a-b9b6-daadd96c986d");
|
||||
|
||||
public AppMenuController(UserHelper userHelper,
|
||||
SidebarMenuHelper sideBarMenuHelper,
|
||||
IMapper mapper,
|
||||
ILoggingService logger,
|
||||
PermissionServices permissions)
|
||||
IServiceScopeFactory serviceScopeFactory)
|
||||
{
|
||||
|
||||
_userHelper = userHelper;
|
||||
_sideBarMenuHelper = sideBarMenuHelper;
|
||||
_mapper = mapper;
|
||||
_logger = logger;
|
||||
_permissions = permissions;
|
||||
_serviceScopeFactory = serviceScopeFactory;
|
||||
tenantId = userHelper.GetTenantId();
|
||||
}
|
||||
|
||||
@ -435,6 +446,9 @@ namespace Marco.Pms.Services.Controllers
|
||||
var loggedInEmployee = await _userHelper.GetCurrentEmployeeAsync();
|
||||
var employeeId = loggedInEmployee.Id;
|
||||
|
||||
using var scope = _serviceScopeFactory.CreateScope();
|
||||
var _permissions = scope.ServiceProvider.GetRequiredService<PermissionServices>();
|
||||
|
||||
try
|
||||
{
|
||||
// Step 2: Fetch all menu sections for the tenant
|
||||
@ -517,16 +531,85 @@ namespace Marco.Pms.Services.Controllers
|
||||
}
|
||||
|
||||
|
||||
[HttpGet("get/master-list")]
|
||||
public async Task<IActionResult> GetMasterList()
|
||||
{
|
||||
var loggedInEmployee = await _userHelper.GetCurrentEmployeeAsync();
|
||||
using var scope = _serviceScopeFactory.CreateScope();
|
||||
var _generalHelper = scope.ServiceProvider.GetRequiredService<GeneralHelper>();
|
||||
|
||||
var featureIds = await _generalHelper.GetFeatureIdsByTenentIdAsync(tenantId);
|
||||
List<MasterMenuVM> response = new List<MasterMenuVM>();
|
||||
|
||||
if (featureIds.Contains(EmployeeManagement))
|
||||
{
|
||||
List<MasterMenuVM> masterMenuVM = [
|
||||
new MasterMenuVM
|
||||
{
|
||||
Id = 1,
|
||||
Name = "Application Role"
|
||||
},
|
||||
new MasterMenuVM
|
||||
{
|
||||
Id = 2,
|
||||
Name = "Job Role"
|
||||
}
|
||||
];
|
||||
response.AddRange(masterMenuVM);
|
||||
}
|
||||
if (featureIds.Contains(ProjectManagement))
|
||||
{
|
||||
List<MasterMenuVM> masterMenuVM = [
|
||||
new MasterMenuVM
|
||||
{
|
||||
Id = 3,
|
||||
Name = "Activity"
|
||||
},
|
||||
new MasterMenuVM
|
||||
{
|
||||
Id = 4,
|
||||
Name = "Work Category"
|
||||
}
|
||||
];
|
||||
response.AddRange(masterMenuVM);
|
||||
}
|
||||
if (featureIds.Contains(DirectoryManagement))
|
||||
{
|
||||
List<MasterMenuVM> masterMenuVM = [
|
||||
new MasterMenuVM
|
||||
{
|
||||
Id = 5,
|
||||
Name = "Contact Category"
|
||||
},
|
||||
new MasterMenuVM
|
||||
{
|
||||
Id = 6,
|
||||
Name = "Contact Tag"
|
||||
}
|
||||
];
|
||||
response.AddRange(masterMenuVM);
|
||||
}
|
||||
if (featureIds.Contains(ExpenseManagement))
|
||||
{
|
||||
List<MasterMenuVM> masterMenuVM = [
|
||||
new MasterMenuVM
|
||||
{
|
||||
Id = 7,
|
||||
Name = "Expense Type"
|
||||
},
|
||||
new MasterMenuVM
|
||||
{
|
||||
Id = 8,
|
||||
Name = "Payment Mode"
|
||||
}
|
||||
];
|
||||
response.AddRange(masterMenuVM);
|
||||
}
|
||||
|
||||
return Ok(response);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user