From 93c4803634241db441f606167422a5036eec599b Mon Sep 17 00:00:00 2001 From: "ashutosh.nehete" Date: Mon, 8 Dec 2025 12:24:14 +0530 Subject: [PATCH] Valided the organization by it name --- .../Service/OrganizationService.cs | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/Marco.Pms.Services/Service/OrganizationService.cs b/Marco.Pms.Services/Service/OrganizationService.cs index e116a4a..8c49917 100644 --- a/Marco.Pms.Services/Service/OrganizationService.cs +++ b/Marco.Pms.Services/Service/OrganizationService.cs @@ -425,24 +425,31 @@ namespace Marco.Pms.Services.Service return await permissionService.HasPermission(PermissionsMaster.AddOrganization, loggedInEmployee.Id); }); - var isPrimaryOrganizationTask = Task.Run(async () => + var isOrganizationExistTask = Task.Run(async () => { await using var context = await _dbContextFactory.CreateDbContextAsync(); - return await context.Tenants.AnyAsync(t => t.OrganizationId == loggedInEmployee.OrganizationId); + return await context.Organizations.AnyAsync(t => t.Name == model.Name); }); - await Task.WhenAll(hasPermissionTask, isPrimaryOrganizationTask); + await Task.WhenAll(hasPermissionTask, isOrganizationExistTask); bool hasPermission = hasPermissionTask.Result; - bool isPrimaryOrganization = isPrimaryOrganizationTask.Result; + bool isOrganizationExist = isOrganizationExistTask.Result; // Check user access permission - if (!hasPermission && !isPrimaryOrganization) + if (!hasPermission) { _logger.LogWarning("User {EmployeeId} attempted to create a new organization without permission", loggedInEmployee.Id); return ApiResponse.ErrorResponse("Access Denied", "You do not have permission to create new organization.", 403); } + // check if organization name already exists + if (isOrganizationExist) + { + _logger.LogWarning("Organization with name {OrganizationName} already exists", model.Name); + return ApiResponse.ErrorResponse("Organization already exists", "Organization with name already exists", 409); + } + // Get last SPRID and increment for new organization var lastOrganization = await _context.Organizations.OrderByDescending(sp => sp.SPRID).FirstOrDefaultAsync(); long lastSPRID = lastOrganization?.SPRID ?? 5400;