有没有办法让我只执行一次?

时间:2019-04-25 15:08:28

标签: c#

我正在构建一个短信应用程序,并且我有一个合规处理程序,该程序使客户同意我的隐私权政策,然后再通过是,是或开始来发起对话。之后,我说出“我们如何为您提供帮助”,就可以设置一个对话启动器来启动对话。但是每次客户发送(是,是,开始)时,对话启动程序都会再次发送。我需要它,以便它仅在客户未选择加入时才开始发送对话?

 var welcomeQ = true;
            if (String.Compare(incoming.Body, "YES", StringComparison.OrdinalIgnoreCase) ==0 || 
                String.Compare(incoming.Body, "Y", StringComparison.OrdinalIgnoreCase) == 0 || 
                String.Compare(incoming.Body, "START", StringComparison.OrdinalIgnoreCase) == 0)
            {
                customer.OptedIn = true;
                welcomeQ = false;
            }
            if (!welcomeQ)
            {
                var WelcomeMessage = new MessagingResponse();

                var welcomeMessage = @"How can we help you today?";
                welcomeQ = false;
                WelcomeMessage.Message(welcomeMessage);

                  return TwiML(WelcomeMessage);

            }



            //Compliance Handler
            if (!customer.OptedIn)
            {            

                var optresponse = new MessagingResponse();
                var optMessage = target_location.PrivacyPolicy.Organization + @".
Msg&data rates may apply.
Reply HELP for help, STOP to cancel.
T&C/Privacy Policy: " + target_location.PrivacyPolicy.PolicyLink +
@" Reply YES (y) to continue";
                optresponse.Message(optMessage);                
                return TwiML(optresponse);
            }

2 个答案:

答案 0 :(得分:0)

         if ((String.Compare(incoming.Body, "YES", StringComparison.OrdinalIgnoreCase) ==0 || 
            String.Compare(incoming.Body, "Y", StringComparison.OrdinalIgnoreCase) == 0 || 
            String.Compare(incoming.Body, "START", StringComparison.OrdinalIgnoreCase) == 0) && 
           !customer.OptedIn)
        {
            customer.OptedIn = true;
            welcomeQ = false;
        }

您需要先检查客户是否已选择加入,然后再检查响应是否为Y。这样就不会将welcomeQ设置为false

答案 1 :(得分:0)

在您的第一个IF结束时,您将设置welcomeQ = false。如果welcomeQ = false,则下一条IF语句将运行。这将始终导致“我们今天如何为您提供帮助?”是,是,开始后出现提示信息。从我可以在此代码段中看到的信息中,您可以一起删除第7行并获得期望的结果,而仅在提供Yes,Y,Start以外的内容时才给出该消息。