Return ticket IDs and resolve external links

This commit is contained in:
Drechsler, Meik
2026-07-20 10:38:34 +02:00
parent a3fa0e0c54
commit 02fabc91cf
11 changed files with 215 additions and 12 deletions

View File

@@ -18,32 +18,55 @@ namespace F4SDwebService.Controllers.Matrix42
public async Task<IHttpActionResult> Matrix42TicketFinalization([FromBody] cApiM42Ticket jsonRequest)
{
MethodBase CM = null; if (cLogManager.DefaultLogger.IsDebug) { CM = MethodBase.GetCurrentMethod(); LogMethodBegin(CM); }
var requestInfo = new cF4sdWebRequestInfo("Matrix42TicketFinalization", jsonRequest.Action?.ToString() + " + " + jsonRequest.Ticket?.ToString() ?? "", cAuthentication.GetUserInfo(ActionContext));
var requestInfo = new cF4sdWebRequestInfo("Matrix42TicketFinalization", jsonRequest?.Action?.ToString() + " + " + jsonRequest?.Ticket?.ToString() ?? "", cAuthentication.GetUserInfo(ActionContext));
if (cPerformanceLogger.IsActive && requestInfo != null) { cPerformanceLogger.LogPerformanceStart(0, requestInfo.requestName, requestInfo.id, requestInfo.created); }
var apiError = 0;
try
{
if (jsonRequest == null)
return BadRequest();
if (string.Equals(jsonRequest.StatusIdValue, "Closed", StringComparison.InvariantCultureIgnoreCase))
await WebApiApplication.Collector.M42WpmCollector.ReopenM42TicketAsync(jsonRequest, requestInfo, 1, CancellationToken.None);
string operationResult = null;
switch (jsonRequest.Action)
{
case enumCloseCaseTicketStatus.Save:
if (jsonRequest.Ticket == null || jsonRequest.Ticket.HasValue && jsonRequest.Ticket.Equals(Guid.Empty))
return Ok(await WebApiApplication.Collector.M42WpmCollector.CreateM42TicketAsync(jsonRequest, requestInfo, 1, CancellationToken.None));
operationResult = await WebApiApplication.Collector.M42WpmCollector.CreateM42TicketAsync(jsonRequest, requestInfo, 1, CancellationToken.None);
else
return Ok(await WebApiApplication.Collector.M42WpmCollector.UpdateM42TicketAsync(jsonRequest, requestInfo, 1, CancellationToken.None));
operationResult = await WebApiApplication.Collector.M42WpmCollector.UpdateM42TicketAsync(jsonRequest, requestInfo, 1, CancellationToken.None);
break;
case enumCloseCaseTicketStatus.Close:
return Ok(await WebApiApplication.Collector.M42WpmCollector.CloseM42TicketAsync(jsonRequest, requestInfo, 1, CancellationToken.None));
operationResult = await WebApiApplication.Collector.M42WpmCollector.CloseM42TicketAsync(jsonRequest, requestInfo, 1, CancellationToken.None);
break;
case enumCloseCaseTicketStatus.OnHold:
return Ok(await WebApiApplication.Collector.M42WpmCollector.PauseM42TicketAsync(jsonRequest, requestInfo, 1, CancellationToken.None));
operationResult = await WebApiApplication.Collector.M42WpmCollector.PauseM42TicketAsync(jsonRequest, requestInfo, 1, CancellationToken.None);
break;
case enumCloseCaseTicketStatus.Forward:
return Ok(await WebApiApplication.Collector.M42WpmCollector.ForwardM42TicketAsync(jsonRequest, requestInfo, 1, CancellationToken.None));
default: break;
operationResult = await WebApiApplication.Collector.M42WpmCollector.ForwardM42TicketAsync(jsonRequest, requestInfo, 1, CancellationToken.None);
break;
default:
return BadRequest();
}
return Ok(jsonRequest);
if (operationResult == null)
return InternalServerError();
var ticketId = jsonRequest.Ticket;
if ((!ticketId.HasValue || ticketId.Value == Guid.Empty) && Guid.TryParse(operationResult, out var createdTicketId))
ticketId = createdTicketId;
if (!ticketId.HasValue || ticketId.Value == Guid.Empty)
return InternalServerError();
return Ok(new cTicketFinalizationResult
{
Success = true,
TicketId = ticketId
});
}
catch (Exception E)
{
@@ -60,4 +83,4 @@ namespace F4SDwebService.Controllers.Matrix42
return BadRequest();
}
}
}
}