diff --git a/C4IT_DataHistoryProvider_Base/Publish/F4SD-Cockpit-Server.dll b/C4IT_DataHistoryProvider_Base/Publish/F4SD-Cockpit-Server.dll
index cc9cf6b..99d283d 100644
Binary files a/C4IT_DataHistoryProvider_Base/Publish/F4SD-Cockpit-Server.dll and b/C4IT_DataHistoryProvider_Base/Publish/F4SD-Cockpit-Server.dll differ
diff --git a/C4IT_DataHistoryProvider_Test/Config/F4SD-Global-Configuration.xml b/C4IT_DataHistoryProvider_Test/Config/F4SD-Global-Configuration.xml
index 344fac5..54fe4f6 100644
--- a/C4IT_DataHistoryProvider_Test/Config/F4SD-Global-Configuration.xml
+++ b/C4IT_DataHistoryProvider_Test/Config/F4SD-Global-Configuration.xml
@@ -17,8 +17,7 @@
-
-
+
diff --git a/C4IT_DataHistoryProvider_Test/Config/F4SD-Global-Configuration.xsd b/C4IT_DataHistoryProvider_Test/Config/F4SD-Global-Configuration.xsd
index 654d851..03b1e75 100644
--- a/C4IT_DataHistoryProvider_Test/Config/F4SD-Global-Configuration.xsd
+++ b/C4IT_DataHistoryProvider_Test/Config/F4SD-Global-Configuration.xsd
@@ -131,18 +131,18 @@
-
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
diff --git a/F4SD-Cockpit-ServerCore/DataHistoryConfigGolabalParameters.cs b/F4SD-Cockpit-ServerCore/DataHistoryConfigGolabalParameters.cs
index a7733ea..faa5b62 100644
--- a/F4SD-Cockpit-ServerCore/DataHistoryConfigGolabalParameters.cs
+++ b/F4SD-Cockpit-ServerCore/DataHistoryConfigGolabalParameters.cs
@@ -87,14 +87,23 @@ namespace C4IT.DataHistoryProvider
}
// check for special parameters
- switch (_item.Name)
- {
- case "InformationClassSearchPriority":
- var _val = getInformationClassSearchPriority(_item, Parser);
- if (_val != null)
- _result.Items[_val.Name] = _val;
- continue;
- }
+ switch (_item.Name)
+ {
+ case "InformationClassSearchPriority":
+ var _val = getInformationClassSearchPriority(_item, Parser);
+ if (_val != null)
+ _result.Items[_val.Name] = _val;
+ continue;
+ case "OpenActivitiesExternally":
+ var _openActivitiesEntry = getOpenActivitiesExternallyEntry(_item);
+ if (_openActivitiesEntry != null)
+ _result.Items[_openActivitiesEntry.Name] = _openActivitiesEntry;
+
+ var _overrideValues = getOpenActivitiesExternallyOverrides(_item, Parser);
+ if (_overrideValues != null && _overrideValues.ValueList != null && _overrideValues.ValueList.Count > 0)
+ _result.Items[_overrideValues.Name] = _overrideValues;
+ continue;
+ }
if (_attPolicy != null && _attValue != null && _ElementCount == 0)
{
@@ -148,8 +157,8 @@ namespace C4IT.DataHistoryProvider
return _result;
}
- private cConfigHelperParameterEntry getInformationClassSearchPriority(XmlElement XNode, cXmlParser Parser)
- {
+ private cConfigHelperParameterEntry getInformationClassSearchPriority(XmlElement XNode, cXmlParser Parser)
+ {
MethodBase CM = null; if (cLogManager.DefaultLogger.IsDebug) { CM = MethodBase.GetCurrentMethod(); LogMethodBegin(CM); }
@@ -222,7 +231,124 @@ namespace C4IT.DataHistoryProvider
}
return null;
- }
+ }
+
+ private static cConfigHelperParameterEntry getOpenActivitiesExternallyEntry(XmlElement XNode)
+ {
+ var _policy = cXmlParser.GetEnumFromAttribute(XNode, "Policy", enumConfigPolicy.Default);
+ var _value = cXmlParser.GetStringFromXmlAttribute(XNode, "Value", String.Empty);
+
+ if (string.IsNullOrWhiteSpace(_value))
+ return null;
+
+ return new cConfigHelperParameterEntry()
+ {
+ Name = "OpenActivitiesExternally",
+ Value = _value,
+ Policy = _policy.ToString(),
+ };
+ }
+
+ private cConfigHelperParameterEntry getOpenActivitiesExternallyOverrides(XmlElement XNode, cXmlParser Parser)
+ {
+
+ MethodBase CM = null; if (cLogManager.DefaultLogger.IsDebug) { CM = MethodBase.GetCurrentMethod(); LogMethodBegin(CM); }
+
+ try
+ {
+ var _xNodes = XNode.ChildNodes;
+ var _policy = cXmlParser.GetEnumFromAttribute(XNode, "Policy", enumConfigPolicy.Default);
+ var _result = new List();
+
+ foreach (var _xNode in _xNodes)
+ {
+ if (!(_xNode is XmlElement _item))
+ continue;
+
+ Parser.EnterElement(_item.Name);
+
+ try
+ {
+ if (_item.Name != "OpenActivityOverride")
+ {
+ var _msg = $"Invalid entry in F4SD-Global-Configuration.xml: {_item.Name}, should be ";
+ Parser.AddMessage(_item, _msg, LogLevels.Warning);
+ LogEntry(_msg, LogLevels.Warning);
+ continue;
+ }
+
+ var activityType = cXmlParser.GetStringFromXmlAttribute(_item, "ActivityType", String.Empty)?.Trim();
+ if (string.IsNullOrWhiteSpace(activityType))
+ {
+ var _msg = $"Missing ActivityType attribute value in entry {_item.Name}";
+ Parser.AddMessage(_item, _msg, LogLevels.Warning);
+ LogEntry(_msg, LogLevels.Warning);
+ continue;
+ }
+
+ var valueText = cXmlParser.GetStringFromXmlAttribute(_item, "Value", String.Empty)?.Trim();
+ if (string.IsNullOrWhiteSpace(valueText))
+ {
+ var _msg = $"Missing Value attribute value in entry {_item.Name} ({activityType})";
+ Parser.AddMessage(_item, _msg, LogLevels.Warning);
+ LogEntry(_msg, LogLevels.Warning);
+ continue;
+ }
+
+ var normalizedValue = valueText.ToLowerInvariant();
+ bool? parsedValue = null;
+ switch (normalizedValue)
+ {
+ case "true":
+ case "1":
+ case "yes":
+ parsedValue = true;
+ break;
+ case "false":
+ case "0":
+ case "no":
+ parsedValue = false;
+ break;
+ }
+
+ if (!parsedValue.HasValue)
+ {
+ var _msg = $"Invalid Value attribute value ({valueText}) in entry {_item.Name} ({activityType})";
+ Parser.AddMessage(_item, _msg, LogLevels.Warning);
+ LogEntry(_msg, LogLevels.Warning);
+ continue;
+ }
+
+ _result.Add($"{activityType}={(parsedValue.Value ? "true" : "false")}");
+ }
+ catch (Exception E)
+ {
+ LogException(E);
+ }
+ finally
+ {
+ Parser.LeaveElement(_item.Name);
+ }
+ }
+
+ return new cConfigHelperParameterEntry()
+ {
+ Name = "OpenActivitiesExternallyOverrides",
+ ValueList = _result,
+ Policy = _policy.ToString()
+ };
+ }
+ catch (Exception E)
+ {
+ LogException(E);
+ }
+ finally
+ {
+ if (CM != null) LogMethodEnd(CM);
+ }
+
+ return null;
+ }
public override bool DoXmlUpdates(XmlElement XmlRoot, bool withM42Config = false, bool withIntuneConfig = false, bool withMobileDeviceConfig = false, bool withCitrixConfig = false)
{
@@ -295,13 +421,8 @@ namespace C4IT.DataHistoryProvider
);
RetVal |= DoXmlInsertElement(XmlRoot
, "TicketConfiguration"
- , "OpenTicketsExternally"
- , ""
- );
- RetVal |= DoXmlInsertElement(XmlRoot
- , "TicketConfiguration"
- , "OpenIncidentsExternally"
- , ""
+ , "OpenActivitiesExternally"
+ , ""
);
RetVal |= DoXmlInsertElement(XmlRoot
, "TicketConfiguration"
diff --git a/F4SDwebService/Config/F4SD-Global-Configuration.xml b/F4SDwebService/Config/F4SD-Global-Configuration.xml
index 344fac5..54fe4f6 100644
--- a/F4SDwebService/Config/F4SD-Global-Configuration.xml
+++ b/F4SDwebService/Config/F4SD-Global-Configuration.xml
@@ -17,8 +17,7 @@
-
-
+
diff --git a/F4SDwebService/Publish/Config/F4SD-Global-Configuration.xml b/F4SDwebService/Publish/Config/F4SD-Global-Configuration.xml
index 344fac5..54fe4f6 100644
--- a/F4SDwebService/Publish/Config/F4SD-Global-Configuration.xml
+++ b/F4SDwebService/Publish/Config/F4SD-Global-Configuration.xml
@@ -17,8 +17,7 @@
-
-
+
diff --git a/F4SDwebService/Publish/Config/F4SD-Global-Configuration.xsd b/F4SDwebService/Publish/Config/F4SD-Global-Configuration.xsd
index 654d851..03b1e75 100644
--- a/F4SDwebService/Publish/Config/F4SD-Global-Configuration.xsd
+++ b/F4SDwebService/Publish/Config/F4SD-Global-Configuration.xsd
@@ -131,18 +131,18 @@
-
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+