mirror of
https://github.com/Sea-Haven-Industries/shoc-backend.git
synced 2026-09-30 13:03:12 +00:00
Add ChangeAssignment endpoint with audit logging
- POST /api/WorkOrder/ChangeAssignment?id=&assignTo= - Logs old and new user names in audit trail - Returns updated assignment name
This commit is contained in:
parent
d07e24e419
commit
8959efc06b
1 changed files with 37 additions and 0 deletions
|
|
@ -785,6 +785,43 @@ namespace Api.SeaHavenIndustries.Controllers
|
|||
}
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[Route("ChangeAssignment")]
|
||||
public async Task<IActionResult> ChangeAssignment(int id, string? assignTo)
|
||||
{
|
||||
try
|
||||
{
|
||||
var data = await _db.workOrders.Where(w => w.Id == id).FirstOrDefaultAsync();
|
||||
if (data == null)
|
||||
return BadRequest(new Response { Status = "Error", Message = "Work order not found" });
|
||||
if (data.AssignTo != assignTo)
|
||||
{
|
||||
var oldUser = data.AssignTo != null ? await _db.Users.FindAsync(data.AssignTo) : null;
|
||||
var newUser = assignTo != null ? await _db.Users.FindAsync(assignTo) : null;
|
||||
_db.WorkOrderAuditLogs.Add(new WorkOrderAuditLog
|
||||
{
|
||||
WorkOrderId = id,
|
||||
UserId = User.FindFirstValue(ClaimTypes.NameIdentifier),
|
||||
FieldName = "AssignedTo",
|
||||
OldValue = oldUser != null ? (oldUser.FirstName + " " + oldUser.LastName).Trim() : "",
|
||||
NewValue = newUser != null ? (newUser.FirstName + " " + newUser.LastName).Trim() : "Unassigned",
|
||||
Action = "assignment_change",
|
||||
CreatedAt = DateTime.UtcNow
|
||||
});
|
||||
}
|
||||
data.AssignTo = assignTo;
|
||||
await _db.SaveChangesAsync();
|
||||
|
||||
var assignedUser = assignTo != null ? await _db.Users.FindAsync(assignTo) : null;
|
||||
var assignedName = assignedUser != null ? (assignedUser.FirstName + " " + assignedUser.LastName).Trim() : "";
|
||||
return Ok(new { message = "Updated Successfully", assignedTo = assignedName });
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
return BadRequest(new Response { Status = "Error", Message = ex.Message });
|
||||
}
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[Route("AddComment")]
|
||||
public async Task<IActionResult> AddComment([FromForm] Comments_DTO model)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue