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.
93 lines
3.1 KiB
C#
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
|
|
{
|
|
}
|
|
} |