|
1 | 1 | using System; |
2 | | -using System.Collections.Generic; |
3 | | -using System.Linq; |
4 | 2 | using TouchPortalSDK.Messages.Models; |
5 | 3 |
|
6 | 4 | namespace TouchPortalSDK.Configuration |
@@ -31,22 +29,27 @@ public ConnectorIdParser(string connectorId, string pluginId = null) |
31 | 29 | { |
32 | 30 | var values = connectorId?.Split('|', StringSplitOptions.RemoveEmptyEntries); |
33 | 31 | // get our actual connector id |
34 | | - ConnectorIdPart = values.FirstOrDefault(); |
| 32 | + ConnectorIdPart = values.Length > 0 ? values[0] : null; |
35 | 33 | if (string.IsNullOrWhiteSpace(ConnectorIdPart)) |
36 | 34 | return; |
37 | 35 |
|
38 | 36 | if (!string.IsNullOrWhiteSpace(pluginId)) |
39 | | - ConnectorIdPart.Replace("pc_" + pluginId + "_", ""); |
| 37 | + ConnectorIdPart = ConnectorIdPart.Replace("pc_" + pluginId + "_", ""); |
40 | 38 |
|
41 | 39 | for (int i = 1, e = values.Length; i < e; ++i) { |
42 | 40 | var keyVal = values[i].Split('=', StringSplitOptions.RemoveEmptyEntries); |
43 | 41 | var len = keyVal.Length; |
| 42 | + if (len == 0) |
| 43 | + continue; |
| 44 | + var key = keyVal[0]; |
| 45 | + if (TouchPortalOptions.ActionDataIdSeparator != '\0') |
| 46 | + key = key.Split(TouchPortalOptions.ActionDataIdSeparator, StringSplitOptions.RemoveEmptyEntries)[^1]; |
44 | 47 | if (len == 2) |
45 | | - _kvPairs.Add(keyVal[0], keyVal[1]); |
| 48 | + _kvPairs.Add(key, keyVal[1]); |
46 | 49 | else if (len == 1) |
47 | | - _kvPairs.Add(keyVal[0], ""); |
| 50 | + _kvPairs.Add(key, ""); |
48 | 51 | else if (len > 2) |
49 | | - _kvPairs.Add(keyVal[0], string.Join('=', keyVal[1..^0])); |
| 52 | + _kvPairs.Add(key, string.Join('=', keyVal[1..^0])); |
50 | 53 | } |
51 | 54 | } |
52 | 55 | } |
|
0 commit comments