Beispiel #1
0
        private void FireActions(string actionlist)
        {
            if (actionlist != null && actionlist != "" && actionlist != "::")
            {
                string[] actions = Regex.Split(actionlist, ",");
                //Array.Sort(actions, StringComparer.InvariantCulture);

                foreach (string action in actions)
                {
                    string actionid   = Regex.Split(action, "::")[0];
                    string actiontext = Regex.Split(action, "::")[1];

                    ScreenViewer.API.Elements.ActionController WAC = new API.Elements.ActionController();
                    var actionResult = WAC.GetScriptAction(Convert.ToDecimal(actionid));

                    ScriptAction scriptAction = null;
                    if (actionResult != null)
                    {
                        var response = actionResult as OkNegotiatedContentResult <ScriptAction>;
                        scriptAction = response.Content;
                    }
                    if (scriptAction != null)
                    {
                        switch (scriptAction.ActionType)
                        {
                        case "APIGET":
                            WorkflowHelper.APIGET(HttpContext.Session, scriptAction.ActionXML);
                            break;

                        case "APIPOST":
                            WorkflowHelper.APIPOST(HttpContext.Session, scriptAction.ActionXML);
                            break;

                        case "APIPUT":
                            WorkflowHelper.APIPUT(HttpContext.Session, scriptAction.ActionXML);
                            break;

                        case "ClearCallData":
                            SessionManager.ClearSessionData(HttpContext.Session);
                            break;

                        case "ClearMenu":
                            SessionManager.ClearMenu(HttpContext.Session);
                            break;

                        case "ClearHistory":
                            SessionManager.ClearWorkflowHistory(HttpContext.Session);
                            break;

                        case "ClearCart":
                            SessionManager.ClearOrderCart(HttpContext.Session);
                            break;

                        case "SaveProgress":
                            if (WorkflowHelper.SaveProgress(HttpContext.Session))
                            {
                                ViewBag.SavedMessage = "Saved Successfully";
                            }
                            else
                            {
                                ViewBag.SavedMessage = "Unable to Saved";
                            }

                            break;

                        case "SendText":
                            WorkflowHelper.SendText(HttpContext.Session, scriptAction.ActionXML);

                            break;

                        case "DispositionCall–Sale":
                            WorkflowHelper.DispositionSale(HttpContext.Session, scriptAction.ActionXML);
                            break;

                        case "DispositionCall-NoSale":
                            WorkflowHelper.DispositionNoSale(HttpContext.Session, scriptAction.ActionXML);
                            break;

                        case "Link":
                            //PopUps.Add(scriptAction.ActionXML);
                            break;

                        case "Set Question Value":
                            WorkflowHelper.SetQuestionValue(HttpContext.Session, scriptAction.ActionXML);
                            break;

                        case "Set Parameter":
                            WorkflowHelper.SetParameter(HttpContext.Session, scriptAction.ActionXML);
                            break;

                        case "Set Item Key":
                            WorkflowHelper.SetItemKey(HttpContext.Session, scriptAction.ActionXML);
                            break;

                        case "Remove Item Key":
                            WorkflowHelper.RemoveItemKey(HttpContext.Session, scriptAction.ActionXML);
                            break;

                        //case "Update Data Object Field":
                        //    WorkflowHelper.UpdateDataObjectField(HttpContext.Session, scriptAction.ActionXML);
                        //    break;
                        case "LoadLead":
                            WorkflowHelper.LoadCRMLead(HttpContext.Session, scriptAction.ActionXML);
                            break;

                        case "validateKeyedItems":
                            Models.itemUtilities iu = new itemUtilities();
                            iu.CheckItemsHaveValidKey(HttpContext.Session);
                            break;

                        case "SaveVariables":
                            WorkflowHelper.SaveContactVariables(HttpContext.Session);
                            break;

                        case "SaveContactNavigation":
                            WorkflowHelper.SaveContactNavigation(HttpContext.Session);
                            break;

                        case "LoadPreviousCallData":
                            WorkflowHelper.RetrievePreviousCall(HttpContext.Session);

                            if (!string.IsNullOrEmpty(SessionManager.GetScriptParameterByKey("Critical", HttpContext.Session)) && SessionManager.GetScriptParameterByKey("Critical", HttpContext.Session) == "Yes")
                            {
                                ViewBag.Critical = "Customer spent over 5 minutes in system.  Be empathetic and cautious with assistance to prevent any further frustration";
                            }

                            break;

                        case "Email":
                            WorkflowHelper.Email(HttpContext.Session, scriptAction.ActionXML);
                            break;

                        case "Insert IDR Queue":
                            WorkflowHelper.InsertIDRQueue(HttpContext.Session, scriptAction.ActionXML);
                            break;

                        case "Update IDR Queue Status":
                            WorkflowHelper.UpdateIDRQueue(HttpContext.Session, scriptAction.ActionXML);
                            break;

                        case "UpdateObject":
                            WorkflowHelper.UpdateObject(HttpContext.Session, scriptAction.ActionXML);
                            break;
                        }
                    }
                }
            }
        }