我不确定这是否是一个很好的问题,或者我应该说这个问题更多的是C#.NET或Genesys。
我正在使用Genesys(联络中心解决方案提供商)Platform SDK和C#.NET开发代理桌面。基本上当我请求向服务器发送内容时,如果请求成功,则会返回一个事件,如下所示。
'EventInfo' ('2')
message attributes:
REQ_ID [int] = 402
USER_REQ_ID [int] = 0
TM_SERVER [int] = 1440495548
TM_LENGTH [int] = 1285
LONG_VALUE [int] = 0
STRING_VALUE [str] = "123"
'EventInfo' ('2')
message attributes:
REQ_ID [int] = 301
USER_REQ_ID [int] = 0
TM_SERVER [int] = 1440495553
TM_LENGTH [int] = 1290
LONG_VALUE [int] = 0
STRING_VALUE [str] = "456"
根据上面的事件,我同时发送了两个请求,因此它返回了两个EventInfo。我可以通过eventInfo.ReferenceID
获取事件的REQ_ID,我可以通过eventInfo.StringValue
获取事件的STRING_VALUE(这是我在这种情况下想要的值,这个值将填充到我的代理桌面中的列表视图中) 。
我的问题是如何根据事件的ReferenceID检索字符串值?不幸的是,没有像eventInfo.ReferenceID(402).StringValue
这样的东西,并返回123.有没有类似的方法来获取值?
答案 0 :(得分:0)
实际上这个问题更多的是C#。以下是我解决问题的方法:
首先,我全局定义dictionary
:
Dictionary<int, string> qInfoTempDict = new Dictionary<int, string>();
我使用dictionary
代替list
或array
的原因可以参考this。
接下来在我的EventInfo_Handler()
方法中,我写了一些声明:
List<KeyValuePair<int, string>> sortedTempList = new List<KeyValuePair<int, string>>();
//Whenever the EventInfo is received, quickly retrieve its ReferenceId and StringValue and store them in a temporary KeyValuePair dictionary
qInfoTempDict.Add(eventInfo.ReferenceId, eventInfo.StringValue);
//Sort the dictionary by ReferenceId
foreach (KeyValuePair<int, string> attribute in qInfoTempDict.OrderBy(key => key.Key))
sortedTempList.Add(new KeyValuePair<int, string>(attribute.Key, attribute.Value));
然后相应地将数据插入到列表视图中。
欢迎对此解决方案提出任何反馈或改进。
答案 1 :(得分:0)
如果您可以将您的请求说明为哪个服务器,我想提供帮助。 geneys平台上有很多组件。您可以使用该SDK执行任何操作。即使您可以创建第三方服务器,就像geneys中的核心组件一样。
主要是geneys事件驱动的架构。您必须连接在genesys CME上定义的正确配置和客户端。之后,您可以使用平台SDK连接和收听事件。 SDK为此提供了高度抽象。在创建类似方法的事件侦听器之后,将事件方法分配给协议事件。之后,您将获得其他服务器和其他服务器的活动。应用程序。当您获得该方法的事件时,将其转换为您想要查看的内容,在您的情况下,您可以将其转换为EventInfo。然后你得到结果。