Files
C4IT-F4SD-Client/F4SD-Docu-Engine/DocuEngineDataProvider/DocuEngineDataProvider.cs
Meik 0b52999b1d feat: expand cockpit integrations and support workflows
Add Phoenix remote desktop, action connector, documentation engine, and gamification support. Refactor support-case processing and search/action UI, and update installer assets and dependencies.
2026-07-13 11:16:53 +02:00

93 lines
3.1 KiB
C#

using C4IT.F4SD.DisplayFormatting;
using System.Collections.Generic;
using System.Linq;
namespace F4SD.DocuEngine.DocuEngineDataProvider
{
public class DocuEngineDataProperty : IDocuEngineDataProperty
{
public object Value { get; set; }
public RawValueType? ValueType { get; set; }
}
public class DocuEngineDataContainer : Dictionary<string, IDocuEngineDataToken>, IDocuEngineDataContainer
{
public IDocuEngineDataToken GetByName(string tokenName)
{
var tokenTree = tokenName.Split('.');
if (this.TryGetValue(tokenTree[0], out IDocuEngineDataToken token))
{
if (tokenTree.Length > 1)
{
switch (token)
{
case IDocuEngineDataContainer container:
return container.GetByName(string.Join(".", tokenTree.Skip(1)));
case IDocuEngineDataProperty property:
return property;
case IDocuEngineDataEnumeration enumeration:
return new DocuEngineDataProperty() { Value = tokenTree[0] };
default:
//Syntax Error
break;
}
}
else
{
switch (token)
{
case IDocuEngineDataContainer container:
return container;
case IDocuEngineDataProperty property:
return property;
case IDocuEngineDataEnumeration enumeration:
return enumeration;
default:
//Syntax Error
break;
}
}
return null;
}
else
{
//Syntax Error
return null;
}
}
public IDocuEngineDataContainer GetContainerByName(string containerName)
{
var token = GetByName(containerName);
if (token is IDocuEngineDataContainer container)
{
return container;
}
return null;
}
public IDocuEngineDataProperty GetPropertyByName(string propertyName)
{
var token = GetByName(propertyName);
if (token is IDocuEngineDataProperty property)
{
return property;
}
return null;
}
public IDocuEngineDataEnumeration GetEnumerationByName(string enumName)
{
var token = GetByName(enumName);
if (token is IDocuEngineDataEnumeration enumeration)
{
return enumeration;
}
return null;
}
}
public class DocuEngineDataEnumeration : List<IDocuEngineDataToken>, IDocuEngineDataEnumeration
{
}
}