aktueller stand
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user