46 lines
1.4 KiB
C#
46 lines
1.4 KiB
C#
namespace RobotApp.VDA5050;
|
|
|
|
public enum VDA5050Topic
|
|
{
|
|
CONNECTION,
|
|
ORDER,
|
|
INSTANTACTIONS,
|
|
STATE,
|
|
VISUALIZATION,
|
|
FACTSHEET
|
|
}
|
|
|
|
public static class EnumExtensions
|
|
{
|
|
private static readonly Dictionary<VDA5050Topic, string> TopicToStringMap = new()
|
|
{
|
|
{ VDA5050Topic.CONNECTION, "connection" },
|
|
{ VDA5050Topic.ORDER, "order" },
|
|
{ VDA5050Topic.INSTANTACTIONS, "instantActions" },
|
|
{ VDA5050Topic.STATE, "state" },
|
|
{ VDA5050Topic.VISUALIZATION, "visualization" },
|
|
{ VDA5050Topic.FACTSHEET, "factsheet" }
|
|
};
|
|
|
|
private static readonly Dictionary<string, VDA5050Topic> StringToTopicMap = new(StringComparer.OrdinalIgnoreCase)
|
|
{
|
|
{ "connection", VDA5050Topic.CONNECTION },
|
|
{ "order", VDA5050Topic.ORDER },
|
|
{ "instantActions", VDA5050Topic.INSTANTACTIONS },
|
|
{ "state", VDA5050Topic.STATE },
|
|
{ "visualization", VDA5050Topic.VISUALIZATION },
|
|
{ "factsheet", VDA5050Topic.FACTSHEET }
|
|
};
|
|
|
|
public static string ToTopicString(this VDA5050Topic type)
|
|
{
|
|
if (TopicToStringMap.TryGetValue(type, out var value)) return value;
|
|
throw new ArgumentException($"Invalid VDA5050Topic: {type}");
|
|
}
|
|
|
|
public static VDA5050Topic ToTopic(string value)
|
|
{
|
|
if (StringToTopicMap.TryGetValue(value, out var result)) return result;
|
|
throw new ArgumentException($"No VDA5050Topic with string value '{value}' found.");
|
|
}
|
|
} |