/// <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()); }
/// <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); }
public void Initialize() { //New instance of PHP SMS _phpSms = new PHP_SMS("test"); }
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())); }