예제 #1
0
       public List<string> GetInsertStateMent(ParsedSMS p_sms)
       {
           List<string> result = new List<string>();

            //ADD
           string StartStateMent="INSERT INTO ";
           string StateMent = StartStateMent;
           
           string[] tables_Add = p_sms.DatabaseDetais.Where(t => t.Action == Database_Action.Add).Select(t => t.TableName).Distinct().ToArray();
           
           foreach (string eachTable in tables_Add)
           {
               string[] rowNumbers = p_sms.DatabaseDetais.Where(t => t.Action == Database_Action.Add && t.TableName == eachTable).Select(t => t.RowNumber).Distinct().ToArray();
               foreach (string eachRowNumber in rowNumbers)
               {
                   StateMent = StateMent + " " + eachTable + " (";
                   var values = p_sms.DatabaseDetais.Where(t => t.Action == Database_Action.Add && t.TableName == eachTable && t.RowNumber == eachRowNumber).Select(t => new { Column = t.FieldName, Value = t.Value }).ToList();
                   int k = 1;
                   for (int i = 0; i < values.Count; i++)
                   {
                       if (k < values.Count)
                           StateMent = StateMent + values[i].Column + ",";
                       else
                           StateMent = StateMent + values[i].Column;
                       k++;
                   }
                   StateMent = StateMent + ") " + "VALUES(";

                   k = 1;
                   for (int i = 0; i < values.Count; i++)
                   {
                       if (k < values.Count)
                           StateMent = StateMent + values[i].Value + ",";
                       else
                           StateMent = StateMent + values[i].Value;
                       k++;
                   }
                   StateMent = StateMent + ");";
                   result.Add(StateMent);
                   StateMent = StartStateMent;
               }
           }
           
           return result;
       }
예제 #2
0
       public string Execute_ActionAgainstReceivedMessage()
       {
           //int totalSmsReceived = 0;
           string FullMessageshow = string.Empty;           
           List<SmsPdu> smsObjs=new List<SmsPdu>();
           try
           {
               smsObjs = ModemCommunication.ReadMessage();
               foreach (var smsObj in smsObjs)
               {
                   // INSERT TO THE DATABASE FULLTEXT AND SHORTTEXT
                    
                   var dpdu = (SmsDeliverPdu)smsObj;
                   string[] regCust_Code = GetCustCodeFromPhoneNo(dpdu.OriginatingAddress).ToArray();
                   var RegCustCode = string.Join(",", regCust_Code);                   
                   String ReceivedTime = string.Empty;
                   string EntryTime = string.Empty;
                   string SMSSender = string.Empty;
                   string Short_Code = dpdu.UserDataText;
                   string FullMessage = dpdu.UserDataText;

                   FullMessageshow = dpdu.OriginatingAddress + " - " + FullMessage;                  
                   if (RegCustCode == "")
                   {
                       RegCustCode = "NULL";
                   }
                   Smsload.SMSText = FullMessage;
                   SMSSender = dpdu.OriginatingAddress;
                   ReceivedTime = dpdu.SCTimestamp.ToString();
                   ReceivedTime = String.Format("{0:dd-MMM-yyyy HH:mm:ss tt}", ReceivedTime);
                   EntryTime = String.Format("{0:dd-MMM-yyyy HH:mm:ss tt}", System.DateTime.Now);
                   objDataSqlQuery.InsertReceiveSMS(RegCustCode, SMSSender, Short_Code, FullMessage, ReceivedTime, "0", EntryTime);


                   ReceiveSMSParser prs = new ReceiveSMSParser(smsObj);
                   ParsedSMS prsSMSObj = prs.GetParsedSMSObject();
                   List<Database_Details> dbActions = prsSMSObj.DatabaseDetais;
                   if (prsSMSObj.DatabaseDetais.Where(t => t.Action == Database_Action.Add).ToList().Count > 0)
                   {
                       List<string> values = GetInsertStateMent(prsSMSObj);
                       try
                       {
                           aDbConnection.ConnectDatabase_SMSSender();
                           aDbConnection.StartTransaction_SMSSender();
                           foreach (string eachStatement in values)
                           {
                              aDbConnection.ExecuteNonQuery_SMSSender(eachStatement);
                           }
                           aDbConnection.Commit_SMSSender();
                       }
                       catch (Exception ex)
                       {
                           aDbConnection.Rollback_SMSSender();
                       }
                       finally
                       {
                           aDbConnection.CloseDatabase_SMSSender();
                       }
                   }
                   else if (prsSMSObj.DatabaseDetais.Where(t => t.Action == Database_Action.Update).ToList().Count > 0)
                   {

                   }
                   else if (prsSMSObj.DatabaseDetais.Where(t => t.Action == Database_Action.Delete).ToList().Count > 0)
                   {

                   }

               }
           }
           catch (Exception ex)
           {
               //Console.WriteLine(ex.ToString());
               throw ex;
           }
           return FullMessageshow ; //= FullMessage;         
       }