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

@@ -1574,6 +1574,49 @@ namespace C4IT.DataHistoryProvider
return null;
}
public async Task<cTicketExternalLinkResult> GetTicketExternalLinkAsync(Guid ticketId, enumTicketExternalOpenMode mode, cF4sdWebRequestInfo requestInfo, int logDeep, CancellationToken token)
{
var result = new cTicketExternalLinkResult
{
Success = false,
Mode = enumTicketExternalOpenMode.None
};
if (ticketId == Guid.Empty || mode == enumTicketExternalOpenMode.None)
return result;
var ticketDetails = await GetTicketMainTableAsync(ticketId, requestInfo, logDeep + 1, token);
var ticketTable = ticketDetails?.FirstOrDefault();
if (ticketTable?.Columns == null)
return result;
string previewUrl = null;
if (ticketTable.Columns.TryGetValue("DirectLinkPreview", out var previewColumn))
previewUrl = previewColumn.Values?.FirstOrDefault()?.ToString();
var resolvedMode = mode;
var url = previewUrl;
if (mode == enumTicketExternalOpenMode.Edit)
{
string editUrl = null;
if (ticketTable.Columns.TryGetValue("DirectLinkEdit", out var editColumn))
editUrl = editColumn.Values?.FirstOrDefault()?.ToString();
if (!string.IsNullOrWhiteSpace(editUrl))
url = editUrl;
else
resolvedMode = enumTicketExternalOpenMode.Preview;
}
if (string.IsNullOrWhiteSpace(url))
return result;
result.Success = true;
result.Url = url;
result.Mode = resolvedMode;
return result;
}
private object ConvertToF4sdType(object objVal, enumFasdValueType ValueType)
{
try