Organization_Management #142
@ -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>()
|
||||
|
@ -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)
|
||||
//{
|
||||
|
@ -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);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user