Beispiel #1
0
        public ActionResult ReceiveCall()
        {
            var    dic      = ApplicationHelpers.GetParams(Request.Url.Query);
            string callId   = dic["callid"];
            string phoneNo  = dic["phoneno"];
            string cardNo   = dic["cardno"];
            string callType = dic["calltype"];
            string ivrLang  = dic["ivrlang"];

            Logger.Info(_logMsg.Clear().SetPrefixMsg("Receive Call").Add("CallId", callId).Add("PhoneNo", phoneNo)
                        .Add("CardNo", cardNo.MaskCardNo()).Add("CallType", callType).Add("RequestUrl", Request.Url.AbsoluteUri).ToInputLogString());

            try
            {
                // Reset routedata
                RouteData.Values.Remove("callId");
                RouteData.Values.Remove("phoneNo");

                if (string.IsNullOrWhiteSpace(callId) || string.IsNullOrWhiteSpace(phoneNo) ||
                    string.IsNullOrWhiteSpace(callType))
                {
                    goto Outer;
                }

                _customerFacade = new CustomerFacade();
                bool success = _customerFacade.SaveCallId(callId, phoneNo, cardNo, callType.ToUpper(CultureInfo.InvariantCulture)
                                                          , this.UserInfo.UserId, ivrLang.ToUpper(CultureInfo.InvariantCulture));
                if (success)
                {
                    RouteValueDictionary dict = new RouteValueDictionary();
                    dict.Add("callId", callId);
                    dict.Add("phoneNo", phoneNo);
                    return(RedirectToAction("Search", "Customer", dict));
                }
            }
            catch (Exception ex)
            {
                Logger.Error("Exception occur:\n", ex);
                Logger.Info(_logMsg.Clear().SetPrefixMsg("Receive Call").Add("Error Message", ex.Message).ToFailLogString());
            }

Outer:
            return(RedirectToAction("Search", "Customer"));
        }