diff --git a/Marco.Pms.Services/Controllers/MasterController.cs b/Marco.Pms.Services/Controllers/MasterController.cs index 71e3eb1..17d0620 100644 --- a/Marco.Pms.Services/Controllers/MasterController.cs +++ b/Marco.Pms.Services/Controllers/MasterController.cs @@ -38,6 +38,18 @@ namespace Marco.Pms.Services.Controllers tenantId = userHelper.GetTenantId(); } + #region =================================================================== Organization Type APIs =================================================================== + + [HttpGet("organization-type/list")] + public async Task GetOrganizationTypes() + { + var loggedInEmployee = await _userHelper.GetCurrentEmployeeAsync(); + var response = await _masterService.GetOrganizationTypesAsync(loggedInEmployee, tenantId); + return StatusCode(response.StatusCode, response); + } + + #endregion + #region =================================================================== Global Services APIs =================================================================== [HttpGet("global-service/list")] diff --git a/Marco.Pms.Services/Service/MasterService.cs b/Marco.Pms.Services/Service/MasterService.cs index 7351d3c..f8a9a73 100644 --- a/Marco.Pms.Services/Service/MasterService.cs +++ b/Marco.Pms.Services/Service/MasterService.cs @@ -51,10 +51,34 @@ namespace Marco.Pms.Services.Service _cache = cache; } + #region =================================================================== Organization Type APIs =================================================================== + + public async Task> GetOrganizationTypesAsync(Employee loggedInEmployee, Guid tenantId) + { + _logger.LogDebug("GetOrganizationTypes called"); + + try + { + // Step 1: Fetch global services + var services = await _context.OrgTypeMasters.OrderBy(ot => ot.Name).ToListAsync(); + + _logger.LogInfo("Fetched {Count} organization type records for tenantId: {TenantId}", services.Count, tenantId); + + return ApiResponse.SuccessResponse(services, $"{services.Count} record(s) of organization type fetched successfully", 200); + } + catch (Exception ex) + { + _logger.LogError(ex, "Error fetching organization type"); + return ApiResponse.ErrorResponse("An error occurred while fetching organization type", ex.Message, 500); + } + } + + #endregion + #region =================================================================== Global Services APIs =================================================================== public async Task> GetGlobalServicesAsync(Employee loggedInEmployee, Guid tenantId) { - _logger.LogInfo("GetServices called"); + _logger.LogInfo("GetGlobalServices called"); try { @@ -63,12 +87,12 @@ namespace Marco.Pms.Services.Service _logger.LogInfo("Fetched {Count} global service records for tenantId: {TenantId}", services.Count, tenantId); - return ApiResponse.SuccessResponse(services, $"{services.Count} record(s) of services fetched successfully", 200); + return ApiResponse.SuccessResponse(services, $"{services.Count} record(s) of global services fetched successfully", 200); } catch (Exception ex) { - _logger.LogError(ex, "Error fetching services"); - return ApiResponse.ErrorResponse("An error occurred while fetching services", ex.Message, 500); + _logger.LogError(ex, "Error fetching global services"); + return ApiResponse.ErrorResponse("An error occurred while fetching global services", ex.Message, 500); } } public async Task> CreateGlobalServiceAsync(ServiceMasterDto serviceMasterDto, Employee loggedInEmployee, Guid tenantId) diff --git a/Marco.Pms.Services/Service/ServiceInterfaces/IMasterService.cs b/Marco.Pms.Services/Service/ServiceInterfaces/IMasterService.cs index 5ed0687..f79d62f 100644 --- a/Marco.Pms.Services/Service/ServiceInterfaces/IMasterService.cs +++ b/Marco.Pms.Services/Service/ServiceInterfaces/IMasterService.cs @@ -7,7 +7,13 @@ namespace Marco.Pms.Services.Service.ServiceInterfaces { public interface IMasterService { - #region =================================================================== Service Master APIs =================================================================== + #region =================================================================== Organization Type APIs =================================================================== + + Task> GetOrganizationTypesAsync(Employee loggedInEmployee, Guid tenantId); + + #endregion + + #region =================================================================== Golbal Service Master APIs =================================================================== Task> GetGlobalServicesAsync(Employee loggedInEmployee, Guid tenantId); Task> CreateGlobalServiceAsync(ServiceMasterDto serviceMasterDto, Employee loggedInEmployee, Guid tenantId); //Task> UpdateGlobalServiceAsync(Guid id, ServiceMasterDto serviceMasterDto, Employee loggedInEmployee, Guid tenantId);