public OutputValues RequestPlaceQueue(string interactionId, int proxyId, string queueName) { OutputValues output = OutputValues.GetInstance(); output.Message = string.Empty; output.MessageCode = string.Empty; output.ErrorCode = 0; try { RequestPlaceInQueue requestPlaceInQueue = RequestPlaceInQueue.Create(); requestPlaceInQueue.InteractionId = interactionId; requestPlaceInQueue.Queue = queueName; requestPlaceInQueue.ProxyClientId = proxyId; if (Settings.InteractionProtocol != null && Settings.InteractionProtocol.State == ChannelState.Opened) { IMessage message = Settings.InteractionProtocol.Request(requestPlaceInQueue); if (message != null) { switch (message.Id) { case EventAck.MessageId: EventAck eventAck = (EventAck)message; logger.Info("------------PlaceInQueue-------------"); logger.Info("InteractionID :" + interactionId); logger.Info("ProxyID :" + proxyId); logger.Info("Queue Name :" + queueName); logger.Info("----------------------------------------------"); logger.Trace(eventAck.ToString()); output.MessageCode = "200"; output.Message = "Place in Queue Successful"; break; case EventError.MessageId: EventError eventError = (EventError)message; logger.Info("------------Error on Place In Queue-------------"); logger.Info("InteractionID :" + interactionId); logger.Info("ProxyID :" + proxyId); logger.Info("Queue Name :" + queueName); logger.Info("----------------------------------------------"); logger.Trace(eventError.ToString()); output.MessageCode = "2001"; output.Message = Convert.ToString(eventError.ErrorDescription); logger.Error("Error occurred while placeinqueue : " + Convert.ToString(eventError.ErrorDescription)); break; } } else { output.MessageCode = "2001"; output.Message = "Place in Queue UnSuccessful"; } } else { logger.Warn("PlaceInQueue() : Interaction Server protocol is Null.."); } } catch (Exception generalException) { logger.Error("Error occurred while Accept the request " + generalException.ToString()); output.MessageCode = "2001"; output.Message = generalException.Message; } return(output); }
public OutputValues TransferInteractiontoQueue(int proxyClientId, string interactionID, string queueName) { OutputValues output = OutputValues.GetInstance(); try { RequestChangeProperties requestChangeProperties = RequestChangeProperties.Create(); RequestPlaceInQueue requestPlaceInQueue = RequestPlaceInQueue.Create(); KeyValueCollection attachData = new KeyValueCollection(); attachData.Add("EmailSkills", queueName); requestChangeProperties.ChangedProperties = attachData; requestChangeProperties.InteractionId = interactionID; requestChangeProperties.ProxyClientId = proxyClientId; requestPlaceInQueue.InteractionId = interactionID; requestPlaceInQueue.Queue = queueName; requestPlaceInQueue.ProxyClientId = proxyClientId; requestPlaceInQueue.AddedProperties = attachData; if (Settings.InteractionProtocol != null && Settings.InteractionProtocol.State == ChannelState.Opened) { IMessage message = Settings.InteractionProtocol.Request(requestPlaceInQueue); if (message != null) { switch (message.Id) { case EventAck.MessageId: EventAck eventAck = (EventAck)message; logger.Info("------------Transfer Interaction By Queue-------------"); logger.Info("InteractionId :" + interactionID); logger.Info("ProxyClientId :" + proxyClientId); logger.Info("QueueName :" + queueName); logger.Info("--------------------------------------------"); logger.Trace(eventAck.ToString()); output.MessageCode = "200"; output.Message = "Transfer interaction Successful"; break; case EventError.MessageId: EventError eventError = (EventError)message; logger.Info("------------Error on Transfer Interaction By Queue-------------"); logger.Info("InteractionId :" + interactionID); logger.Info("ProxyClientId :" + proxyClientId); logger.Info("QueueName :" + queueName); logger.Info("--------------------------------------------"); logger.Trace(eventError.ToString()); output.MessageCode = "2001"; output.Message = Convert.ToString(eventError.ErrorDescription); logger.Error("Error occurred while transferring interaction : " + Convert.ToString(eventError.ErrorDescription)); break; } } else { output.MessageCode = "2001"; output.Message = "Transfer Interaction UnSuccessful"; } Settings.InteractionProtocol.Send(requestPlaceInQueue); logger.Info("------------Transfer Interaction By Queue-------------"); logger.Info("InteractionId :" + interactionID); logger.Info("ProxyClientId :" + proxyClientId); logger.Info("QueueName :" + queueName); logger.Info("--------------------------------------------"); logger.Info(requestChangeProperties.ToString()); logger.Info(requestPlaceInQueue.ToString()); } else { logger.Warn("TransferInteractiontoQueue() : Interaction Server protocol is Null.."); } } catch (Exception generalException) { logger.Error("Error occurred while transfer the interaction" + generalException.ToString()); output.MessageCode = "2001"; output.Message = generalException.Message; } return(output); }