Valided the organization by it name
This commit is contained in:
parent
cce84d901a
commit
93c4803634
@ -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<object>.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<object>.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;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user