/// <summary>
 /// Releases the force party chat session.
 /// </summary>
 /// <param name="sessionID">The session identifier.</param>
 /// <param name="proxyID">The proxy identifier.</param>
 /// <param name="userId">The user identifier.</param>
 /// <param name="chatClosingProtocol">The chat closing protocol.</param>
 /// <returns></returns>
 public static Pointel.Interactions.Chat.Core.General.OutputValues ReleaseForcePartyChatSession(string sessionID, int proxyID, string userId, string messageText)
 {
     Pointel.Logger.Core.ILog logger = Pointel.Logger.Core.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType, "AID");
     Pointel.Interactions.Chat.Core.General.OutputValues output = Pointel.Interactions.Chat.Core.General.OutputValues.GetInstance();
     try
     {
         Genesyslab.Platform.WebMedia.Protocols.BasicChat.MessageText newMessageText = Genesyslab.Platform.WebMedia.Protocols.BasicChat.MessageText.Create();
         newMessageText.Text = messageText;
         Genesyslab.Platform.WebMedia.Protocols.BasicChat.Requests.RequestReleaseParty requestReleaseParty = Genesyslab.Platform.WebMedia.Protocols.BasicChat.Requests.RequestReleaseParty.Create(sessionID, userId, Genesyslab.Platform.WebMedia.Protocols.BasicChat.Action.ForceClose,
                                                                                                                                                                                                  newMessageText);
         if (Pointel.Interactions.Chat.Core.Util.Settings.ChatProtocol != null && Pointel.Interactions.Chat.Core.Util.Settings.ChatProtocol.State == Genesyslab.Platform.Commons.Protocols.ChannelState.Opened)
         {
             Pointel.Interactions.Chat.Core.Util.Settings.ChatProtocol.Send(requestReleaseParty);
             logger.Info("------------ReleaseForcePartyChatSession-------------");
             logger.Info("SessionID  :" + sessionID);
             logger.Info("ProxyID    :" + proxyID);
             logger.Info("UserID    :" + userId);
             logger.Info("-----------------------------------------------------");
             logger.Info(requestReleaseParty.ToString());
             output.MessageCode = "200";
             output.Message     = "Release Force Party ChatSession Successful";
         }
         else
         {
             logger.Warn("ReleaseForcePartyChatSession() : Chat Server protocol is Null..");
         }
     }
     catch (Exception generalException)
     {
         logger.Error("Error occurred while Release Party Chat Session request " + generalException.ToString());
         output.MessageCode = "2001";
         output.Message     = generalException.Message;
     }
     return(output);
 }
Example #2
0
        public static List <string> ReadConfigKeys(string keyName, string[] defaultValues, List <string> validValues)
        {
            List <string> listValues = new List <string>();

            Pointel.Logger.Core.ILog _logger = Pointel.Logger.Core.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType,
                                                                                        "AID");
            try
            {
                if (ConfigContainer.Instance().AllKeys.Contains(keyName) &&
                    !string.IsNullOrEmpty(ConfigContainer.Instance().GetAsString(keyName).Trim()))
                {
                    listValues = validValues.Intersect(ConfigContainer.Instance().GetAsString(keyName).Split(',').Select(x => x.Trim()).ToArray().ToList()).ToList();

                    if (listValues.Count > 1)
                    {
                        listValues = listValues.Distinct().ToList();
                    }

                    if (listValues.Count == 0)
                    {
                        listValues = new List <string>(defaultValues);
                    }
                }
                else
                {
                    listValues = new List <string>(defaultValues);
                }
            }
            catch (Exception generalException)
            {
                _logger.Error("btnAdvanceSearch_Click: Error occurred as " + generalException.ToString());
            }
            return(listValues);
        }
Example #3
0
        public static IMessage RequestUpdateInteraction(InteractionContent interactionContent, InteractionAttributes interactionAttributes, BaseEntityAttributes baseEntityAttributes)
        {
            Pointel.Logger.Core.ILog logger = Pointel.Logger.Core.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType, "AID");
            IMessage iMessage = null;
            RequestUpdateInteraction updateInteraction = new RequestUpdateInteraction();

            if (interactionContent != null)
            {
                updateInteraction.InteractionContent = interactionContent;
            }
            if (interactionAttributes != null)
            {
                updateInteraction.InteractionAttributes = interactionAttributes;
            }
            if (baseEntityAttributes != null)
            {
                updateInteraction.EntityAttributes = baseEntityAttributes;
            }
            if (Settings.UCSProtocol != null && Settings.UCSProtocol.State == ChannelState.Opened)
            {
                logger.Info("------------RequestUpdateInteraction-------------");
                logger.Info("Interaction Attributes : " + (updateInteraction.InteractionAttributes != null ? "null" : updateInteraction.InteractionAttributes.ToString()));
                logger.Info("Entity Attributes : " + (updateInteraction.InteractionAttributes != null ? "null" : updateInteraction.EntityAttributes.ToString()));
                logger.Info("---------------------------------------------------");
                iMessage          = Settings.UCSProtocol.Request(updateInteraction);
                updateInteraction = null;
                logger.Trace("Response : " + (iMessage != null ? "null" : iMessage.ToString()));
            }
            else
            {
                logger.Warn("Error occurred as : Universal Contact Server protocol is Null or Closed");
            }
            return(iMessage);
        }
Example #4
0
        /// <summary>
        /// Leaves the interaction from conference.
        /// </summary>
        /// <param name="interactionID">The interaction identifier.</param>
        /// <param name="proxyID">The proxy identifier.</param>
        /// <param name="agentID">The agent identifier.</param>
        /// <param name="_chatClosingProtocol">The _chat closing protocol.</param>
        /// <returns></returns>
        public static Pointel.Interactions.Chat.Core.General.OutputValues LeaveInteractionFromConference(string interactionID, int proxyID, string agentID)
        {
            Pointel.Logger.Core.ILog logger = Pointel.Logger.Core.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType, "AID");
            Pointel.Interactions.Chat.Core.General.OutputValues output = Pointel.Interactions.Chat.Core.General.OutputValues.GetInstance();
            try
            {
                Genesyslab.Platform.OpenMedia.Protocols.InteractionServer.Requests.InteractionManagement.RequestLeaveInteraction requestLeaveInteraction = Genesyslab.Platform.OpenMedia.Protocols.InteractionServer.Requests.InteractionManagement.RequestLeaveInteraction.Create();
                requestLeaveInteraction.InteractionId = interactionID;
                requestLeaveInteraction.ProxyClientId = proxyID;
                requestLeaveInteraction.Reason        = null;
                //ReasonInfo reasonInfo = ReasonInfo.Create();
                //reasonInfo.ReasonDescription = agentID.ToString() + " Leaving from the Conference";
                //requestLeaveInteraction.Reason = reasonInfo;
                requestLeaveInteraction.Extension = null;
                if (Pointel.Interactions.Chat.Core.Util.Settings.IxnServerProtocol != null && Pointel.Interactions.Chat.Core.Util.Settings.IxnServerProtocol.State == Genesyslab.Platform.Commons.Protocols.ChannelState.Opened)
                {
                    Genesyslab.Platform.Commons.Protocols.IMessage response = Pointel.Interactions.Chat.Core.Util.Settings.IxnServerProtocol.Request(requestLeaveInteraction);
                    if (response != null)
                    {
                        switch (response.Id)
                        {
                        case Genesyslab.Platform.OpenMedia.Protocols.InteractionServer.Events.EventAck.MessageId:
                            logger.Info("------------LeaveInteractionFromConference-------------");
                            logger.Info("InteractionId      :" + interactionID);
                            logger.Info("ProxyClientId      :" + proxyID);
                            logger.Info("AgentId            :" + agentID);
                            logger.Info("-------------------------------------------------------");
                            logger.Trace(response.ToString());
                            output.MessageCode = "200";
                            output.Message     = "Leave Interaction From Conference Successful";
                            break;

                        case Genesyslab.Platform.OpenMedia.Protocols.InteractionServer.Events.EventError.MessageId:
                            logger.Trace(response.ToString());
                            output.MessageCode = "2001";
                            output.Message     = "Don't Leave Interaction From Conference Successful";
                            break;
                        }
                    }
                    else
                    {
                        output.MessageCode = "2001";
                        output.Message     = "Don't Leave Interaction From Conference Successful";
                    }
                }
                else
                {
                    logger.Warn("LeaveInteractionFromConference() : Interaction Server protocol is Null..");
                }
            }
            catch (Exception generalException)
            {
                logger.Error("Error occurred while Leave Interaction From Conference request " + generalException.ToString());
                output.MessageCode = "2001";
                output.Message     = generalException.Message;
            }
            return(output);
        }
Example #5
0
        public static Pointel.Interactions.Chat.Core.General.OutputValues ResumeInteraction(int proxyID, string sessionID, KeyValueCollection extensions, ReasonInfo reason)
        {
            Pointel.Logger.Core.ILog logger = Pointel.Logger.Core.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType, "AID");
            Pointel.Interactions.Chat.Core.General.OutputValues output = Pointel.Interactions.Chat.Core.General.OutputValues.GetInstance();
            try
            {
                Genesyslab.Platform.OpenMedia.Protocols.InteractionServer.Requests.InteractionManagement.RequestResume requestResume = Genesyslab.Platform.OpenMedia.Protocols.InteractionServer.Requests.InteractionManagement.RequestResume.Create();
                requestResume.InteractionId = sessionID;
                requestResume.ProxyClientId = proxyID;
                requestResume.Extension     = extensions;
                requestResume.Reason        = reason;
                if (Pointel.Interactions.Chat.Core.Util.Settings.IxnServerProtocol != null && Pointel.Interactions.Chat.Core.Util.Settings.IxnServerProtocol.State == Genesyslab.Platform.Commons.Protocols.ChannelState.Opened)
                {
                    Genesyslab.Platform.Commons.Protocols.IMessage message = Pointel.Interactions.Chat.Core.Util.Settings.IxnServerProtocol.Request(requestResume);
                    if (message != null)
                    {
                        switch (message.Id)
                        {
                        case Genesyslab.Platform.OpenMedia.Protocols.InteractionServer.Events.EventAck.MessageId:
                            logger.Info("------------RequestResume-------------");
                            logger.Info("SessionID  :" + sessionID);
                            logger.Info("ProxyID    :" + proxyID);
                            logger.Info("--------------------------------------");
                            logger.Info(requestResume.ToString());
                            output.MessageCode = "200";
                            output.Message     = "Interaction Resume Successful.";
                            break;

                        case Genesyslab.Platform.OpenMedia.Protocols.InteractionServer.Events.EventError.MessageId:
                            Genesyslab.Platform.OpenMedia.Protocols.InteractionServer.Events.EventError eventError = (Genesyslab.Platform.OpenMedia.Protocols.InteractionServer.Events.EventError)message;
                            string LoginErrorCode        = Convert.ToString(eventError.ErrorCode);
                            string LoginErrorDescription = Convert.ToString(eventError.ErrorDescription);
                            logger.Trace(eventError.ToString());
                            output.MessageCode = "2001";
                            output.Message     = "ResumeInteraction() : " + LoginErrorDescription;
                            break;
                        }
                    }
                    else
                    {
                        output.MessageCode = "2001";
                        output.Message     = "Chat Media Resume Interaction UnSuccessful";
                    }
                }
                else
                {
                    logger.Warn("ResumeInteraction() : IXN Server protocol is Null..");
                }
            }
            catch (Exception generalException)
            {
                logger.Error("Error occurred while Resume Interaction request " + generalException.ToString());
                output.MessageCode = "2001";
                output.Message     = generalException.Message;
            }
            return(output);
        }
        /// <summary>
        /// Gets the contact list.
        /// </summary>
        /// <param name="tenantId">The tenant identifier.</param>
        /// <returns></returns>
        public static OutputValues GetContactList(int tenantId, List <string> attributeNames, int startIndex)
        {
            Pointel.Logger.Core.ILog logger = Pointel.Logger.Core.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType, "AID");
            OutputValues             output = OutputValues.GetInstance();

            try
            {
                RequestGetContacts requestGetContacts = new RequestGetContacts();
                requestGetContacts.IndexOfFirst = startIndex;
                StringList stringList = new StringList();
                for (int count = 0; count < attributeNames.Count; count++)
                {
                    stringList.Add(attributeNames[count].ToString());
                }
                //stringList.Add("EmailAddress");
                //stringList.Add("FirstName");
                //stringList.Add("LastName");
                requestGetContacts.AttributeList = stringList;
                requestGetContacts.TenantId      = tenantId;
                if (Settings.UCSProtocol != null && Settings.UCSProtocol.State == ChannelState.Opened)
                {
                    logger.Info("------------GetContacts-------------");
                    logger.Info("TenantId    :" + tenantId);
                    logger.Info("AttributeList: " + stringList);
                    logger.Info("-------------------------------------");
                    IMessage message = Settings.UCSProtocol.Request(requestGetContacts);
                    if (message != null)
                    {
                        logger.Trace(message.ToString());
                        output.IContactMessage = message;
                        output.MessageCode     = "200";
                        output.Message         = "Get Contacts Successful";
                    }
                    else
                    {
                        output.IContactMessage = null;
                        output.MessageCode     = "2001";
                        output.Message         = "Don't Get Contacts Successful";
                    }
                }
                else
                {
                    output.IContactMessage = null;
                    output.MessageCode     = "2001";
                    output.Message         = "Universal Contact Server protocol is Null or Closed";
                    logger.Warn("GetContactList() : Universal Contact Server Protocol is Null");
                }
            }
            catch (Exception generalException)
            {
                logger.Error("Error Occurred while Get Contacts request" + generalException.ToString());
                output.IContactMessage = null;
                output.MessageCode     = "2001";
                output.Message         = generalException.Message;
            }
            return(output);
        }
Example #7
0
 /// <summary>
 /// Changes the properties.
 /// </summary>
 /// <param name="interactionId">The interaction identifier.</param>
 /// <param name="proxyId">The proxy identifier.</param>
 /// <param name="dispositionNotes">The disposition notes.</param>
 /// <returns></returns>
 public static Pointel.Interactions.Chat.Core.General.OutputValues ChangeProperties(string interactionId, int proxyId, Genesyslab.Platform.Commons.Collections.KeyValueCollection addedProperties, Genesyslab.Platform.Commons.Collections.KeyValueCollection changedProperties)
 {
     Pointel.Logger.Core.ILog logger = Pointel.Logger.Core.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType, "AID");
     Pointel.Interactions.Chat.Core.General.OutputValues output = Pointel.Interactions.Chat.Core.General.OutputValues.GetInstance();
     Genesyslab.Platform.OpenMedia.Protocols.InteractionServer.Requests.InteractionManagement.RequestChangeProperties requestChangeProperties = Genesyslab.Platform.OpenMedia.Protocols.InteractionServer.Requests.InteractionManagement.RequestChangeProperties.Create();
     try
     {
         requestChangeProperties.InteractionId = interactionId;
         requestChangeProperties.ProxyClientId = proxyId;
         if (changedProperties != null)
         {
             requestChangeProperties.ChangedProperties = changedProperties;
         }
         if (addedProperties != null)
         {
             requestChangeProperties.AddedProperties = addedProperties;
         }
         if (Pointel.Interactions.Chat.Core.Util.Settings.IxnServerProtocol != null && Pointel.Interactions.Chat.Core.Util.Settings.IxnServerProtocol.State == Genesyslab.Platform.Commons.Protocols.ChannelState.Opened)
         {
             Genesyslab.Platform.Commons.Protocols.IMessage response = Pointel.Interactions.Chat.Core.Util.Settings.IxnServerProtocol.Request(requestChangeProperties);
             if (response.Id == Genesyslab.Platform.OpenMedia.Protocols.InteractionServer.Events.EventPropertiesChanged.MessageId || response.Id == Genesyslab.Platform.OpenMedia.Protocols.InteractionServer.Events.EventAck.MessageId)
             {
                 logger.Info("------------RequestChangeProperties-------------");
                 logger.Info("InteractionId  :" + interactionId);
                 logger.Info("ProxyClientId    :" + proxyId);
                 logger.Info(" RequestChangeProperties : response :" + response.ToString());
                 logger.Info("-------------------------------------------------");
                 logger.Trace(response.ToString());
                 output.MessageCode = "200";
                 output.Message     = "Change Properties Successful";
             }
             else
             {
                 output.MessageCode = "2001";
                 output.Message     = "Don't Change Properties Successful";
             }
         }
         else
         {
             logger.Warn("ChangeProperties() : Interaction Server Protocol is Null..");
         }
     }
     catch (Genesyslab.Platform.Commons.Protocols.ProtocolException protocolException)
     {
         logger.Error("Error occurred while change properties request " + protocolException.ToString());
         output.MessageCode = "2001";
         output.Message     = protocolException.Message;
     }
     catch (Exception generalException)
     {
         logger.Error("Error occurred while change properties request " + generalException.ToString());
         output.MessageCode = "2001";
         output.Message     = generalException.Message;
     }
     return(output);
 }
        private static StandardResponse GetResponseCategories(CategoryList categoryList, List <string> responsePath)
        {
            Pointel.Logger.Core.ILog _logger = Pointel.Logger.Core.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType,
                                                                                        "AID");
            StandardResponseList responselist = null;
            StandardResponse     response     = null;

            try
            {
                //pointel\Email\actional\actional
                //pointel\Email\emailaccount
                //response:Pointel\Sanofi\Email\Actonal\Sanofi\Email\Actonal
                //pointel\Sanofi\Email\Actonal
                int index = 0;
                foreach (string categoryName in responsePath)
                {
                    //it for find category list, Only if the Category is not last item and should has child category
                    if (responsePath.IndexOf(categoryName) != responsePath.Count - 1 && categoryList != null &&
                        categoryList.Count > 0 &&
                        categoryList.Cast <Category>().Where(c => c.Name.Equals(categoryName)).ToList().Count > 0)
                    {
                        Category category = categoryList.Cast <Category>().Where(c => c.Name.Equals(categoryName)).Single();
                        if (category != null)
                        {
                            categoryList = category.ChildrenCategories;

                            if (index == responsePath.Count - 2)
                            {
                                responselist = category.ChildrenStdResponses;
                                break;
                            }
                        }
                    }
                    else //if the user gives wrong signature path.
                    {
                        break;
                    }
                    index++;
                }

                if (responselist != null && responselist.Count > 0 && responselist.Cast <StandardResponse>().Where(s => s.TheName.Equals(responsePath.LastOrDefault())).ToList().Count > 0)
                {
                    response = responselist.Cast <StandardResponse>().Where(s => s.TheName.Equals(responsePath.LastOrDefault())).Single();
                }
            }
            catch (Exception ex)
            {
                _logger.Error("Error occurred at : " + ((ex.InnerException == null) ? ex.Message.ToString() : ex.InnerException.ToString()));
            }
            finally
            {
                _logger = null;
            }
            return(response);
        }
        /// <summary>
        /// Adds the agent favorite response.
        /// </summary>
        /// <param name="stdResponse">The standard response.</param>
        /// <param name="agentId">The agent identifier.</param>
        /// <returns></returns>
        public static OutputValues AddAgentFavoriteResponse(string stdResponse, string agentId)
        {
            Pointel.Logger.Core.ILog logger = Pointel.Logger.Core.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType, "AID"); 
            OutputValues output = OutputValues.GetInstance();
            try
            {
                RequestAddAgentStdRespFavorite requestAddAgentStdRespFavorite = new RequestAddAgentStdRespFavorite();
                requestAddAgentStdRespFavorite.StandardResponse = stdResponse;
                // requestAddFavouriteResponse.Name = stdName;
                // string strAgentID = "1001";
                int? agentid = int.Parse(agentId.ToString());
                requestAddAgentStdRespFavorite.AgentId = agentid;
                // requestAddFavouriteResponse.Name = stdResponse;
                // requestAddFavouriteResponse.Name = name;
                if (Settings.UCSProtocol != null && Settings.UCSProtocol.State == ChannelState.Opened)
                {
                    logger.Info("------------AddAgentFavoriteResponse-------------");
                    logger.Info("StandardResponse  :" + stdResponse);
                    logger.Info("AgentId    :" + agentId);
                    logger.Info("-------------------------------------------------");
                    IMessage response = Settings.UCSProtocol.Request(requestAddAgentStdRespFavorite);
                    if (response != null)
                    {
                        logger.Trace(response.ToString());
                        output.IContactMessage = response;
                        output.MessageCode = "200";
                        output.Message = "Add Agent Standard Response Favorite Successful";
                    }
                    else
                    {
                        output.IContactMessage = null;
                        output.MessageCode = "2001";
                        output.Message = "Don't Add Agent Standard Response Favorite.";
                    }
                }
                else
                {
                    output.IContactMessage = null;
                    output.MessageCode = "2001";
                    output.Message = "Universal Contact Server protocol is Null or Closed";
                    logger.Warn("AddAgentFavoriteResponse() : Universal Contact Server protocol is Null..");
                }
            }
            catch (Exception generalException)
            {
                logger.Error("Error occurred while Add Agent Standard Response Favorite request " + generalException.ToString());
                output.IContactMessage = null;
                output.MessageCode = "2001";
                output.Message = generalException.Message;
            }
            return output;

        }
        public static OutputValues GetSnapshotInteractionsbyID(int proxyClientId, int snapshotID, int startFrom, int numberOfInteractions)
        {
            Pointel.Logger.Core.ILog logger = Pointel.Logger.Core.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType, "AID");

            OutputValues result = OutputValues.GetInstance();

            result.Message     = string.Empty;
            result.MessageCode = string.Empty;
            result.ErrorCode   = 0;

            try
            {
                RequestGetSnapshotInteractions requestGetSnapshotInteractions = RequestGetSnapshotInteractions.Create();
                requestGetSnapshotInteractions.ProxyClientId        = proxyClientId;
                requestGetSnapshotInteractions.SnapshotId           = snapshotID;
                requestGetSnapshotInteractions.StartFrom            = startFrom;
                requestGetSnapshotInteractions.NumberOfInteractions = numberOfInteractions;

                if (Settings.InteractionProtocol != null && (Settings.InteractionProtocol.State == ChannelState.Opened || Settings.InteractionProtocol.State == ChannelState.Opening))
                {
                    IMessage response = Settings.InteractionProtocol.Request(requestGetSnapshotInteractions);
                    if (response != null)
                    {
                        if (response.Name != EventError.MessageName)
                        {
                            result.MessageCode = "200";
                            result.Message     = " EventSnapshotInteractions received";;
                            result.IMessage    = response;
                        }
                        else
                        {
                            result.MessageCode = "2001";
                            result.Message     = "Event error occurred while getting snapshot interactions from interaction server";
                            result.IMessage    = response;
                        }
                    }
                }
                else
                {
                    result.MessageCode = "2001";
                    result.Message     = "Interaction Server protocol not initialized or not in open state";
                }
            }
            catch (Exception generalException)
            {
                logger.Error("Error occurred while getting snapshot interactions" + generalException.ToString());
                result.MessageCode = "2001";
                result.Message     = generalException.Message;
            }
            return(result);
        }
        public static OutputValues TakeSnapshotID(int proxyClientId, string condition)
        {
            Pointel.Logger.Core.ILog logger = Pointel.Logger.Core.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType, "AID");
            OutputValues             result = OutputValues.GetInstance();

            result.Message     = string.Empty;
            result.MessageCode = string.Empty;
            result.ErrorCode   = 0;

            try
            {
                RequestTakeSnapshot requestTakeSnapshot = RequestTakeSnapshot.Create();
                requestTakeSnapshot.CheckInteractionsState = false;
                requestTakeSnapshot.Condition     = condition;
                requestTakeSnapshot.Lock          = false;
                requestTakeSnapshot.ProxyClientId = proxyClientId;

                if (Settings.InteractionProtocol != null && Settings.InteractionProtocol.State == ChannelState.Opened)
                {
                    IMessage response = Settings.InteractionProtocol.Request(requestTakeSnapshot);
                    if (response != null)
                    {
                        if (response.Name != EventError.MessageName)
                        {
                            result.MessageCode = "200";
                            result.Message     = "EventSnapshotTaken received";
                            result.IMessage    = response;
                        }
                        else
                        {
                            result.MessageCode = "2001";
                            result.Message     = "Event error occurred while request workbin type information from interaction server";
                            result.IMessage    = response;
                        }
                    }
                }
                else
                {
                    result.MessageCode = "2001";
                    result.Message     = "Interaction Server protocol not initialized or not in open state";
                }
            }
            catch (Exception generalException)
            {
                logger.Error("Error occurred while transfer the interaction" + generalException.ToString());
                result.MessageCode = "2001";
                result.Message     = generalException.Message;
            }
            return(result);
        }
        /// <summary>
        /// Gets the interactions count.
        /// </summary>
        /// <param name="mediaType">Type of the media.</param>
        /// <returns></returns>
        public static OutputValues GetInteractionsCount(string mediaType)
        {
            Pointel.Logger.Core.ILog logger = Pointel.Logger.Core.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType, "AID");
            OutputValues             output = OutputValues.GetInstance();

            try
            {
                RequestGetInteractionsWithStatus requestGetInteractionsWithStatus = new RequestGetInteractionsWithStatus();
                requestGetInteractionsWithStatus.MediaType          = mediaType;
                requestGetInteractionsWithStatus.InteractionType    = "Inbound";
                requestGetInteractionsWithStatus.InteractionSubtype = "InboundNew";
                requestGetInteractionsWithStatus.Status             = new Genesyslab.Platform.Contacts.Protocols.ContactServer.NullableStatuses(Statuses.InProcess);
                if (Settings.UCSProtocol != null && Settings.UCSProtocol.State == ChannelState.Opened)
                {
                    logger.Info("--------GetInteractionsCount---------");
                    logger.Info("MediaType    :" + mediaType);
                    logger.Info("-------------------------------------");
                    IMessage response = Settings.UCSProtocol.Request(requestGetInteractionsWithStatus);
                    if (response != null)
                    {
                        logger.Trace(response.ToString());
                        output.IContactMessage = response;
                        output.MessageCode     = "200";
                        output.Message         = "Get Interaction Count Successful";
                    }
                    else
                    {
                        output.IContactMessage = null;
                        output.MessageCode     = "2001";
                        output.Message         = "Don't Get Interaction Count Successful";
                    }
                }
                else
                {
                    output.IContactMessage = null;
                    output.MessageCode     = "2001";
                    output.Message         = "Universal Contact Server protocol is Null or Closed";
                    logger.Warn("GetInteractionsCount() : Universal Contact Server protocol is Null..");
                }
            }
            catch (Exception generalException)
            {
                logger.Error("Error Occurred while Get Interaction Count request" + generalException.ToString());
                output.IContactMessage = null;
                output.MessageCode     = "2001";
                output.Message         = generalException.Message;
            }
            return(output);
        }
Example #13
0
 /// <summary>
 /// Deletes the case information.
 /// </summary>
 /// <param name="interactionid">The interactionid.</param>
 /// <param name="keyvalues">The keyvalues.</param>
 /// <returns></returns>
 public static Pointel.Interactions.Chat.Core.General.OutputValues DeleteCaseInformation(string interactionId, int proxyClientID, Genesyslab.Platform.Commons.Collections.KeyValueCollection keyvalues)
 {
     Pointel.Logger.Core.ILog logger = Pointel.Logger.Core.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType, "AID");
     Pointel.Interactions.Chat.Core.General.OutputValues output = Pointel.Interactions.Chat.Core.General.OutputValues.GetInstance();
     try
     {
         Genesyslab.Platform.OpenMedia.Protocols.InteractionServer.Requests.InteractionManagement.RequestChangeProperties deletedProperties = Genesyslab.Platform.OpenMedia.Protocols.InteractionServer.Requests.InteractionManagement.RequestChangeProperties.Create();
         deletedProperties.InteractionId = interactionId;
         deletedProperties.ProxyClientId = proxyClientID;
         if (keyvalues != null)
         {
             deletedProperties.DeletedProperties = keyvalues;
         }
         if (Pointel.Interactions.Chat.Core.Util.Settings.IxnServerProtocol != null && Pointel.Interactions.Chat.Core.Util.Settings.IxnServerProtocol.State == Genesyslab.Platform.Commons.Protocols.ChannelState.Opened)
         {
             Genesyslab.Platform.Commons.Protocols.IMessage response = Pointel.Interactions.Chat.Core.Util.Settings.IxnServerProtocol.Request(deletedProperties);
             if (response.Id == Genesyslab.Platform.OpenMedia.Protocols.InteractionServer.Events.EventPropertiesChanged.MessageId || response.Id == Genesyslab.Platform.OpenMedia.Protocols.InteractionServer.Events.EventAck.MessageId)
             {
                 logger.Info("------------DeleteCaseInformation-------------");
                 logger.Info("InteractionId  :" + interactionId);
                 logger.Info("ProxyClientId    :" + proxyClientID);
                 logger.Info("KVC : " + keyvalues.ToString());
                 logger.Info("AddCaseInformation : response :" + response.ToString());
                 logger.Info("---------------------------------------------");
                 logger.Trace(response.ToString());
                 output.MessageCode = "200";
                 output.Message     = "Delete Case Information Successful";
             }
             else
             {
                 logger.Trace(response.ToString());
                 output.MessageCode = "2001";
                 output.Message     = "Add Properties UnSuccessful";
             }
         }
         else
         {
             logger.Warn("AddCaseInformation() : Interaction Server Protocol is Null..");
         }
     }
     catch (Exception generalException)
     {
         logger.Error("Error occurred while doing Add Case Information:" + generalException.ToString());
         output.MessageCode = "2001";
         output.Message     = generalException.Message;
     }
     return(output);
 }
        /// <summary>
        /// Removes the attach document.
        /// </summary>
        /// <param name="interactionId">The interaction identifier.</param>
        /// <param name="documentId">The document identifier.</param>
        /// <returns></returns>
        public static OutputValues RemoveAttachDocument(string interactionId, string documentId)
        {
            Pointel.Logger.Core.ILog logger = Pointel.Logger.Core.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType, "AID");
            OutputValues             output = OutputValues.GetInstance();

            try
            {
                RequestRemoveDocument requestRemoveDocument = new RequestRemoveDocument();
                requestRemoveDocument.InteractionId = interactionId;
                requestRemoveDocument.DocumentId    = documentId;
                if (Settings.UCSProtocol != null && Settings.UCSProtocol.State == ChannelState.Opened)
                {
                    logger.Info("--------RemoveAttachDocument------------");
                    logger.Info("InteractionId    :" + interactionId);
                    logger.Info("DocumentId    :" + documentId);
                    logger.Info("----------------------------------------");
                    IMessage response = Settings.UCSProtocol.Request(requestRemoveDocument);
                    if (response != null)
                    {
                        logger.Trace(response.ToString());
                        output.IContactMessage = response;
                        output.MessageCode     = "200";
                        output.Message         = "Remove Attach Document Successful";
                    }
                    else
                    {
                        output.IContactMessage = null;
                        output.MessageCode     = "2001";
                        output.Message         = "Don't Remove Attach Document Successful";
                    }
                }
                else
                {
                    output.IContactMessage = null;
                    output.MessageCode     = "2001";
                    output.Message         = "Universal Contact Server protocol is Null or Closed";
                    logger.Warn("RemoveAttachDocument() : Universal Contact Server protocol is Null..");
                }
            }
            catch (Exception generalException)
            {
                logger.Error("Error Occurred while Remove Attach Document request" + generalException.ToString());
                output.IContactMessage = null;
                output.MessageCode     = "2001";
                output.Message         = generalException.Message;
            }
            return(output);
        }
        /// <summary>
        /// Gets the content of the response.
        /// </summary>
        /// <param name="tenantID">The tenant unique identifier.</param>
        /// <returns></returns>
        public static OutputValues GetResponseContent(int tenantID)
        {
            Pointel.Logger.Core.ILog logger = Pointel.Logger.Core.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType, "AID");
            OutputValues             output = OutputValues.GetInstance();

            try
            {
                logger.Debug("Getting the AllAttributes from the UCS server");
                RequestGetAllCategories getAllCategories = new RequestGetAllCategories();
                getAllCategories.TenantId = tenantID;
                getAllCategories.Language = "English";
                if (Settings.UCSProtocol != null && Settings.UCSProtocol.State == ChannelState.Opened)
                {
                    logger.Info("--------GetResponseContent---------");
                    logger.Info("TenantId    :" + tenantID);
                    logger.Info("-----------------------------------");
                    IMessage response = Settings.UCSProtocol.Request(getAllCategories);
                    if (response != null)
                    {
                        logger.Trace(response.ToString());
                        output.IContactMessage = response;
                        output.MessageCode     = "200";
                        output.Message         = "Get  All Response Content Successful";
                    }
                    else
                    {
                        output.IContactMessage = null;
                        output.MessageCode     = "2001";
                        output.Message         = "Don't Get All Response Content Successful";
                    }
                }
                else
                {
                    output.IContactMessage = null;
                    output.MessageCode     = "2001";
                    output.Message         = "Universal Contact Server protocol is Null or Closed";
                    logger.Warn("GetResponseContent() : Universal Contact Server protocol is Null..");
                }
            }
            catch (Exception ex)
            {
                output.IContactMessage = null;
                output.Message         = "Error occurred while get all standard response ";
                output.MessageCode     = "2001";
                logger.Error("GetResponseContent()" + ex.ToString());
            }
            return(output);
        }
        public static OutputValues IdentifyContact(string mediaType, int tenantId, KeyValueCollection userData)
        {
            Pointel.Logger.Core.ILog logger = Pointel.Logger.Core.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType, "AID");
            OutputValues             output = OutputValues.GetInstance();

            try
            {
                RequestIdentifyContact requestIdentifyContact = RequestIdentifyContact.Create();
                requestIdentifyContact.TenantId      = tenantId;
                requestIdentifyContact.MediaType     = mediaType;
                requestIdentifyContact.CreateContact = true;
                requestIdentifyContact.OtherFields   = userData;
                logger.Info("------------RequestIdentifyContact-------------");
                logger.Info(requestIdentifyContact.ToString());
                if (Settings.UCSProtocol != null && Settings.UCSProtocol.State == ChannelState.Opened)
                {
                    IMessage message = Settings.UCSProtocol.Request(requestIdentifyContact);
                    if (message != null)
                    {
                        logger.Trace(message.ToString());
                        output.IContactMessage = message;
                        output.MessageCode     = "200";
                        output.Message         = "Identify Contact Successfully";
                    }
                    else
                    {
                        output.IContactMessage = null;
                        output.MessageCode     = "2001";
                        output.Message         = "Don't Identify Contact Successfully";
                    }
                }
                else
                {
                    output.IContactMessage = null;
                    output.MessageCode     = "2001";
                    output.Message         = "Universal Contact Server protocol is Null or Closed";
                    logger.Warn("RequestToIdentifyContact() : Contact Server protocol is Null..");
                }
            }
            catch (Exception generalException)
            {
                logger.Error("Error occurred while Request To Identify Contact " + generalException.ToString());
                output.IContactMessage = null;
                output.MessageCode     = "2001";
                output.Message         = generalException.Message;
            }
            return(output);
        }
        public static OutputValues RequestInsertContact(int tenantId, AttributesList attribute)
        {
            Pointel.Logger.Core.ILog logger = Pointel.Logger.Core.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType, "AID");
            OutputValues             output = OutputValues.GetInstance();

            try
            {
                RequestInsert reqInsertContact = new RequestInsert();
                reqInsertContact.TenantId   = tenantId;
                reqInsertContact.Attributes = attribute;
                if (Settings.UCSProtocol != null && Settings.UCSProtocol.State == ChannelState.Opened)
                {
                    logger.Info("------------RequestInsertContact-------------");
                    logger.Info("Tenant ID  : " + tenantId);
                    logger.Info("---------------------------------------------------");
                    IMessage message = Settings.UCSProtocol.Request(reqInsertContact);
                    if (message != null)
                    {
                        logger.Trace(message.ToString());
                        output.IContactMessage = message;
                        output.MessageCode     = "200";
                        output.Message         = "Contact Inserted Successfully";
                    }
                    else
                    {
                        output.IContactMessage = null;
                        output.MessageCode     = "2001";
                        output.Message         = "Can't Insert Contact Successfully";
                    }
                }
                else
                {
                    output.IContactMessage = null;
                    output.MessageCode     = "2001";
                    output.Message         = "Universal Contact Server protocol is Null or Closed";
                    logger.Warn("RequestDeleteContact() : Contact Server protocol is Null..");
                }
            }
            catch (Exception generalException)
            {
                logger.Error("Error occurred while Insert Contact " + generalException.ToString());
                output.MessageCode = "2001";
                output.Message     = generalException.Message;
            }

            return(output);
        }
 /// <summary>
 /// Joins the consult chat session.
 /// </summary>
 /// <param name="sessionID">The session unique identifier.</param>
 /// <param name="subject">The subject.</param>
 /// <param name="message">The message.</param>
 /// <param name="userData">The user data.</param>
 /// <returns></returns>
 public static Pointel.Interactions.Chat.Core.General.OutputValues JoinConsultChatSession(string sessionID, string subject, string message, Genesyslab.Platform.Commons.Collections.KeyValueCollection userData)
 {
     Pointel.Logger.Core.ILog logger = Pointel.Logger.Core.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType, "AID");
     Pointel.Interactions.Chat.Core.General.OutputValues output = Pointel.Interactions.Chat.Core.General.OutputValues.GetInstance();
     try
     {
         Genesyslab.Platform.WebMedia.Protocols.BasicChat.Requests.RequestJoin requestJoinChat = Genesyslab.Platform.WebMedia.Protocols.BasicChat.Requests.RequestJoin.Create();
         Genesyslab.Platform.WebMedia.Protocols.BasicChat.MessageText          newMessageText  = Genesyslab.Platform.WebMedia.Protocols.BasicChat.MessageText.Create();
         newMessageText.Text         = message;
         requestJoinChat.MessageText = newMessageText;
         requestJoinChat.SessionId   = sessionID;
         requestJoinChat.UserData    = userData;
         requestJoinChat.Visibility  = Genesyslab.Platform.WebMedia.Protocols.BasicChat.Visibility.Int;
         requestJoinChat.Subject     = subject;
         if (Pointel.Interactions.Chat.Core.Util.Settings.ChatProtocol != null && Pointel.Interactions.Chat.Core.Util.Settings.ChatProtocol.State == Genesyslab.Platform.Commons.Protocols.ChannelState.Opened)
         {
             Genesyslab.Platform.Commons.Protocols.IMessage iMessage = Pointel.Interactions.Chat.Core.Util.Settings.ChatProtocol.Request(requestJoinChat);
             if (iMessage != null)
             {
                 logger.Info("------------JoinConsultChatSession-------------");
                 logger.Info("SessionID  :" + sessionID);
                 logger.Info("subject    :" + subject);
                 logger.Info("MessageText:" + message);
                 logger.Info("----------------------------------------");
                 logger.Trace(iMessage.ToString());
                 output.RequestJoinIMessage = iMessage;
                 output.MessageCode         = "200";
                 output.Message             = "Join Consult Chat Session Successful";
             }
             else
             {
                 logger.Warn("JoinConsultChatSession() : IMessage is Null..");
             }
         }
         else
         {
             logger.Warn("JoinConsultChatSession() : Interaction Server protocol is Null..");
         }
     }
     catch (Exception generalException)
     {
         logger.Error("Error occurred while Join the consult chat session request " + generalException.ToString());
         output.MessageCode = "2001";
         output.Message     = generalException.Message;
     }
     return(output);
 }
Example #19
0
        /// <summary>
        /// Gets the standard response.
        /// </summary>
        /// <param name="standardresponseId">The standard response identifier.</param>
        /// <returns></returns>
        public static OutputValues GetStandardResponse(string standardresponseId)
        {
            Pointel.Logger.Core.ILog logger = Pointel.Logger.Core.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType, "AID");
            OutputValues             output = OutputValues.GetInstance();

            try
            {
                RequestGetStandardResponse requestGetStandardResponse = new RequestGetStandardResponse();
                requestGetStandardResponse.StandardResponseId = standardresponseId;
                if (Settings.UCSProtocol != null && Settings.UCSProtocol.State == ChannelState.Opened)
                {
                    logger.Info("--------GetStandardResponse------------");
                    logger.Info("StandardResponseId    :" + standardresponseId);
                    logger.Info("---------------------------------------");
                    IMessage message = Settings.UCSProtocol.Request(requestGetStandardResponse);
                    if (message != null)
                    {
                        logger.Trace(message.ToString());
                        output.IContactMessage = message;
                        output.MessageCode     = "200";
                        output.Message         = "Get Standard Response Successful";
                    }
                    else
                    {
                        output.IContactMessage = null;
                        output.MessageCode     = "2001";
                        output.Message         = "Don't Get Standard Response Successful";
                    }
                }
                else
                {
                    output.IContactMessage = null;
                    output.MessageCode     = "2001";
                    output.Message         = "Universal Contact Server protocol is Null or Closed";
                    logger.Warn("GetStandardResponse() : Universal Contact Server protocol is Null..");
                }
            }
            catch (Exception generalException)
            {
                logger.Error("Error Occurred while Get Standard Response request" + generalException.ToString());
                output.IContactMessage = null;
                output.MessageCode     = "2001";
                output.Message         = generalException.Message;
            }
            return(output);
        }
Example #20
0
        /// <summary>
        /// Deletes the interaction from ucs.
        /// </summary>
        /// <param name="interactionID">The interaction unique identifier.</param>
        /// <returns></returns>
        public static OutputValues DeleteInteractionFromUCS(string interactionID)
        {
            Pointel.Logger.Core.ILog logger = Pointel.Logger.Core.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType, "AID");
            OutputValues             output = OutputValues.GetInstance();

            try
            {
                RequestDeleteInteraction requestDeleteInteraction = new RequestDeleteInteraction();
                requestDeleteInteraction.InteractionId = interactionID;
                if (Settings.UCSProtocol != null && Settings.UCSProtocol.State == ChannelState.Opened)
                {
                    logger.Info("--------DeleteInteractionFromUCS------------");
                    logger.Info("InteractionId    :" + interactionID);
                    logger.Info("--------------------------------------------");
                    IMessage response = Settings.UCSProtocol.Request(requestDeleteInteraction);
                    if (response != null)
                    {
                        logger.Trace(response.ToString());
                        output.IContactMessage = response;
                        output.MessageCode     = "200";
                        output.Message         = "Delete Interaction from UCS Successful";
                    }
                    else
                    {
                        output.IContactMessage = null;
                        output.MessageCode     = "2001";
                        output.Message         = "Delete Interaction from UCS UnSuccessful";
                    }
                }
                else
                {
                    output.IContactMessage = null;
                    output.MessageCode     = "2001";
                    output.Message         = "Universal Contact Server protocol is Null or Closed";
                    logger.Warn("DeleteInteractionFromUCS() : Universal Contact Server protocol is Null..");
                }
            }
            catch (Exception generalException)
            {
                logger.Error("Error Occurred while Delete Interaction from UCS" + generalException.ToString());
                output.IContactMessage = null;
                output.MessageCode     = "2001";
                output.Message         = generalException.Message;
            }
            return(output);
        }
        /// <summary>
        /// Reads the application level server details.
        /// </summary>
        /// <param name="applicationName">Name of the application.</param>
        /// <returns>CfgApplication.</returns>
        private static CfgApplication ReadApplicationLevelServerDetails(string applicationName)
        {
            Pointel.Logger.Core.ILog logger      = Pointel.Logger.Core.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType, "AID");
            CfgApplication           application = null;

            try
            {
                application = new CfgApplication(EmailDataContext.GetInstance().ConfigurationServer);
                CfgApplicationQuery queryApp = new CfgApplicationQuery();
                queryApp.Name = applicationName;
                application   = EmailDataContext.GetInstance().ConfigurationServer.RetrieveObject <CfgApplication>(queryApp);
            }
            catch (Exception generalException)
            {
                logger.Error("Error Occurred while reading : ReadApplicationLevelServerDetails() " + applicationName + "=" + generalException.ToString());
            }
            return(application);
        }
        /// <summary>
        /// Gets the email ids from bussiness attribute.
        /// </summary>
        /// <param name="applicationName">Name of the application.</param>
        private static void getEmailIDsFromBussinessAttribute(string applicationName)
        {
            Pointel.Logger.Core.ILog logger        = Pointel.Logger.Core.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType, "AID");
            EmailDataContext.GetInstance().MailBox = new List <FromAddresses>();
            try
            {
                CfgEnumeratorQuery businessAttributeQuery = new CfgEnumeratorQuery();
                businessAttributeQuery.Name       = applicationName;
                businessAttributeQuery.TenantDbid = ConfigContainer.Instance().TenantDbId;

                var businessAttribute = EmailDataContext.GetInstance().ConfigurationServer.RetrieveObject <CfgEnumerator>(businessAttributeQuery);
                if (businessAttribute != null)
                {
                    CfgEnumeratorValueQuery attributeValuesQuery = new CfgEnumeratorValueQuery();
                    attributeValuesQuery.EnumeratorDbid = businessAttribute.DBID;
                    EmailDataContext.GetInstance().ConfigurationServer.BeginRetrieveMultipleObjects(attributeValuesQuery, DataCallBack, null);
                }
            }
            catch (Exception generalException)
            {
                logger.Error("Error Occurred while reading : getEmailServerFromAIDConnectionTab() " + applicationName + "=" + generalException.ToString());
            }
        }
        /// <summary>
        /// Gets from address.
        /// </summary>
        /// <returns>List<System.String></returns>
        public static void GetFromAddress()
        {
            Pointel.Logger.Core.ILog logger = Pointel.Logger.Core.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType, "AID");
            try
            {
                // Get Email Server Application Name
                string emailServerAddress = (ConfigContainer.Instance().AllKeys.Contains("email.from-address") ? (string)ConfigContainer.Instance().GetValue("email.from-address") : string.Empty);
                if (string.IsNullOrEmpty(emailServerAddress) || emailServerAddress.ToLower().Trim().Equals("$emailserver$"))
                {
                    getEmailIDsFromConnectionTab(EmailDataContext.GetInstance().ApplicationName);
                }
                else
                {
                    getEmailIDsFromBussinessAttribute(ConfigContainer.Instance().GetAsString("email.from-address"));
                }

                logger.Info(emailServerAddress);
            }
            catch (Exception ex)
            {
                logger.Error("Error Occurred while reading : GetFromAddress() " + ex.ToString());
            }
        }
 /// <summary>
 /// Sends the type start notification.
 /// </summary>
 /// <param name="sessionID">The session unique identifier.</param>
 /// <param name="noticeText">The notice text.</param>
 /// <param name="chatProtocol">The chat protocol.</param>
 /// <returns></returns>
 public static Pointel.Interactions.Chat.Core.General.OutputValues SendTypeStartNotification(string sessionID, string noticeText)
 {
     Pointel.Logger.Core.ILog logger = Pointel.Logger.Core.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType, "AID");
     Pointel.Interactions.Chat.Core.General.OutputValues output = Pointel.Interactions.Chat.Core.General.OutputValues.GetInstance();
     try
     {
         Genesyslab.Platform.WebMedia.Protocols.BasicChat.Requests.RequestNotify requestNotify = Genesyslab.Platform.WebMedia.Protocols.BasicChat.Requests.RequestNotify.Create();
         requestNotify.SessionId = sessionID;
         Genesyslab.Platform.WebMedia.Protocols.BasicChat.NoticeText newNoticeText = Genesyslab.Platform.WebMedia.Protocols.BasicChat.NoticeText.Create();
         newNoticeText.NoticeType = Genesyslab.Platform.WebMedia.Protocols.NoticeType.TypingStarted;
         newNoticeText.Text       = noticeText;
         requestNotify.NoticeText = newNoticeText;
         requestNotify.Visibility = Genesyslab.Platform.WebMedia.Protocols.BasicChat.Visibility.All;
         if (Pointel.Interactions.Chat.Core.Util.Settings.ChatProtocol != null && Pointel.Interactions.Chat.Core.Util.Settings.ChatProtocol.State == Genesyslab.Platform.Commons.Protocols.ChannelState.Opened)
         {
             Pointel.Interactions.Chat.Core.Util.Settings.ChatProtocol.Send(requestNotify);
             logger.Info("------------Send Type Start Notification-------------");
             logger.Info("SessionID      :" + sessionID);
             logger.Info("NoticeText     :" + noticeText);
             logger.Info("----------------------------------------");
             logger.Info(requestNotify.ToString());
             output.MessageCode = "200";
             output.Message     = "Send Type Start Notification Successful";
         }
         else
         {
             logger.Warn("SendTypeStartNotification() : Basic Chat Protocol is Null..");
         }
     }
     catch (Exception generalException)
     {
         logger.Error("Error occurred while Send Type Start Notification request " + generalException.ToString());
         output.MessageCode = "2001";
         output.Message     = generalException.Message;
     }
     return(output);
 }
 /// <summary>
 /// Stops the interaction process.
 /// </summary>
 /// <param name="stopInteractionId">The stop interaction identifier.</param>
 /// <param name="proxyId">The proxy identifier.</param>
 /// <returns></returns>
 public static Pointel.Interactions.Chat.Core.General.OutputValues StopInteractionProcess(string stopInteractionId, int proxyId)
 {
     Pointel.Logger.Core.ILog logger = Pointel.Logger.Core.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType, "AID");
     Pointel.Interactions.Chat.Core.General.OutputValues output = Pointel.Interactions.Chat.Core.General.OutputValues.GetInstance();
     try
     {
         Genesyslab.Platform.OpenMedia.Protocols.InteractionServer.Requests.InteractionManagement.RequestStopProcessing requestStopProcessing = Genesyslab.Platform.OpenMedia.Protocols.InteractionServer.Requests.InteractionManagement.RequestStopProcessing.Create();
         requestStopProcessing.InteractionId = stopInteractionId;
         requestStopProcessing.ProxyClientId = proxyId;
         Genesyslab.Platform.OpenMedia.Protocols.InteractionServer.ReasonInfo reasonInfo = Genesyslab.Platform.OpenMedia.Protocols.InteractionServer.ReasonInfo.Create();
         reasonInfo.ReasonSystemName  = "Stop Processing Reason Normal";
         reasonInfo.ReasonDescription = "Normal";
         requestStopProcessing.Reason = reasonInfo;
         logger.Info("Trying to Stop the interaction :" + stopInteractionId);
         if (Pointel.Interactions.Chat.Core.Util.Settings.IxnServerProtocol != null && Pointel.Interactions.Chat.Core.Util.Settings.IxnServerProtocol.State == Genesyslab.Platform.Commons.Protocols.ChannelState.Opened)
         {
             Pointel.Interactions.Chat.Core.Util.Settings.IxnServerProtocol.Send(requestStopProcessing);
             logger.Info("------------StopChatSession-------------");
             logger.Info("InteractionId  :" + stopInteractionId);
             logger.Info("ProxyClientId    :" + proxyId);
             logger.Info("------------------------------------------------");
             output.MessageCode = "200";
             output.Message     = "Stop Chat Session Successful";
         }
         else
         {
             logger.Warn("StopInteractionProcess() : Interaction Server protocol is Null..");
         }
     }
     catch (Exception generalException)
     {
         logger.Error("Error occurred while Stop Chat Interaction request " + generalException.ToString());
         output.MessageCode = "2001";
         output.Message     = generalException.Message;
     }
     return(output);
 }
Example #26
0
        /// <summary>
        /// Gets the recent interaction list.
        /// </summary>
        /// <param name="universalContactServerProtocol">The universal contact server protocol.</param>
        /// <param name="mediaType">Type of the media.</param>
        /// <param name="interactionID">The interaction unique identifier.</param>
        /// <returns></returns>
        public static IMessage GetInteractionContent(string interactionID, bool isAttachments)
        {
            Pointel.Logger.Core.ILog logger = Pointel.Logger.Core.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType, "AID");
            IMessage message = null;

            try
            {
                RequestGetInteractionContent requestGetInteractionContent = RequestGetInteractionContent.Create();
                requestGetInteractionContent.InteractionId      = interactionID;
                requestGetInteractionContent.IncludeAttachments = isAttachments;
                if (Settings.UCSProtocol != null && Settings.UCSProtocol.State == ChannelState.Opened)
                {
                    logger.Info("------------RequestToGetInteractionContent-------------");
                    logger.Info("InteractionId  :" + interactionID);
                    logger.Info("-------------------------------------------------------");
                    message = Settings.UCSProtocol.Request(requestGetInteractionContent);
                    if (message != null)
                    {
                        logger.Trace(message.ToString());
                    }
                    else
                    {
                        logger.Trace("null response from RequestGetInteractionContent");
                    }
                }
                else
                {
                    logger.Warn("Universal Contact Server protocol is Null or Closed");
                }
            }
            catch (Exception generalException)
            {
                logger.Error("Error occurred while sending Request Get Interaction Content as : " + generalException.ToString());
            }
            return(message);
        }
Example #27
0
 public HimmsSubscriber(HimmsIntegrationData objHimmsIntegrationData)
 {
     _logger = Pointel.Logger.Core.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType,
                                                        "AID");
     _himmsConfiguration = objHimmsIntegrationData;
 }
 public IQHelper()
 {
     _logger = Pointel.Logger.Core.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType, "AID");
 }
 public void Dispose()
 {
     _logger = null;
 }
        /// <summary>
        /// Gets the contacts.
        /// </summary>
        /// <param name="contactId">The contact identifier.</param>
        /// <param name="media">The media.</param>
        /// <param name="tenantId">The tenant identifier.</param>
        /// <returns></returns>
        public static OutputValues GetContacts(SearchCriteriaCollection searchCriteriaCollection, string contactID, int tenantId, int pagemaxSize, List <string> attributesNames)
        {
            Pointel.Logger.Core.ILog logger = Pointel.Logger.Core.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType, "AID");
            OutputValues             output = OutputValues.GetInstance();

            try
            {
                RequestGetInteractionsForContact requestGetContacts = RequestGetInteractionsForContact.Create();
                requestGetContacts.DataSource   = new NullableDataSourceType(DataSourceType.Main);
                requestGetContacts.SortCriteria = new SortCriteriaCollection();
                SortCriteriaCollection sortCC = new SortCriteriaCollection();
                SortCriteria           sortc  = new SortCriteria()
                {
                    AttrName = InteractionSearchCriteriaConstants.StartDate, SortOperator = new NullableSortMode(SortMode.Descending), SortIndex = 0
                };
                sortCC.Add(sortc);
                requestGetContacts.SortCriteria   = sortCC;
                requestGetContacts.SearchCriteria = searchCriteriaCollection;
                StringList stringList = new StringList();
                if (attributesNames != null && attributesNames.Count > 0)
                {
                    for (int index = 0; index < attributesNames.Count; index++)
                    {
                        stringList.Add(attributesNames[index]);
                    }
                }
                requestGetContacts.AttributeList = stringList;
                requestGetContacts.TenantId      = tenantId;
                requestGetContacts.ContactId     = contactID;
                if (Settings.UCSProtocol != null && Settings.UCSProtocol.State == ChannelState.Opened)
                {
                    logger.Info("---------------------------------------------------------");
                    IMessage message = Settings.UCSProtocol.Request(requestGetContacts);
                    if (message != null)
                    {
                        logger.Trace(message.ToString());
                        output.IContactMessage = message;
                        output.MessageCode     = "200";
                        output.Message         = "Get Interactions For Contact Successful";
                    }
                    else
                    {
                        output.IContactMessage = null;
                        output.MessageCode     = "2001";
                        output.Message         = "Don't Get Interactions For Contact Successful";
                    }
                }
                else
                {
                    output.IContactMessage = null;
                    output.MessageCode     = "2001";
                    output.Message         = "Universal Contact Server protocol is Null or Closed";
                    logger.Warn("GetContacts() : Universal Contact Server protocol is Null..");
                }
            }
            catch (Exception generalException)
            {
                logger.Error("Error Occurred while Get Interactions For Contact request" + generalException.ToString());
                output.IContactMessage = null;
                output.MessageCode     = "2001";
                output.Message         = generalException.Message;
            }
            return(output);
        }