using C4IT.FASD.Base; using FasdDesktopUi.Basics.Enums; using FasdDesktopUi.Basics.Helper; using FasdDesktopUi.Basics.Models; using System.Collections.Generic; namespace FasdDesktopUi.Basics.Services.SupportCase.Controllers { internal static class MenuDataFactory { internal static cMenuDataBase GetByName(string name, cNamedParameterList namedParameterEntries, IEnumerable availableInformationClasses) { if (!cF4SDCockpitXmlConfig.Instance.MenuItems.TryGetValue(name, out var menuDataDefinition)) return null; return Create(menuDataDefinition, namedParameterEntries, availableInformationClasses); } internal static cMenuDataBase Create(cFasdBaseConfigMenuItem definition, cNamedParameterList namedParameterEntries, IEnumerable availableInformationClasses) { cMenuDataBase menuData; switch (definition) { case cFasdQuickAction quickActionDefinition: menuData = new cMenuDataBase(quickActionDefinition); break; case cCopyTemplate copyTemplate: menuData = new cMenuDataBase(copyTemplate); break; case cFasdMenuSection sectionDefinition: menuData = new cMenuDataContainer(sectionDefinition); break; case cFasdQuickTip quickTip: menuData = new cMenuDataBase(quickTip); break; default: menuData = new cMenuDataBase(definition); break; } enumActionDisplayType displayType = ActionDisplayTypeInspector.GetDisplayType(definition, namedParameterEntries, availableInformationClasses); menuData.SetUiActionDisplayType(displayType); return menuData; } } }