Added an API endpoint to update an existing Work Category, with update allowed only if IsSystem = false.

This commit is contained in:
ashutosh.nehete 2025-05-10 15:22:10 +05:30
parent 6f378fe0bd
commit 5953f37e57

View File

@ -610,6 +610,34 @@ namespace Marco.Pms.Services.Controllers
return BadRequest(ApiResponse<object>.ErrorResponse("User sent Empty payload", "User sent Empty payload", 400)); return BadRequest(ApiResponse<object>.ErrorResponse("User sent Empty payload", "User sent Empty payload", 400));
} }
[HttpPost("work-category/edit")]
public async Task<IActionResult> UpdateWorkCategoryMaster(WorkCategoryMasterDto workCategoryMasterDto)
{
var tenantId = _userHelper.GetTenantId();
if (workCategoryMasterDto != null)
{
WorkCategoryMaster? workCategory = await _context.WorkCategoryMasters.AsNoTracking().FirstOrDefaultAsync(s => s.TenantId == tenantId && s.Id == workCategoryMasterDto.Id);
if (workCategory != null)
{
if (workCategory.IsSystem)
{
_logger.LogError("User tries to update system-defined work category");
return BadRequest(ApiResponse<object>.ErrorResponse("Cannot update system-defined work", "Cannot update system-defined work", 400));
}
workCategory = workCategoryMasterDto.ToWorkCategoryMasterFromWorkCategoryMasterDto(tenantId);
_context.WorkCategoryMasters.Update(workCategory);
await _context.SaveChangesAsync();
WorkCategoryMasterVM workCategoryMasterVM = workCategory.ToWorkCategoryMasterVMFromWorkCategoryMaster();
_logger.LogInfo("Work category master {WorkCategoryId} updated successfully from tenant {tenantId}", workCategory.Id, tenantId);
return Ok(ApiResponse<object>.SuccessResponse(workCategoryMasterVM, "Work category master updated successfully", 200));
}
_logger.LogError("Work category master {WorkCategoryId} not found in database", workCategoryMasterDto.Id ?? Guid.Empty);
return NotFound(ApiResponse<object>.ErrorResponse("Work category master not found", "Work category master not found", 404));
}
_logger.LogError("User sent empyt payload");
return BadRequest(ApiResponse<object>.ErrorResponse("User sent Empty payload", "User sent Empty payload", 400));
}
} }
} }