using C4IT.FASD.Base; using F4SD_AdaptableIcon; using F4SD_AdaptableIcon.Enums; using FasdDesktopUi.Basics.Converter; using FasdDesktopUi.Basics.UiActions; using System; using System.Collections.Generic; namespace FasdDesktopUi.Basics.Models.DTOs { // __ __ ____ ____ // | |__| || || \ // | | | | | | | o ) // | | | | | | | _/ // | ` ' | | | | | // \ / | | | | // \_/\_/ |____||__| // the following classes are work in Progress and shouldn't been used [Obsolete] internal readonly struct IconInfo { public IconData? Overlay { get; } public double IconScale { get; } public bool IsInactive { get; } public string Description { get; } public IconInfo(bool isInactive = default, string description = null, IconData? overlay = null, double iconScale = 1.0) { Overlay = overlay; IsInactive = isInactive; Description = description; IconScale = iconScale; } } [Obsolete] internal abstract class MenuDataBaseDto { private readonly IconData _icon; public string Title { get; set; } public string SubTitle { get; set; } public cUiActionBase Action { get; set; } public IconInfo IconInformation { get; set; } public int PositoinIndex { get; set; } protected MenuDataBaseDto() { } protected MenuDataBaseDto(cFasdBaseConfigMenuItem menuItemDefinition) { _icon = IconDataConverter.Convert(menuItemDefinition.Icon); Title = menuItemDefinition.Names.GetValue(); } internal virtual IconData GetIcon() => _icon; } [Obsolete] internal sealed class ContainerMenuDataDto : MenuDataBaseDto { public IList SubMenuData { get; set; } = new List(); public ContainerMenuDataDto(cFasdMenuSection sectionDefintion) : base(sectionDefintion) { Action = new cSubMenuAction(true); // todo rework subMenuAction } } [Obsolete] internal sealed class LoadingMenuDataDto : MenuDataBaseDto { private readonly IconData _icon = new IconData(enumInternGif.loadingSpinner); public LoadingMenuDataDto(string loadingText) { Title = loadingText; } internal override IconData GetIcon() => _icon; } [Obsolete] internal sealed class SearchResultMenuDataDto : MenuDataBaseDto { private readonly cFasdApiSearchResultEntry _searchResultEntry; public enumF4sdSearchResultClass Type { get => _searchResultEntry.Type; } public SearchResultMenuDataDto(cFasdApiSearchResultEntry searchResultEntry) { _searchResultEntry = searchResultEntry; //Action = new cUiProcessSearchRelationAction() } internal override IconData GetIcon() { switch (Type) { case enumF4sdSearchResultClass.Computer: return new IconData(enumInternIcons.misc_computer); case enumF4sdSearchResultClass.User: return new IconData(enumInternIcons.misc_user); case enumF4sdSearchResultClass.Phone: return new IconData(MaterialIcons.MaterialIconType.ic_phone); case enumF4sdSearchResultClass.Ticket: break; case enumF4sdSearchResultClass.VirtualSession: break; case enumF4sdSearchResultClass.MobileDevice: break; default: break; } throw new NotImplementedException(); } } [Obsolete] internal sealed class SearchRelationMenuDataDto : MenuDataBaseDto { private readonly cF4sdApiSearchResultRelation _searchRelation; public enumF4sdSearchResultClass Type { get => _searchRelation.Type; } public DateTime LastUsed { get; private set; } public double UsingFactor { get; private set; } public Dictionary AdditionalInfos { get; private set; } // todo check public bool IsUsedForCaseEnrichtment { get; set; } // todo check public string TrailingText { get; set; } public SearchRelationMenuDataDto(cF4sdApiSearchResultRelation searchRelation) { _searchRelation = searchRelation; //Action = new cUiProcessSearchRelationAction() } internal override IconData GetIcon() { throw new NotImplementedException(); } } [Obsolete] internal sealed class QuickActionMenuDataDto : MenuDataBaseDto { public QuickActionMenuDataDto(cFasdQuickAction quickActionDefinition) : base(quickActionDefinition) { Action = cUiActionBase.GetUiAction(quickActionDefinition); } } [Obsolete] internal sealed class QuickTipMenuDataDto : MenuDataBaseDto { public QuickTipMenuDataDto(cFasdQuickTip quickTipDefinition) : base(quickTipDefinition) { Title = quickTipDefinition.Names.GetValue(); Action = new cUiQuickTipAction(quickTipDefinition); } } [Obsolete] internal sealed class CopyTemplateMenuDataDto : MenuDataBaseDto { public CopyTemplateMenuDataDto(cCopyTemplate copyActionDefintion) : base(copyActionDefintion) { Action = new cUiCopyAction(copyActionDefintion); } } }