Beispiel #1
0
 /// <summary>
 /// Does the email accept.
 /// </summary>
 public void DoEmailAccept()
 {
     try
     {
         Dispatcher.Invoke(new Action(() =>
         {
             //if (!EmailNotifier.needPerformAccept)
             //    return;
             //EmailNotifier.needPerformAccept = false;
             InteractionService interactionService = new InteractionService();
             Pointel.Interactions.Core.Common.OutputValues acceptInteraction = interactionService.AcceptInteraction(eventInvite.TicketId, eventInvite.Interaction.InteractionId, eventInvite.ProxyClientId);
             if (acceptInteraction.MessageCode == "200")
             {
                 EmailMainWindow emailMainWindow = new EmailMainWindow(eventInvite, FirstName, LastName);
                 emailMainWindow.Show();
                 if (!ConfigContainer.Instance().AllKeys.Contains("email.enable.auto-answer") ||
                     (ConfigContainer.Instance().AllKeys.Contains("email.enable.auto-answer") &&
                      ((string)ConfigContainer.Instance().GetValue("email.enable.auto-answer")).ToLower().Equals("false")))
                 {
                     HideWidow();
                 }
             }
         }));
     }
     catch (Exception ex)
     {
         logger.Error("Error occurred as " + ex.ToString());
     }
 }
Beispiel #2
0
 /// <summary>
 /// Handles the Click event of the btnReject control.
 /// </summary>
 /// <param name="sender">The source of the event.</param>
 /// <param name="e">The <see cref="RoutedEventArgs"/> instance containing the event data.</param>
 private void btnReject_Click(object sender, RoutedEventArgs e)
 {
     if (isOnHandling)
     {
         return;
     }
     isOnHandling = true;
     try
     {
         //EmailNotifier.needPerformAccept = false;
         HideWidow();
         if (emailAutoAnswerThread != null)
         {
             emailAutoAnswerThread.Abort();
         }
         InteractionService interactionService = new InteractionService();
         Pointel.Interactions.Core.Common.OutputValues result = interactionService.RejectInteraction(eventInvite.TicketId, eventInvite.Interaction.InteractionId, eventInvite.ProxyClientId, eventInvite.Interaction.InteractionUserData);
         if (result.MessageCode == "200")
         {
             if (EmailDataContext.GetInstance().MessageToClientEmail != null)
             {
                 EmailDataContext.GetInstance().MessageToClientEmail.PluginInteractionStatus(PluginType.Workbin, IXNState.Closed, false);
             }
         }
     }
     catch (Exception ex)
     {
         logger.Error("Error occurred as +" + ex.ToString());
     }
     isOnHandling = false;
 }
Beispiel #3
0
        public static List <string> GetWorkbinList()
        {
            //try
            //{
            InteractionService service = new InteractionService();

            Pointel.Interactions.Core.Common.OutputValues result = service.GetWorkbin(ConfigContainer.Instance().TenantDbId, WorkbinUtility.Instance().IxnProxyID);
            List <string> list = new List <string>();

            if (result.MessageCode.Equals("200"))
            {
                EventWorkbinTypesInfo workbinType = result.IMessage as EventWorkbinTypesInfo;
                if (workbinType != null)
                {
                    foreach (string workbinName in workbinType.WorkbinTypes.AllKeys)
                    {
                        KeyValueCollection collection = workbinType.WorkbinTypes[workbinName] as KeyValueCollection;
                        if (collection != null && (int)collection["Active"] == 1)
                        {
                            list.Add(workbinName);
                        }
                    }
                }
            }
            return(list);

            //}
            //catch (Exception ex)
            //{
            //    throw ex;
            //}
        }
        /// <summary>
        /// Handles the Click event of the btnUpdate control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="RoutedEventArgs"/> instance containing the event data.</param>
        private void btnUpdate_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                isEditDone = true;
                DGCaseDataInfo.CancelEdit();
                var    selectedCallData = DGCaseDataInfo.SelectedItem as EmailCaseData;
                string key   = selectedCallData.Key;
                string value = selectedCallData.Value;
                if (CurrentData.ContainsKey(key))
                {
                    string originalValue = CurrentData[key].ToString();
                    if (value != originalValue)
                    {
                        KeyValueCollection caseData = new KeyValueCollection();
                        caseData.Add(key, value);
                        InteractionService interactionService = new InteractionService();
                        Pointel.Interactions.Core.Common.OutputValues result = interactionService.UpdateCaseDataProperties(interactionId, EmailDataContext.GetInstance().ProxyClientID, caseData);
                        if (result.MessageCode == "200")
                        {
                            CurrentData[key] = value;
                        }
                        caseData.Clear();
                    }
                }
                else
                {
                    KeyValueCollection caseData = new KeyValueCollection();
                    caseData.Add(key, value);
                    InteractionService interactionService = new InteractionService();
                    Pointel.Interactions.Core.Common.OutputValues result = interactionService.AddCaseDataProperties(interactionId, EmailDataContext.GetInstance().ProxyClientID, caseData);
                    if (result.MessageCode == "200")
                    {
                        CurrentData.Add(key, value);
                    }
                    caseData.Clear();
                }
                editingValue = editingKey = null;

                //  BindGrid();
            }
            catch (Exception commonException)
            {
                logger.Error("Error ocurred as " + commonException.Message);
            }
        }
 public bool NotifyEmailOpen(string interactionId)
 {
     try
     {
         KeyValueCollection kvpInteractionId = new KeyValueCollection();
         kvpInteractionId.Add("id", interactionId);
         InteractionService interactionServices = new InteractionService();
         Pointel.Interactions.Core.Common.OutputValues result = interactionServices.PullInteraction(ConfigContainer.Instance().TenantDbId, WorkbinUtility.Instance().IxnProxyID, kvpInteractionId);
         if (result.MessageCode.Equals("200"))
         {
             if (Pointel.Interactions.IPlugins.PluginCollection.GetInstance().PluginCollections.ContainsKey(Pointel.Interactions.IPlugins.Plugins.Email))
             {
                 ((IEmailPlugin)Pointel.Interactions.IPlugins.PluginCollection.GetInstance().PluginCollections[Pointel.Interactions.IPlugins.Plugins.Email]).NotifyEmailInteraction(result.IMessage);
                 return(true);
             }
         }
     }
     catch (Exception ex)
     {
         logger.Error("Error occurred as " + ex.Message);
     }
     return(false);
 }
 /// <summary>
 /// Handles the RowEditEnding event of the DGCaseDataInfo control.
 /// </summary>
 /// <param name="sender">The source of the event.</param>
 /// <param name="e">The <see cref="Microsoft.Windows.Controls.DataGridRowEditEndingEventArgs"/> instance containing the event data.</param>
 private void DGCaseDataInfo_RowEditEnding(object sender, Microsoft.Windows.Controls.DataGridRowEditEndingEventArgs e)
 {
     try
     {
         Microsoft.Windows.Controls.DataGridRow dgRow = e.Row;
         if (dgRow != null)
         {
             var    selectedCallData = dgRow.Item as EmailCaseData;
             string key   = selectedCallData.Key.ToString().Trim();
             string value = selectedCallData.Value.ToString().Trim();
             if (!isEditDone)
             {
                 isEditDone = true;
                 if (CurrentData.ContainsKey(key))
                 {
                     string originalValue = CurrentData[key].ToString();
                     if (value != originalValue)
                     {
                         KeyValueCollection caseData = new KeyValueCollection();
                         caseData.Add(key, value);
                         InteractionService interactionService = new InteractionService();
                         Pointel.Interactions.Core.Common.OutputValues result = interactionService.UpdateCaseDataProperties(interactionId, EmailDataContext.GetInstance().ProxyClientID, caseData);
                         if (result.MessageCode == "200")
                         {
                             CurrentData[key] = value;
                         }
                         caseData.Clear();
                     }
                 }
                 else
                 {
                     KeyValueCollection caseData = new KeyValueCollection();
                     caseData.Add(key, value);
                     InteractionService interactionService = new InteractionService();
                     Pointel.Interactions.Core.Common.OutputValues result = interactionService.AddCaseDataProperties(interactionId, EmailDataContext.GetInstance().ProxyClientID, caseData);
                     if (result.MessageCode == "200")
                     {
                         CurrentData.Add(key, value);
                     }
                     caseData.Clear();
                 }
                 return;
             }
             else
             {
                 if (CurrentData.ContainsKey(key))
                 {
                     string originalValue = CurrentData[key].ToString();
                     if (value != originalValue)
                     {
                         CurrentData.Remove(key);
                         CurrentData.Add(key, value);
                     }
                 }
                 else
                 {
                     CurrentData.Add(key, value);
                 }
             }
             ConvertUserData();
         }
     }
     catch (Exception ex)
     {
         logger.Error("dgCaseInfo_RowEditEnding: " + ex.Message);
     }
 }
        /// <summary>
        /// Notifies the disposition code event.
        /// </summary>
        /// <param name="mediaType">Type of the media.</param>
        /// <param name="data">The data.</param>
        public void NotifyDispositionCodeEvent(MediaTypes mediaType, DispositionData data)
        {
            try
            {
                if (mediaType == MediaTypes.Email)
                {
                    if (CurrentData.ContainsKey((ConfigContainer.Instance().AllKeys.Contains("interaction.disposition.key-name") ? (string)ConfigContainer.Instance().GetValue("interaction.disposition.key-name") : string.Empty)))
                    {
                        if (isFirstTimeCall)
                        {
                            isFirstTimeCall = false;
                            Dictionary <string, string> dispositionCode = new Dictionary <string, string>();
                            dispositionCode.Add(ConfigContainer.Instance().GetValue("interaction.disposition.key-name"),
                                                CurrentData[(ConfigContainer.Instance().GetValue("interaction.disposition.key-name"))]);
                            _dispositionUC.ReLoadDispositionCodes(dispositionCode, interactionId);
                        }
                        else
                        {
                            string originalValue = CurrentData[(ConfigContainer.Instance().AllKeys.Contains("interaction.disposition.key-name") ? (string)ConfigContainer.Instance().GetValue("interaction.disposition.key-name") : string.Empty)].ToString();
                            if (data.DispostionCode != originalValue)
                            {
                                KeyValueCollection caseData = new KeyValueCollection();
                                caseData.Add((ConfigContainer.Instance().AllKeys.Contains("interaction.disposition.key-name") ? (string)ConfigContainer.Instance().GetValue("interaction.disposition.key-name") : string.Empty), data.DispostionCode);
                                InteractionService service = new InteractionService();
                                Pointel.Interactions.Core.Common.OutputValues result = service.UpdateCaseDataProperties(interactionId, EmailDataContext.GetInstance().ProxyClientID, caseData);
                                if (result.MessageCode == "200")
                                {
                                    CurrentData[(ConfigContainer.Instance().AllKeys.Contains("interaction.disposition.key-name") ? (string)ConfigContainer.Instance().GetValue("interaction.disposition.key-name") : string.Empty)] = data.DispostionCode;
                                }
                                caseData.Clear();
                            }
                        }
                    }
                    else
                    {
                        KeyValueCollection caseData = new KeyValueCollection();
                        caseData.Add((ConfigContainer.Instance().AllKeys.Contains("interaction.disposition.key-name") ? (string)ConfigContainer.Instance().GetValue("interaction.disposition.key-name") : string.Empty), data.DispostionCode);
                        InteractionService service = new InteractionService();
                        Pointel.Interactions.Core.Common.OutputValues result = service.AddCaseDataProperties(interactionId, EmailDataContext.GetInstance().ProxyClientID, caseData);
                        if (result.MessageCode == "200")
                        {
                            CurrentData.Add((ConfigContainer.Instance().AllKeys.Contains("interaction.disposition.key-name") ? (string)ConfigContainer.Instance().GetValue("interaction.disposition.key-name") : string.Empty), data.DispostionCode);
                        }
                        caseData.Clear();
                    }

                    if (CurrentData.ContainsKey((ConfigContainer.Instance().AllKeys.Contains("interaction.disposition-collection.key-name") ? (string)ConfigContainer.Instance().GetValue("interaction.disposition-collection.key-name") : string.Empty)))
                    {
                        string originalValue = CurrentData[(ConfigContainer.Instance().AllKeys.Contains("interaction.disposition-collection.key-name") ? (string)ConfigContainer.Instance().GetValue("interaction.disposition-collection.key-name") : string.Empty)].ToString();
                        if (data.DispostionCode != originalValue)
                        {
                            string             result   = string.Join("; ", data.DispostionCollection.Select(x => string.Format("{0}:{1}", x.Key, x.Value)).ToArray());
                            KeyValueCollection caseData = new KeyValueCollection();
                            caseData.Add((ConfigContainer.Instance().AllKeys.Contains("interaction.disposition-collection.key-name") ? (string)ConfigContainer.Instance().GetValue("interaction.disposition-collection.key-name") : string.Empty), result);
                            InteractionService service = new InteractionService();
                            Pointel.Interactions.Core.Common.OutputValues output = service.UpdateCaseDataProperties(interactionId, EmailDataContext.GetInstance().ProxyClientID, caseData);
                            if (output.MessageCode == "200")
                            {
                                CurrentData[(ConfigContainer.Instance().AllKeys.Contains("interaction.disposition-collection.key-name") ? (string)ConfigContainer.Instance().GetValue("interaction.disposition-collection.key-name") : string.Empty)] = result;
                            }
                            caseData.Clear();
                        }
                    }
                    else
                    {
                        KeyValueCollection caseData = new KeyValueCollection();
                        string             result   = string.Join("; ", data.DispostionCollection.Select(x => string.Format("{0}:{1}", x.Key, x.Value)).ToArray());
                        caseData.Add((ConfigContainer.Instance().AllKeys.Contains("interaction.disposition-collection.key-name") ? (string)ConfigContainer.Instance().GetValue("interaction.disposition-collection.key-name") : string.Empty), result);
                        InteractionService service = new InteractionService();
                        Pointel.Interactions.Core.Common.OutputValues output = service.AddCaseDataProperties(interactionId, EmailDataContext.GetInstance().ProxyClientID, caseData);
                        if (output.MessageCode == "200")
                        {
                            CurrentData.Add((ConfigContainer.Instance().AllKeys.Contains("interaction.disposition-collection.key-name") ? (string)ConfigContainer.Instance().GetValue("interaction.disposition-collection.key-name") : string.Empty), result);
                        }
                        caseData.Clear();
                    }
                    ConvertUserData();
                }
            }
            catch (Exception generalException)
            {
                logger.Error("Error occurred as " + generalException.ToString());
            }
        }