From b6295ebef49f51a5408e3a981bd70943e6c0ac53 Mon Sep 17 00:00:00 2001 From: "ashutosh.nehete" Date: Sat, 1 Nov 2025 16:57:50 +0530 Subject: [PATCH] Added the get currencies API --- .../Controllers/MasterController.cs | 12 ++++++++++ Marco.Pms.Services/Service/MasterService.cs | 24 +++++++++++++++++++ .../ServiceInterfaces/IMasterService.cs | 5 ++++ 3 files changed, 41 insertions(+) diff --git a/Marco.Pms.Services/Controllers/MasterController.cs b/Marco.Pms.Services/Controllers/MasterController.cs index e0b969d..bf4d98e 100644 --- a/Marco.Pms.Services/Controllers/MasterController.cs +++ b/Marco.Pms.Services/Controllers/MasterController.cs @@ -37,6 +37,18 @@ namespace Marco.Pms.Services.Controllers tenantId = userHelper.GetTenantId(); } + #region =================================================================== Currency APIs =================================================================== + + [HttpGet("currencies/list")] + public async Task GetCurrency() + { + var loggedInEmployee = await _userHelper.GetCurrentEmployeeAsync(); + var response = await _masterService.GetCurrencyAsync(loggedInEmployee, tenantId); + return StatusCode(response.StatusCode, response); + } + + #endregion + #region =================================================================== Organization Type APIs =================================================================== [HttpGet("organization-type/list")] diff --git a/Marco.Pms.Services/Service/MasterService.cs b/Marco.Pms.Services/Service/MasterService.cs index 9eb19b6..06624f5 100644 --- a/Marco.Pms.Services/Service/MasterService.cs +++ b/Marco.Pms.Services/Service/MasterService.cs @@ -53,6 +53,30 @@ namespace Marco.Pms.Services.Service _updateLogHelper = updateLogHelper ?? throw new ArgumentNullException(nameof(updateLogHelper)); } + #region =================================================================== Currency APIs =================================================================== + + public async Task> GetCurrencyAsync(Employee loggedInEmployee, Guid tenantId) + { + _logger.LogDebug("GetCurrencyAsync called"); + + try + { + // Step 1: Fetch global currencies + var currencies = await _context.CurrencyMaster.OrderBy(ot => ot.CurrencyName).ToListAsync(); + + _logger.LogInfo("Fetched {Count} currency records for tenantId: {TenantId}", currencies.Count, tenantId); + + return ApiResponse.SuccessResponse(currencies, $"{currencies.Count} record(s) of currency fetched successfully", 200); + } + catch (Exception ex) + { + _logger.LogError(ex, "Error fetching currency"); + return ApiResponse.ErrorResponse("An error occurred while fetching currency", ex.Message, 500); + } + } + + #endregion + #region =================================================================== Organization Type APIs =================================================================== public async Task> GetOrganizationTypesAsync(Employee loggedInEmployee, Guid tenantId) diff --git a/Marco.Pms.Services/Service/ServiceInterfaces/IMasterService.cs b/Marco.Pms.Services/Service/ServiceInterfaces/IMasterService.cs index 4515b99..4f64f8a 100644 --- a/Marco.Pms.Services/Service/ServiceInterfaces/IMasterService.cs +++ b/Marco.Pms.Services/Service/ServiceInterfaces/IMasterService.cs @@ -9,6 +9,11 @@ namespace Marco.Pms.Services.Service.ServiceInterfaces { public interface IMasterService { + #region =================================================================== Currency APIs =================================================================== + + Task> GetCurrencyAsync(Employee loggedInEmployee, Guid tenantId); + + #endregion #region =================================================================== Organization Type APIs =================================================================== Task> GetOrganizationTypesAsync(Employee loggedInEmployee, Guid tenantId);