[quote author=Barn5ter link=topic=8857.msg39485#msg39485 date=1432201595]
Hi There
We are currently using WDE 8.5.105.12 and we are experiencing some freezing issues (being investigated by Genesys) when a second chat lands at a desktop. It seems to coincide as Chat 1 is Marked as Done and Chat 2 arrives.
As a quick fix, I am trying to see if there is an easy way to [b]customize the WDE desktop to mark every chat[/b] as Done when we hit the End Chat button.
I know for voice calls we have the option voice.mark-done-on-release. I am basically trying to achieve the same thing but for chat interactions.
Just wondering if anyone else has given this a go in the past? Its one of those one's where I am saying to myself "surely someone has tried to do this?"

If anyone could give me some pointers where to start looking in the code I would be grateful. I believe all I need to do is "insert a command" in accordance with the .NET developers guide. I am not a developer myself, but I have one at hand who is also looking at the issue. I am just seeing if I can give him some guidance as to where to look.

All help gratefully received,
[/quote]
a late answer but might be helpful to other
you can call the "InteractionChatWorkflow" command as follows :
KeyValueCollection ReasonsObj = new KeyValueCollection();
KeyValueCollection ExtensionObj = new KeyValueCollection();
IDictionary<string, object> param = new Dictionary<string, object>();
param.Add("CommandParameter", NewIXN);
param.Add("Reasons", ReasonsObj);
param.Add("Extensions", ExtensionObj);
CMDManager.GetChainOfCommandByName("InteractionChatWorkflow").Execute(param);
if you want to trigger the above when the "End Chat button" is hit, you need to call the above code when the state of the interaction is marked as "ended" in an event handler as follows:
1- Register Event Handler:
InteractionManager.InteractionEvent += new EventHandler<EventArgs<IInteraction>>(GDE_EventHandler);
2- Monitor "eventsessioninfo" event:
protected void GDE_EventHandler(object sender, EventArgs<IInteraction> e)
{
IInteraction NewIXN = e.Value;
string NewIXNMediaType = NewIXN.Media.Name.ToLower();
switch (NewIXNMediaType)
{
case "chat":
string IXNEventType = NewIXN.EntrepriseLastInteractionEvent.Name.ToLower();
string EntIXNState = NewIXN.EntrepriseInteractionCurrent.State.ToString().ToLower();
switch (IXNEventType)
{
case "eventsessioninfo":
switch (EntIXNState)
{
case "ended":
KeyValueCollection ReasonsObj = new KeyValueCollection();
KeyValueCollection ExtensionObj = new KeyValueCollection();
IDictionary<string, object> param = new Dictionary<string, object>();
param.Add("CommandParameter", NewIXN);
param.Add("Reasons", ReasonsObj);
param.Add("Extensions", ExtensionObj);
CMDManager.GetChainOfCommandByName("InteractionChatWorkflow").Execute(param);
break;
}
}
}
}