aktueller stand

This commit is contained in:
Meik
2026-02-13 11:32:06 +01:00
parent 86ce7e89e1
commit b132755215
4 changed files with 22 additions and 210 deletions

View File

@@ -807,6 +807,9 @@ namespace FasdDesktopUi.Pages.SearchPage
private bool CheckTicketOverviewAvailability()
{
if (cFasdCockpitCommunicationBase.Instance?.IsDemo() == true)
return true;
return cFasdCockpitConfig.Instance?.Global?.TicketConfiguration?.ShowOverview == true
&& IsTicketIntegrationActive();
}
@@ -1427,7 +1430,6 @@ namespace FasdDesktopUi.Pages.SearchPage
SetPendingInformationClasses(new HashSet<enumFasdInformationClass> { enumFasdInformationClass.Ticket });
var relations = await LoadRelationsForTileAsync(e.Key, e.UseRoleScope, Math.Max(0, e.Count));
await PopulateTicketOverviewRelationUsersAsync(relations);
var firstRelation = relations.FirstOrDefault();
string displayText = header;
if (firstRelation != null)
@@ -1587,106 +1589,6 @@ namespace FasdDesktopUi.Pages.SearchPage
}
}
private async Task PopulateTicketOverviewRelationUsersAsync(List<cF4sdApiSearchResultRelation> relations)
{
if (relations == null || relations.Count == 0)
return;
foreach (var relation in relations)
{
if (relation == null || relation.Type != enumF4sdSearchResultClass.Ticket)
continue;
if (relation.Identities == null)
relation.Identities = new cF4sdIdentityList();
var existingUsers = relation.Identities
.Where(identity => identity.Class == enumFasdInformationClass.User)
.ToList();
Guid userId = Guid.Empty;
if (relation.Infos != null)
{
if (relation.Infos.TryGetValue("Sids", out var sidsValue) ||
relation.Infos.TryGetValue("UserSid", out sidsValue))
{
var sids = sidsValue?.Split(',')
.Select(v => v.Trim())
.Where(v => !string.IsNullOrWhiteSpace(v))
.ToList();
if (sids != null && sids.Count > 0)
{
var communication = cFasdCockpitCommunicationBase.Instance;
if (communication != null)
{
relation.Infos.TryGetValue("UserDisplayName", out var userDisplayName);
var result = await communication.GetUserSearchResults(userDisplayName, sids);
var user = result?.Values?.FirstOrDefault()?.FirstOrDefault();
if (user != null)
userId = user.id;
}
}
}
if (userId == Guid.Empty && relation.Infos.TryGetValue("UserAccount", out var userAccount))
{
relation.Infos.TryGetValue("UserDomain", out var userDomain);
if (!string.IsNullOrWhiteSpace(userAccount))
{
var communication = cFasdCockpitCommunicationBase.Instance;
if (communication != null)
{
userId = await communication.GetUserIdByAccount(userAccount, userDomain ?? string.Empty);
}
}
}
if (userId == Guid.Empty)
{
if (relation.Infos.TryGetValue("UserId", out var userIdString) ||
relation.Infos.TryGetValue("UserGuid", out userIdString) ||
relation.Infos.TryGetValue("UserIdentityId", out userIdString))
{
Guid.TryParse(userIdString, out userId);
}
}
}
if (userId == Guid.Empty)
{
if (existingUsers.Count == 0)
continue;
if (relation.Infos != null)
{
if (!relation.Infos.ContainsKey("UserId"))
relation.Infos["UserId"] = existingUsers[0].Id.ToString();
if (!relation.Infos.ContainsKey("UserGuid"))
relation.Infos["UserGuid"] = existingUsers[0].Id.ToString();
}
continue;
}
if (existingUsers.Count == 0 || existingUsers.Any(identity => identity.Id != userId))
{
relation.Identities.RemoveAll(identity => identity.Class == enumFasdInformationClass.User);
relation.Identities.Add(new cF4sdIdentityEntry
{
Class = enumFasdInformationClass.User,
Id = userId
});
}
if (relation.Infos == null)
relation.Infos = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
relation.Infos["UserId"] = userId.ToString();
relation.Infos["UserGuid"] = userId.ToString();
}
}
#endregion
#region Click-Through fuer transparente SearchView-Bereiche