Organization_Management #142

Merged
ashutosh.nehete merged 92 commits from Organization_Management into main 2025-09-30 09:05:14 +00:00
3 changed files with 48 additions and 40 deletions
Showing only changes of commit 8d97b2a687 - Show all commits

View File

@ -234,6 +234,17 @@ namespace Marco.Pms.Services.MappingProfiles
CreateMap<FeaturePermission, FeaturePermissionVM>();
#region ======================================================= Global Service Master =======================================================
CreateMap<ServiceMasterDto, GlobalServiceMaster>()
.ForMember(
dest => dest.Id,
// Explicitly and safely convert nullable Guid to non-nullable Guid
opt => opt.MapFrom(src => src.Id ?? Guid.Empty)
);
#endregion
#region ======================================================= Service Master =======================================================
CreateMap<ServiceMasterDto, ServiceMaster>()

View File

@ -71,53 +71,50 @@ namespace Marco.Pms.Services.Service
return ApiResponse<object>.ErrorResponse("An error occurred while fetching services", ex.Message, 500);
}
}
public async Task<ApiResponse<object>> CreateGlobalServiceAsync(ServiceMasterDto serviceMasterDto, Employee loggedInEmployee, Guid tenantId)
{
_logger.LogInfo("CreateGlobalService called with Name: {ServiceName}", serviceMasterDto.Name);
//public async Task<ApiResponse<object>> CreateGlobalServiceAsync(ServiceMasterDto serviceMasterDto, Employee loggedInEmployee, Guid tenantId)
//{
// _logger.LogInfo("CreateService called with Name: {ServiceName}", serviceMasterDto.Name);
try
{
// Step 1: Permission check
var hasManagePermission = await _permission.HasPermission(PermissionsMaster.ManageMasters, loggedInEmployee.Id);
if (!hasManagePermission)
{
_logger.LogWarning("Access denied for employeeId: {EmployeeId}", loggedInEmployee.Id);
return ApiResponse<object>.ErrorResponse("You don't have access", "You don't have permission to take this action", 403);
}
// try
// {
// // Step 1: Permission check
// var hasManagePermission = await _permission.HasPermission(PermissionsMaster.ManageMasters, loggedInEmployee.Id);
// if (!hasManagePermission)
// {
// _logger.LogWarning("Access denied for employeeId: {EmployeeId}", loggedInEmployee.Id);
// return ApiResponse<object>.ErrorResponse("You don't have access", "You don't have permission to take this action", 403);
// }
// Step 2: Check for duplicate name
bool isExist = await _context.GlobalServiceMasters
.AnyAsync(s => s.Name == serviceMasterDto.Name);
// // Step 2: Check for duplicate name
// bool isExist = await _context.ServiceMasters
// .AnyAsync(s => s.TenantId == tenantId && s.Name == serviceMasterDto.Name);
if (isExist)
{
_logger.LogWarning("Duplicate service name '{ServiceName}' attempted by employeeId: {EmployeeId}", serviceMasterDto.Name, loggedInEmployee.Id);
return ApiResponse<object>.ErrorResponse(
$"Service with name '{serviceMasterDto.Name}' already exists",
$"Service with name '{serviceMasterDto.Name}' already exists", 400);
}
// if (isExist)
// {
// _logger.LogWarning("Duplicate service name '{ServiceName}' attempted by employeeId: {EmployeeId}", serviceMasterDto.Name, loggedInEmployee.Id);
// return ApiResponse<object>.ErrorResponse(
// $"Service with name '{serviceMasterDto.Name}' already exists",
// $"Service with name '{serviceMasterDto.Name}' already exists", 400);
// }
// Step 3: Save new service
GlobalServiceMaster service = _mapper.Map<GlobalServiceMaster>(serviceMasterDto);
// // Step 3: Save new service
// ServiceMaster service = _mapper.Map<ServiceMaster>(serviceMasterDto);
// service.TenantId = tenantId;
// service.IsActive = true;
// service.IsSystem = false;
// _context.ServiceMasters.Add(service);
// await _context.SaveChangesAsync();
_context.GlobalServiceMasters.Add(service);
await _context.SaveChangesAsync();
// var response = _mapper.Map<ServiceMasterVM>(service);
var response = _mapper.Map<ServiceMasterVM>(service);
// _logger.LogInfo("New service '{ServiceName}' created successfully by employeeId: {EmployeeId}", service.Name, loggedInEmployee.Id);
_logger.LogInfo("New global service '{ServiceName}' created successfully by employeeId: {EmployeeId}", service.Name, loggedInEmployee.Id);
// return ApiResponse<object>.SuccessResponse(response, "New service created successfully", 201);
// }
// catch (Exception ex)
// {
// _logger.LogError(ex, "Error creating service");
// return ApiResponse<object>.ErrorResponse("Failed to create service", ex.Message, 500);
// }
//}
return ApiResponse<object>.SuccessResponse(response, "New global service created successfully", 201);
}
catch (Exception ex)
{
_logger.LogError(ex, "Error creating service");
return ApiResponse<object>.ErrorResponse("Failed to create global service", ex.Message, 500);
}
}
//public async Task<ApiResponse<object>> UpdateGlobalServiceAsync(Guid id, ServiceMasterDto serviceMasterDto, Employee loggedInEmployee, Guid tenantId)
//{

View File

@ -9,7 +9,7 @@ namespace Marco.Pms.Services.Service.ServiceInterfaces
{
#region =================================================================== Service Master APIs ===================================================================
Task<ApiResponse<object>> GetGlobalServicesAsync(Employee loggedInEmployee, Guid tenantId);
//Task<ApiResponse<object>> CreateGlobalServiceAsync(ServiceMasterDto serviceMasterDto, Employee loggedInEmployee, Guid tenantId);
Task<ApiResponse<object>> CreateGlobalServiceAsync(ServiceMasterDto serviceMasterDto, Employee loggedInEmployee, Guid tenantId);
//Task<ApiResponse<object>> UpdateGlobalServiceAsync(Guid id, ServiceMasterDto serviceMasterDto, Employee loggedInEmployee, Guid tenantId);
//Task<ApiResponse<object>> DeleteGlobalServiceAsync(Guid id, bool active, Employee loggedInEmployee, Guid tenantId);