Example #1
0
        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);
        }
Example #2
0
        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);
        }