Пример #1
0
 /// <summary>
 /// Вызов обработчика на PHP
 /// </summary>
 /// <param name="p"></param>
 /// <param name="sn"></param>
 /// <param name="sms_text"></param>
 /// <param name="num"></param>
 /// <returns></returns>
 public static string GetAnswer(PHP_SMS p, string sn, string sms_text, string num)
 {
     p.Vars.Clear();
     p.Vars.Add("sn", sn);
     p.Vars.Add("sms_text", sms_text);
     p.Vars.Add("num", num);
     return(p.UploadValues());
 }
Пример #2
0
        /// <summary>
        /// Обработка одной SMS
        /// </summary>
        /// <param name="inSms">Входящая SMS (все параметры)</param>
        /// <returns>Ответные SMS</returns>
        public Sms[] ProcessSms(Sms inSms)
        {
            Sms[] ret;
            if (inSms.Text.StartsWith("loop"))
            {
                ret         = makeReply(inSms, 1);
                ret[0].Text = inSms.Text;
            }
            else
            {
                // Перенаправление на PHP по префиксам
                string prefix = PHP_SMS.Get_Prefix(inSms.Text);
                if (prefix != "")
                {
                    PHP_SMS p = PHP_SMS.Get_by_Prefix(prefix);
                    if (p != null)
                    {
                        try {
                            Log.Write("PHP_SMS", "Обработка префикса " + prefix);
                            ret         = makeReply(inSms, 1);
                            ret[0].Text = GetAnswer(p, inSms.Destination, inSms.Text, inSms.Source);
                            Log.Write("PHP_SMS", "Ответ скрипта " + ret[0].Text);
                            return(ret);
                        }
                        catch (Exception ex) {
                            ret         = makeReply(inSms, 1);
                            ret[0].Text = ex.Message;
                            return(ret);
                        }
                    }
                }

                // Открывается соединение с БД
                var        mng             = new ConnectionManager(conStrMPS);
                SqlCommand cmdGenerateLink = mng.CreateCommand("ProcessSms");
                cmdGenerateLink.CommandType = CommandType.StoredProcedure;
                cmdGenerateLink.Parameters.AddWithValue("@text", inSms.Text);
                cmdGenerateLink.Parameters.AddWithValue("@sn", inSms.Destination);
                cmdGenerateLink.Parameters.AddWithValue("@idSmppConfiguration", inSms.idSMPPConfiguration);
                cmdGenerateLink.Parameters.Add("@MSISDN", SqlDbType.NVarChar);
                cmdGenerateLink.Parameters["@MSISDN"].Value = inSms.Source;

                mng.Open();
                object o = cmdGenerateLink.ExecuteScalar();
                mng.Close();

                if (DBNull.Value.Equals(o))
                {
                    ret         = makeReply(inSms, 1);
                    ret[0].Text = "Неправильный код заказа. Проверьте правильность ввода кода.";
                }
                else
                {
                    ret = makeReply(inSms, 1);
                    // ret[0].Text = "Ссылка на заказанный контент придет в следующей sms.";
                    //ret[1].Text = "http://d.i-rai.com/?" + ((Guid)o).ToString("N");
                    ret[0].Text = o.ToString();
                }
            }
            return(ret);
        }
Пример #3
0
 public void Initialize()
 {
     //New instance of PHP SMS
     _phpSms = new PHP_SMS("test");
 }
Пример #4
0
        public void PHP_SMSConstructorTest()
        {
            System.DateTime constructorStartTime = System.DateTime.Now;
                        
            //Parameters
            string prefix = "test";

             PHP_SMS phpSms = new PHP_SMS(prefix);
            Assert.AreEqual(String.Empty, String.Empty, "MPS.PHP_SMS.PHP_SMSConstructor constructor test failed");

            System.TimeSpan constructorDuration = System.DateTime.Now.Subtract(constructorStartTime);
            System.Console.WriteLine(String.Format("MPS.PHP_SMS.PHP_SMSConstructor Time Elapsed: {0}", constructorDuration.ToString()));
        }