1

我不确定这是否是一个很好的问题,或者我应该说这个问题更多的是 C#.NET 或 Genesys。

我正在使用 Genesys(联络中心解决方案提供商)平台 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。我可以通过 获取事件的 REQ_ID eventInfo.ReferenceID,我可以通过 获取事件的 STRING_VALUE(这是我在这种情况下想要的值,该值将填充到我的代理桌面的列表视图中)eventInfo.StringValue

我的问题是如何根据事件的 ReferenceID 检索字符串值?不幸的是,没有这样的东西:eventInfo.ReferenceID(402).StringValue并返回123。有没有类似的方法来获取值?

4

2 回答 2

0

实际上这个问题更多的是C#。这是我解决问题的方法:

首先,我定义了一个dictionary全局:

Dictionary<int, string> qInfoTempDict = new Dictionary<int, string>();

之所以用这个dictionary代替list还是array可以参考这个

接下来在我的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));

然后将数据相应地插入到列表视图中。

欢迎对此解决方案提供任何反馈或改进。

于 2015-09-09T14:17:44.893 回答
0

如果您可以指定您对哪个服务器的请求,我愿意提供帮助。Genesys平台上有很多组件。您可以使用该 SDK 做任何您想做的事情。甚至您也可以创建像genesys 中的核心组件一样的第3 方服务器。

主要是genesys事件驱动架构。您必须连接到genesys CME 上定义的正确配置和客户端。之后,您可以使用平台 SDK 连接和监听事件。SDK 提供了高度抽象来执行此操作。创建类似方法的事件侦听器后,将事件方法分配给协议事件。之后,您将获得与其他服务器和应用程序一样的事件。当您在该方法上获得事件时,将其转换为您希望看到的任何内容,在您的情况下,您可以将其转换为 EventInfo。然后你得到结果。

于 2016-07-24T18:56:06.010 回答