Added the check for checking uniquness of document ID

This commit is contained in:
ashutosh.nehete 2025-09-10 11:52:13 +05:30
parent 01f214a60b
commit f75c31b3ce

View File

@ -703,6 +703,13 @@ namespace Marco.Pms.Services.Controllers
return NotFound(ApiResponse<object>.ErrorResponse($"{(entityType == EmployeeEntity ? "Employee" : "Project")} Not Found", "Entity not found in database", 404)); return NotFound(ApiResponse<object>.ErrorResponse($"{(entityType == EmployeeEntity ? "Employee" : "Project")} Not Found", "Entity not found in database", 404));
} }
var isDocumentExist = await _context.DocumentAttachments.AnyAsync(da => da.DocumentId == model.DocumentId && da.TenantId == tenantId);
if (isDocumentExist)
{
_logger.LogWarning("{DocumentId} is already existed in database", model.DocumentId ?? string.Empty);
return StatusCode(409, ApiResponse<object>.ErrorResponse("Document already existed", "Document already existed in database", 409));
}
// Map DTO to DB entity // Map DTO to DB entity
var attachment = _mapper.Map<DocumentAttachment>(model); var attachment = _mapper.Map<DocumentAttachment>(model);
attachment.UploadedAt = DateTime.UtcNow; attachment.UploadedAt = DateTime.UtcNow;
@ -1031,6 +1038,13 @@ namespace Marco.Pms.Services.Controllers
return NotFound(ApiResponse<object>.ErrorResponse($"{(entityType == EmployeeEntity ? "Employee" : "Project")} Not Found", "Entity not found in database", 404)); return NotFound(ApiResponse<object>.ErrorResponse($"{(entityType == EmployeeEntity ? "Employee" : "Project")} Not Found", "Entity not found in database", 404));
} }
var isDocumentExist = await _context.DocumentAttachments.AnyAsync(da => da.Id != model.Id && da.DocumentId == model.DocumentId && da.TenantId == tenantId);
if (isDocumentExist)
{
_logger.LogWarning("{DocumentId} is already existed in database", model.DocumentId ?? string.Empty);
return StatusCode(409, ApiResponse<object>.ErrorResponse("Document already existed", "Document already existed in database", 409));
}
// Prepare for versioning // Prepare for versioning
var oldVersionMapping = await _context.AttachmentVersionMappings var oldVersionMapping = await _context.AttachmentVersionMappings
.FirstOrDefaultAsync(av => av.ChildAttachmentId == oldAttachment.Id && av.TenantId == tenantId); .FirstOrDefaultAsync(av => av.ChildAttachmentId == oldAttachment.Id && av.TenantId == tenantId);