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"
|
Name = "Suspended"
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
modelBuilder.Entity<Module>().HasData(
|
modelBuilder.Entity<Module>().HasData(
|
||||||
new Module
|
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.AppMenu;
|
||||||
using Marco.Pms.Model.Dtos.AppMenu;
|
using Marco.Pms.Model.Dtos.AppMenu;
|
||||||
using Marco.Pms.Model.Utilities;
|
using Marco.Pms.Model.Utilities;
|
||||||
|
using Marco.Pms.Model.ViewModels.AppMenu;
|
||||||
|
using Marco.Pms.Services.Helpers;
|
||||||
using Marco.Pms.Services.Service;
|
using Marco.Pms.Services.Service;
|
||||||
using MarcoBMS.Services.Helpers;
|
using MarcoBMS.Services.Helpers;
|
||||||
using MarcoBMS.Services.Service;
|
using MarcoBMS.Services.Service;
|
||||||
@ -21,22 +23,31 @@ namespace Marco.Pms.Services.Controllers
|
|||||||
private readonly SidebarMenuHelper _sideBarMenuHelper;
|
private readonly SidebarMenuHelper _sideBarMenuHelper;
|
||||||
private readonly IMapper _mapper;
|
private readonly IMapper _mapper;
|
||||||
private readonly ILoggingService _logger;
|
private readonly ILoggingService _logger;
|
||||||
private readonly PermissionServices _permissions;
|
private readonly IServiceScopeFactory _serviceScopeFactory;
|
||||||
|
|
||||||
private readonly Guid tenantId;
|
private readonly Guid tenantId;
|
||||||
private static readonly Guid superTenantId = Guid.Parse("b3466e83-7e11-464c-b93a-daf047838b26");
|
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,
|
public AppMenuController(UserHelper userHelper,
|
||||||
SidebarMenuHelper sideBarMenuHelper,
|
SidebarMenuHelper sideBarMenuHelper,
|
||||||
IMapper mapper,
|
IMapper mapper,
|
||||||
ILoggingService logger,
|
ILoggingService logger,
|
||||||
PermissionServices permissions)
|
IServiceScopeFactory serviceScopeFactory)
|
||||||
{
|
{
|
||||||
|
|
||||||
_userHelper = userHelper;
|
_userHelper = userHelper;
|
||||||
_sideBarMenuHelper = sideBarMenuHelper;
|
_sideBarMenuHelper = sideBarMenuHelper;
|
||||||
_mapper = mapper;
|
_mapper = mapper;
|
||||||
_logger = logger;
|
_logger = logger;
|
||||||
_permissions = permissions;
|
_serviceScopeFactory = serviceScopeFactory;
|
||||||
tenantId = userHelper.GetTenantId();
|
tenantId = userHelper.GetTenantId();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -435,6 +446,9 @@ namespace Marco.Pms.Services.Controllers
|
|||||||
var loggedInEmployee = await _userHelper.GetCurrentEmployeeAsync();
|
var loggedInEmployee = await _userHelper.GetCurrentEmployeeAsync();
|
||||||
var employeeId = loggedInEmployee.Id;
|
var employeeId = loggedInEmployee.Id;
|
||||||
|
|
||||||
|
using var scope = _serviceScopeFactory.CreateScope();
|
||||||
|
var _permissions = scope.ServiceProvider.GetRequiredService<PermissionServices>();
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
// Step 2: Fetch all menu sections for the tenant
|
// 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