Added the create global service API

This commit is contained in:
ashutosh.nehete 2025-09-17 11:15:06 +05:30
parent 061f287e8c
commit 8d97b2a687
3 changed files with 48 additions and 40 deletions

View File

@ -234,6 +234,17 @@ namespace Marco.Pms.Services.MappingProfiles
CreateMap<FeaturePermission, FeaturePermissionVM>(); 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 ======================================================= #region ======================================================= Service Master =======================================================
CreateMap<ServiceMasterDto, ServiceMaster>() 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); 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) try
//{ {
// _logger.LogInfo("CreateService called with Name: {ServiceName}", serviceMasterDto.Name); // 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 2: Check for duplicate name
// { bool isExist = await _context.GlobalServiceMasters
// // Step 1: Permission check .AnyAsync(s => s.Name == serviceMasterDto.Name);
// 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 if (isExist)
// bool isExist = await _context.ServiceMasters {
// .AnyAsync(s => s.TenantId == tenantId && s.Name == serviceMasterDto.Name); _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) // Step 3: Save new service
// { GlobalServiceMaster service = _mapper.Map<GlobalServiceMaster>(serviceMasterDto);
// _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 _context.GlobalServiceMasters.Add(service);
// ServiceMaster service = _mapper.Map<ServiceMaster>(serviceMasterDto); await _context.SaveChangesAsync();
// service.TenantId = tenantId;
// service.IsActive = true;
// service.IsSystem = false;
// _context.ServiceMasters.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); return ApiResponse<object>.SuccessResponse(response, "New global service created successfully", 201);
// } }
// catch (Exception ex) catch (Exception ex)
// { {
// _logger.LogError(ex, "Error creating service"); _logger.LogError(ex, "Error creating service");
// return ApiResponse<object>.ErrorResponse("Failed to create service", ex.Message, 500); 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) //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 =================================================================== #region =================================================================== Service Master APIs ===================================================================
Task<ApiResponse<object>> GetGlobalServicesAsync(Employee loggedInEmployee, Guid tenantId); 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>> UpdateGlobalServiceAsync(Guid id, ServiceMasterDto serviceMasterDto, Employee loggedInEmployee, Guid tenantId);
//Task<ApiResponse<object>> DeleteGlobalServiceAsync(Guid id, bool active, Employee loggedInEmployee, Guid tenantId); //Task<ApiResponse<object>> DeleteGlobalServiceAsync(Guid id, bool active, Employee loggedInEmployee, Guid tenantId);