This commit is contained in:
Meik
2025-11-11 11:03:42 +01:00
commit dc3e8a2e4c
582 changed files with 191465 additions and 0 deletions

View File

@@ -0,0 +1,91 @@
using C4IT.FASD.Base;
using C4IT.MultiLanguage;
using F4SD_AdaptableIcon;
using F4SD_AdaptableIcon.Enums;
using FasdDesktopUi.Basics.CustomEvents;
using FasdDesktopUi.Basics.Helper;
using FasdDesktopUi.Basics.Models;
using FasdDesktopUi.Basics.UiActions;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows;
using System.Windows.Controls;
namespace FasdDesktopUi.Basics.UserControls.SearchResult
{
public partial class SearchResultCategory : UserControl
{
public string Title
{
get { return (string)GetValue(TitleProperty); }
set { SetValue(TitleProperty, value); }
}
public static readonly DependencyProperty TitleProperty =
DependencyProperty.Register("Title", typeof(string), typeof(SearchResultCategory), new PropertyMetadata(string.Empty));
public bool IsPending
{
get { return (bool)GetValue(IsPendingProperty); }
set { SetValue(IsPendingProperty, value); }
}
public static readonly DependencyProperty IsPendingProperty =
DependencyProperty.Register("IsPending", typeof(bool), typeof(SearchResultCategory), new PropertyMetadata(false));
public IconData TitleIcon
{
get { return (IconData)GetValue(TitleIconProperty); }
set { SetValue(TitleIconProperty, value); }
}
public static readonly DependencyProperty TitleIconProperty =
DependencyProperty.Register("TitleIcon", typeof(IconData), typeof(SearchResultCategory), new PropertyMetadata(new IconData(enumInternIcons.f4sd)));
public SearchResultCategory()
{
InitializeComponent();
}
protected override void OnInitialized(EventArgs e)
{
base.OnInitialized(e);
AddHandler(CustomEventManager.IndexChangedEvent, new CustomEventManager.IndexChangedHandlerDelegate(HandleSelectedIndexChanged));
}
private void HandleSelectedIndexChanged(object sender, IndexEventArgs args)
{
if (args.OriginalSource == this)
return;
CustomEventManager.RaiseIndexChangedEvent(this, args.OldValue, args.NewValue);
}
public void UpdateSearchResults(cFasdApiSearchResultCollection results, ISearchUiProvider uiSearchProvider)
{
ResultMenu.MenuDataList = results.Select(searchResult =>
{
var requiredInformationClasses = new List<enumFasdInformationClass>() { cF4sdIdentityEntry.GetFromSearchResult(searchResult.Value.First().Type) };
bool isEnabled = cHealthCardDataHelper.HasAvailableHealthCard(requiredInformationClasses);
var menuData = new cMenuDataSearchResult(searchResult.Key, uiSearchProvider, searchResult.Value) as cMenuDataBase;
menuData.UiAction.DisplayType = isEnabled ? Enums.enumActionDisplayType.enabled : Enums.enumActionDisplayType.disabled;
menuData.UiAction.Description = isEnabled ? string.Empty : cMultiLanguageSupport.GetItem("Searchbar.NoValidHealthcard");
menuData.UiAction.AlternativeDescription = isEnabled ? string.Empty : cMultiLanguageSupport.GetItem("Searchbar.NoValidHealthcard");
return menuData;
}).ToList();
}
public void UpdateSearchRelations(IEnumerable<cMenuDataBase> relations) => ResultMenu.MenuDataList = relations.ToList();
internal void ShowDetailHeadings(bool showDetailHeadings) => ResultMenu.ShowDetailHeading(showDetailHeadings);
internal int GetItemCount() => ResultMenu.MenuDataList.Count;
internal void HiglightItemAt(int index) => ResultMenu.HightlightItemAt(index);
internal void SelectItemAt(int index) => ResultMenu.SelectItemAt(index);
}
}