Return ticket IDs and resolve external links
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user