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